Службы KIS. Разработка — различия между версиями

Материал из ИбисоПедии
Перейти к: навигация, поиск
(WEB API)
(WEB API)
Строка 82: Строка 82:
 
  {"FileVer":"1.0.0.6","StartDT":"2018-10-17T16:08:16.867+03:00","AppExe":"C:\\KIS_SRV\\KIS_MQTT_SRV\\kis_mqtt_srv.exe","DBInfo": {"ConnectStr":"192.168.1.16:7432\/emiac1","ConnectStatus":"connected","lastMessageRecivedDT":"2019-02- 04T08:20:58.302+03:00","MeessageCount":35024,"ListenState":"Active"},"MQTTInfo": {"ConnectStr":"192.168.1.16:1883","ConnectStatus":"active","ClientID":"V5nZpiOiintKZ1wgeg2K1f1","LastSendDT":"2019-02-04T08:20:58.302+03:00","MessageCount":35008}}
 
  {"FileVer":"1.0.0.6","StartDT":"2018-10-17T16:08:16.867+03:00","AppExe":"C:\\KIS_SRV\\KIS_MQTT_SRV\\kis_mqtt_srv.exe","DBInfo": {"ConnectStr":"192.168.1.16:7432\/emiac1","ConnectStatus":"connected","lastMessageRecivedDT":"2019-02- 04T08:20:58.302+03:00","MeessageCount":35024,"ListenState":"Active"},"MQTTInfo": {"ConnectStr":"192.168.1.16:1883","ConnectStatus":"active","ClientID":"V5nZpiOiintKZ1wgeg2K1f1","LastSendDT":"2019-02-04T08:20:58.302+03:00","MessageCount":35008}}
  
 +
* stat - возвращает json со статистикой работы за период. Для построения графика нагрузки службы (метод необязателен и делается в последнюю очередь)
 +
{"last10hour":[{"dt":"2019-02-04T08:20:00.000+03:00", "Count":10}, {"dt":"2019-02-04T08:21:00.000+03:00", "Count":12}, {"dt":"2019-02-04T08:22:00.000+03:00", "Count":9}]}
 +
 +
* showlog - показывает лог работы программы
 +
 +
Обычная html страница, которая показывает файл лог, который лежит на сервере
  
* stat - возвращает json со статистикой работы
 
* showlog - показывает лог работы программы
 
 
* admin - возвращает html страницу с настройками
 
* admin - возвращает html страницу с настройками
  

Версия 08:30, 4 февраля 2019

Общие требования

Аутентификация в БД

  • каждая служба должна работать под своим уникальным пользователем (для того чтобы можно было мониторить работу службы со стороны БД)
  • имя пользователя должно быть
    • большими буквами
    • совпадать с именем службы
    • заканчиваться на "SRV"

логин пароль ханим в открытом виде в файле ini

  • [Postgresql]
    • user
    • password
    • password_crypt

Структура файлов

  • каждая служба живет в своем каталоге
  • имена каталогов в ВЕРХНЕМ регистре
  • все имена файлов в нижнем регистре
  • имя исполняемого файла службы должно заканчиваться на _srv
  • имя службы должно начинаться с kis
  • имя исполняемого файла по управлению службой должно заканчиваться на _ctl
  • настройка подключения к БД должна храниться в файле kis.ini
  • настройки службы должны храниться в <имя_службы>.ini файле рядом с исполнимыми файлами. см. Конфигурационные файлы KIS


Пример расположения служб

KIS_SRV
 ├─KIS_MQTT
 │  ├──kis_mqtt_srv.exe
 │  ├──kis_mqtt_ctl.exe
 │  ├──kis.ini
 │  │  kis_mqtt.ini
 │  └──LOG - Папка с логами
 └─KIS_EHR_CONNECTOR
    ├──kis_ehr_connector_srv.exe
    ├──kis_ehr_connector_ctl.exe
    ├──kis.ini
    ├──kis_ehr_connector.ini
    └──LOG

Именования файлов

  • _srv.exe севрис
  • _ctl.exe управляющая программ
  • _app.EXE в виде отдельного приложения (на этапе разработки)

Имя службы windows

Имя службы должно быть латинскими буквами в нижнем регистре (с подчеркиваниями). Примеры названий служб:

  • kis_mqtt
  • kis_ehr_connector (может сократить до kis_ehr)
  • kis_pg_rest
  • kis_supp
  • kis_simi_epic

Требования к работоспособности при потере соединения

  • Служба должна корректно отрабатывать ошибки, связанные с потерей соединения с БД и пытаться восстановить соединение самостоятельность.


Зависимость от другого ПО

  • служба не должна зависеть от стороннего ПО, такого как
    • вебсерверы (IIS, APACH)
    • Net framework
    • клиент БД

Диагностика работы службы

  • служба должна писать информацию о событиях, в файл лога. Рекомендуется использовать SynLog из библиотеки Synopse mORMot framework
  • файлы логов должны быть легко просматриваемы сторонними программами.

WEB API

  • checkstatus - возвращает 1 в теле ответа, если сервис работает правильно
  • info - возвращает json, в котором есть настройки, текущий статус сервера (есть подключение к БД и т.п.)

Пример

{"FileVer":"1.0.0.6","StartDT":"2018-10-17T16:08:16.867+03:00","AppExe":"C:\\KIS_SRV\\KIS_MQTT_SRV\\kis_mqtt_srv.exe","DBInfo": {"ConnectStr":"192.168.1.16:7432\/emiac1","ConnectStatus":"connected","lastMessageRecivedDT":"2019-02- 04T08:20:58.302+03:00","MeessageCount":35024,"ListenState":"Active"},"MQTTInfo": {"ConnectStr":"192.168.1.16:1883","ConnectStatus":"active","ClientID":"V5nZpiOiintKZ1wgeg2K1f1","LastSendDT":"2019-02-04T08:20:58.302+03:00","MessageCount":35008}}
  • stat - возвращает json со статистикой работы за период. Для построения графика нагрузки службы (метод необязателен и делается в последнюю очередь)

{"last10hour":[{"dt":"2019-02-04T08:20:00.000+03:00", "Count":10}, {"dt":"2019-02-04T08:21:00.000+03:00", "Count":12}, {"dt":"2019-02-04T08:22:00.000+03:00", "Count":9}]}

  • showlog - показывает лог работы программы

Обычная html страница, которая показывает файл лог, который лежит на сервере

  • admin - возвращает html страницу с настройками

Документация

В каталоге обязательно должен быть файл readme.md в формате markdown. В нем должны быть следующие разделы:

  • Назначение
  • Состав
  • Установка
  • Настройка
  • Обновление
  • Мониторинг

Список сервисов