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