Аннотация: В рамках данной статьи рассматриваются возможности применения механизма QNX Persistent Publish/Subscribe для создания высоконадежных, масштабируемых встраиваемых систем, которые смогут поддерживать множество устройств и программных компонентов и обеспечивать их взаимодействие со сложным графическим пользовательским интерфейсом.
Применение механизма QNX Persistent Publish/Subscribe (PPS) показано на примере системы управления энергопотреблением QNX Smart Energy. Человеко-машинный интерфейс данной системы построен на основе технологий Adobe Flash, однако, мы полагаем, что механизм Persistent Publish/Subscribe может успешно использоваться при построении интерфейсов на основе OpenGL и других технологий.
При создании встраиваемых систем для рынка промышленной автоматизации нередко возникают задачи, которые невозможно решить за счет простого увеличения объема памяти и использования более мощного процессора. Встраиваемые промышленные приложения традиционно отличаются сложностью архитектуры. Они разрабатываются для решения большого объема задач, объединяют множество устройств и программных компонентов. Экономическая эффективность таких систем может достигаться за счет использования недорогого аппаратного обеспечения (менее мощных процессоров, минимальной памяти и т.д.). По требованию заказчика они могут быть оснащены сложным человеко-машинным интерфейсом (ЧМИ). В последние годы к промышленным системам все чаще предъявляют еще одно требование: масштабируемость, т.е. возможность расширения функциональности оборудования.
Для реализации всех этих требований в новую версию операционной системы реального времени QNX Neutrino была интегрирована новая служба: Persistent Publish/Subscribe (PPS). Это объектно-ориентированная служба, в которой серверы публикаций (publisher) и подписчики (subscriber) взаимодействуют в рамках слабосвязанной архитектуры. Компактная и расширяемая, служба PPS позволяет создавать недорогие, надежные, масштабируемые системы на базе асинхронной модели обработки сообщений.
Служба PPS была заложена в основу системы обработки сообщений отладочной платформы QNX Smart Energy, обеспечивающей интеллектуальное управление системами энергопотребления зданий. QNX Smart Energy объединяет многочисленные датчики, контроллеры, счетчики и другое оборудование под управлением единого ЧМИ на основе flash-графики.
Достигнутая прозрачность и масштабируемость системы (как на программном, так и на аппаратном уровне) позволяют сделать вывод о том, что использованная в QNX Smart Energy асинхронная модель обработки сообщений подходит для сложных промышленных систем лучше, чем более распространенная сегодня синхронная модель.
Синхронная модель обработки сообщений
Синхронная модель обработки сообщений имеет особое значение для систем реального времени, в которых многие процессы, прежде чем продолжить работу, должны получить ответ на уже отправленные сообщения. Но она не всегда подходит для применения в системах, архитектура которых должна предусматривать возможность добавления новых приложений и функций.
Синхронная обработка сообщений предполагает сильные связи между отправителем и получателем сообщений: каждый сервер напрямую взаимодействует со своими клиентами, поэтому он должен точно знать, как отвечать на все их сообщения. При такой организации обработки сообщений по мере добавления новых или изменения существующих компонентов, сложность целевой системы быстро увеличивается. Она становится более запутанной и хрупкой, а процесс ее разработки и модернизации занимает все больше времени.
Асинхронная модель обработки сообщений
Асинхронные коммуникации являются решением нижнего уровня (low-level solution). Такие задачи, как управление буферизацией, обработка ошибок и сквозных записей переносятся на уровень приложений. А это значит, что при использовании данной модели необходимо разработать такой протокол, который будет обеспечивать корректность обмена сообщениями между всеми приложениями и, гарантированно, будет предоставлять необходимые им ресурсы памяти. При создании таких протоколов для простых систем от инженеров не требуются особые усилия. Но при проектировании масштабных промышленных систем могут возникнуть часто неразрешимые проблемы.
