Kaspersky IoT Secure Gateway 1000 SDK

Программа MessageBus

23 января 2025

ID messagebus_component

Программа MessageBus реализует шину сообщений, которая обеспечивает прием, распределение и доставку сообщений между программами, работающими под KasperskyOS. Шина построена по принципу "издатель-подписчик". Использование шины сообщений позволяет избежать создания большого количества IPC-каналов для связывания каждой программы-подписчика с каждой программой-издателем.

Сообщения, передаваемые через шину MessageBus, не могут содержать данные. Эти сообщения могут использоваться только для уведомления подписчиков о событиях.

Программа MessageBus представляет собой дополнительный уровень абстракции над KasperskyOS IPC, который позволяет упростить процесс разработки и развития ваших программ. MessageBus является отдельной программой, доступ к которой осуществляется через IPC, но при этом разработчикам предоставляется библиотека доступа к MessageBus, которая позволяет избежать использования IPC-вызовов напрямую. Чтобы получить доступ к API этой библиотеки, скомпонуйте вашу программу с библиотекой, используя CMake-команду target_link_libraries().

CMakeLists.txt

target_link_libraries (${TARGET_NAME} ${messagebus_CLIENT_LIB})

API библиотеки доступа предоставляет следующие интерфейсы:

  • IProviderFactory

    Предоставляет фабричные методы для получения доступа к экземплярам остальных интерфейсов;

  • IProviderControl

    Интерфейс для регистрации и дерегистрации издателя и подписчика в шине;

  • IProvider (программа MessageBus)

    Интерфейс для передачи сообщения в шину;

  • ISubscriber

    Интерфейс обратного вызова для передачи сообщения подписчику;

  • IWaiter

    Интерфейс ожидания обратного вызова при появлении соответствующего сообщения.

Использование API программы MessageBus вы можете посмотреть в примерах message_sender_package и message_receiver_package.

Структура сообщения

Каждое сообщение содержит два параметра:

  • topic

    Идентификатор темы сообщения;

  • id

    Дополнительный параметр, специфицирующий сообщение.

Параметры topic и id уникальны для каждого сообщения. Интерпретация topic+id определяется контрактом между издателем и подписчиком. Например, если изменяются конфигурационные данные, с которыми работают издатель и подписчик, издатель высылает сообщение об изменении данных и id конкретной записи с новыми данными. Подписчик, пользуясь отличными от MessageBus механизмами, получает новые данные по ключу id.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!