IPC-транспорт
Чтобы реализовать взаимодействие сущностей, необходим транспортный код, отвечающий за корректное создание IPC-сообщений, их упаковку, отправку, распаковку и диспетчеризацию. Разработчику решения под KasperskyOS нет необходимости самостоятельно писать транспортный код. Вместо этого можно использовать специальные инструменты и библиотеки, поставляемые в составе KasperskyOS Community Edition.
Транспортный код для разрабатываемых компонентов
Разработчик новых компонентов для KasperskyOS может сгенерировать транспортный код на основе статических описаний этого компонента. Для этого в составе KasperskyOS Community Edition поставляется компилятор NK. Компилятор NK позволяет генерировать транспортные методы и типы для использования как на клиентской стороне, так и на серверной.
Транспортный код для поставляемых компонентов
Функциональность большинства компонентов, поставляемых в составе KasperskyOS Community Edition, может быть использована в решении как локально, т.е. путем статической компоновки с разрабатываемым кодом, так и через IPC.
Для вынесения компонента в отдельную серверную сущность и использования его по IPC поставляются следующие транспортные библиотеки:
- Клиентская библиотека компонента преобразует локальные вызовы в IPC-запросы к сущности драйвера.
- Серверная библиотека компонента принимает IPC-запросы к сущности драйвера и преобразует их в локальные вызовы.
Чтобы использовать компонент по IPC, достаточно его реализацию скомпоновать с серверной библиотекой, а клиентскую сущность скомпоновать с клиентской библиотекой.
Интерфейс клиентской библиотеки не отличается от интерфейса самого компонента. Таким образом, для перехода на использование компонента по IPC (вместо статической компоновки) нет необходимости вносить изменения в код клиентской сущности.
Подробнее см. "IPC и транспорт".