Статьи в блоге Праймсофт

Главная / Блог / Статьи / Информационные / ПС Дозор. Системная архитектура

ПС Дозор. Системная архитектура

Программное средство "Дозор" - один из сервисов "Цифрового гарнизона", разработанный в составе программного обеспечения 1-й версии системы. Для работы данного программного обеспечения нужны источники информации - датчики пожара, задымления, протечки, влажности, давления и др.

Для разработки и отладки программного перечисленные датчики были размещены на демонстрационном  стенде.

Программное средство "Дозор" предназначено для контроля и отображения температуры, влажности, давления, протечек, пожаров и других данных снимаемых с датчиков в помещениях и других объектах инфраструктуры. 

Основные функции ПС Дозор

  • Контроль состояния объектов инфраструктуры.
  • Защищенный обмен данными (шифрованный канал связи).
  • Возможность просматривать показания выбранных датчиков в режиме реального времени и в записи.
  • Отображение важной информации в виде комплексных экранов.
  • Оповещение о критических событиях объектов инфраструктуры:
    • пожар, задымление;
    • затопление;
    • резкое возрастание температуры;
    • давление в погребах боезапаса;
    • и др.

Структура программного обеспечения

Общая структура программного обеспечения представлена на рисунке 1. ПО включает две части: серверная и мобильная. Серверная часть выполняет функции сбора, обработки и хранения данных. Мобильная часть (приложение) выполняет отображение данных о состоянии системы и отдельных датчиков в реальном времени.

Рис.1 - Общая структура ПО

Одной из основных требований к системе является реактивность отображения любых изменений на устройствах пользователей. Это означает, что практически одновременно с возникновением события в системе (протечка, факт открытия двери, пожар и др.) должна формироваться реакция системы и на мобильном устройстве пользователя отображаться соответствующее событие.

Для обеспечения реактивности в системе использован механизм публикации/подписки на базе сервера  Meteor и протокола DDP (Distributed Data Protocol). Одновременно с фиксацией контролируемого события сервер уведомляет все клиентские приложения и передает им данные. Применение DDP и Meteor позволяет отказаться от фиксированных структур данных и SQL в пользу гибких структур данных и формата хранения JSON. Как результат, в системе может использоваться несколько типов данных, различные типы датчиков, событий и они могут модифицироваться/изменяться без необходимости обязательного изменения клиентского ПО. Например, в системе может быть добавлен датчик или один тип датчика протечки заменен на другой, при этом общий протокол работы ПО останется неизменным.

Фиксацией событий, возникающих в системе, занимается сервер Дозор на базе ПО  Zabbix. Дозор используется для мониторинга помещений с датчиками различного типа: метеостанция, датчики протечки, температурные датчики, датчики пожара, датчики давления, датчики влажности, герконовые датчики (двери). Одновременно с фиксацией событий, Дозор выполняет отображение данных в виде графиков, событий, карт сети для десктопной версии клиентского ПО.

Zabbix в качестве средства хранения данных использует СУБД PostgreSQL. В БД сохраняется вся история событий, состояния триггеров, карта сети и другие данные. Сервер Meteor работает с NoSQL-БД MongoDB и выполняет синхронизацию данных между клиентами и сервером через JSON-объекты и протокол WebSockets. Для связи Zabbix и Meteo реализован механизм синхронизации данных между PostgreSQL и MongoDB. Причем, синхронизируются не все данные, а только часть, необходимая для обеспечения реактивности отображения информации у клиентов: показания датчиков, триггерные события. Остальные данные читаются из БД сервера при непосредственных обращениях клиентов. В результате, при возникновении в контролируемой зоне критичного события выполняется его фильтрация сервером и, при необходимости, передача в Meteor для синхронизации с клиентами. Мобильные клиенты в реальном времени получают изменения данных и отображают их в пользовательском интерфейсе.

Клиентское приложение

Клиентское приложение реализовано для платформы Android и включает: само приложение, отображающее данные, DDP-клиент для взаимодействия с сервером Meteor по протоколу WebSockets, библиотеку  Autobahn для реализации SSL через WebSockets, модуль КриптоПро для шифрования передаваемых данных по требованиям ГОСТ.

Приложение применяет обязательную авторизацию пользователей для исключения возможностей неавторизованного доступа к данными. Для этого используется встроенный механизм и протокол для авторизации Meteor, интегрированный с системным сервером LDAP. Авторизация выполняется через протокол WebSockets и интегрирована в прокол DDP. Как результат, все клиентские запросы контролируются сервером на предмет атрибутов доступа.

Внутренний LDAP является центральным узлом хранения учетных записей зарегистрированных пользователей, атрибутов доступа, ролей. LDAP-сервер не относится к ПС Дозор напрямую. Теоретически, в качестве account-сервера может использоваться любой LDAP-сервер заказчика, сконфигурированный требуемым образом.

Клиентское приложение имеет функции сохранения текущего состояния графиков на мобильном устройстве. Это позволяет просматривать исторические данные или использовать изображения графиков в отчетах или других документах.

Защита информации

Для обеспечения защиты информации в системе используется механизм шифрования данных на базе Крипто-шлюза КриптоПро. Крипто-шлюз обеспечивает шифрование данных в соответствии с ГОСТ и позволяет использовать приложение в системах с грифом.

Мобильное приложение имеет настройки для работы в закрытом и открытом режиме. В открытом режиме не выполняется шифрование трафика и клиентское приложение работает по HTTP/HTTPS непосредственно с сервером Meteor. В закрытом режиме между сервером и клиентом устанавливается защищенный туннель, шифрующий все передаваемые данные внутри SSL-соединения. В результате, между клиентом и сервером устанавливается защищенное по ГОСТ SSL-соединение.

Дальнейшие работы

1. Реализация избранных пользовательских схем мониторинга и настройка их из мобильного приложения.

Текущая конфигурация ПС Дозор позволяет отображать настроенные пользовательские карты и графики. Для этого серверная часть имеет в пользовательском web-интерфейсе механизмы составления комплексных экранов и других элементов интерфейса. Однако пользователь мобильного устройства должен иметь возможность настраивать GUI и состав графиков "под себя". В этом случае каждый пользователь сможет настроить ПС Дозор под собственные задачи.

2. Реализация механизма Single SignOn для всех ПС из состава ПО Цифрового гарнизона.

В мобильном ПО будет реализован сервис регистрации, настроенный на авторизацию текущего пользователя устройства с сервером. Это позволит унифицировать упростить пользовательский интерфейс всех ПС и убрать необходимость ввода логина/пароля при старте ПО. Аналогичная схема применяется приложениями Google, Yandex и других компаний для автоматической авторизации приложений при старте.

Дизайн приложения в скриншотах