Компонент MessageBus реализует шину сообщений, которая обеспечивает прием, распределение и доставку сообщений между приложениями, работающими под KasperskyOS. Шина построена по принципу издатель-подписчик. Использование шины сообщений позволяет избежать создания большого количества IPC-каналов для связывания каждого приложения-подписчика с каждым приложением-издателем.
Сообщения, передаваемые через шину MessageBus, не могут содержать данные. Эти сообщения могут использоваться только для уведомления подписчиков о событиях. См. "Структура сообщения" ниже.
Компонент MessageBus представляет собой дополнительный уровень абстракции над KasperskyOS IPC, который позволяет упростить процесс разработки и развития приложений прикладного уровня. MessageBus является отдельной программой доступ к которой осуществляется через IPC, но при этом разработчикам предоставляется библиотека доступа к MessageBus, которая позволяет избежать использования IPC-вызовов напрямую.
API библиотеки доступа предоставляет следующие интерфейсы:
IProviderFactory – предоставляет фабричные методы для получения доступа к экземплярам остальных интерфейсов;IProviderControl – интерфейс для регистрации и дерегистрации издателя и подписчика в шине;IProvider (компонент MessageBus) – интерфейс для передачи сообщения в шину;ISubscriber – интерфейс обратного вызова для передачи сообщения подписчику;IWaiter – интерфейс ожидания обратного вызова при появлении соответствующего сообщения.Структура сообщения
Каждое сообщение содержит два параметра:
topic – идентификатор темы сообщения;id – дополнительный параметр, специфицирующий сообщение.Параметры topic и id уникальны для каждого сообщения. Интерпретация topic+id определяется контрактом между издателем и подписчиком. Например, если изменяются конфигурационные данные с которыми работают издатель и подписчик, издатель высылает сообщение об изменении данных и id конкретной записи с новыми данными. Подписчик, пользуясь отличными от MessageBus механизмами, получает новые данные по ключу id.