Компонент 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
.