|
|
Разработчики приложений для встраиваемых систем делятся на две большие группы, существующие по собственным законам. Первая — разработчики приложений на Flash, Web 2.0, Java и т.д. Нередко они слабо представляют, как создается система реального времени. Вторая — разработчики встраиваемых систем, которые программируют на языках C и C++ и могут не иметь опыта работы с Flash-приложениями. Две эти группы как будто живут в разных мирах, что и вызывает определенные проблемы при реализации совместных проектов.
Снять все сложности, возникающие при интеграции технологий, позволяет Persistence Publish/Subscribe (PPS), новая служба ОСРВ QNX Neutrino. Небольшая и легко масштабируемая, она позволяет выстраивать системы на основе слабых связей и асинхронных коммуникаций.
В общем виде логику работы службы можно описать следующим образом: объект интегрируется в адресное пространство файловой системы PPS. Когда издатель (publisher), зарегистрировавший объект, изменяет его, служба PPS оповещает всех клиентов (subscriber), подписанных на отслеживание изменения этого объекта. PPS-клиент может подписаться на множество объектов, а PPS-объект может иметь как множество издателей (publisher), так и множество подписчиков (subscriber).
Рассмотрим работу службы Persistence Publish/Subscribe на практическом примере автомобильной информационно-развлекательной системы. Предположим, она состоит из системы управления двигателем, интерфейса человек-машина и приборной панели. Система управления двигателем собирает данные спидометра, тахометра, температурных датчиков и передает их через человеко-машинный интерфейс на приборную панель. В стандартной системе, где объекты объединены жесткими детерминированными связями, изменения на аппаратном уровне (подключение новых датчиков или устройств) потребуют доработки программного кода, а также компонентов HMI и приборной панели.
При использовании асинхронной модели коммуникации данные об изменениях фиксируются только на промежуточном уровне (служба PPS). Иными словами, если необходимо добавить в систему новое устройство/приложение, достаточно единожды определить, какими данными оно будет делиться с другими устройствами, выступая в качестве издателя, и какие данные оно будет от них получать, являясь клиентом.
Такая модель коммуникации идеальна для устройств, объединяющих разрозненные устройства и программные компоненты в рамках сложного человеко-машинного интерфейса. Для систем, оснащенных графическим интерфейсом, необходимо лишь наличие единственной службы PPS, которая наладит взаимодействие всех компонентов системы. Более того, использование асинхронной модели коммуникаций упрощает задачу внесения в систему изменений, модификаций или расширений, что позволяет создать условия для параллельной работы Flash- и С-разработчиков, и соответственно – для оперативного вывода продукта на рынок.
|
|