Службы KIS. Разработка

Материал из ИбисоПедии
Версия от 16:38, 15 ноября 2018; Admin (обсуждение | вклад) (Документация)
Перейти к: навигация, поиск

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

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

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

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

  • каждая служба живет в своем каталоге
  • имя исполняемого файла службы должно заканчиваться на _srv
  • имя службы должно начинаться с kis
  • имя исполняемого файла по управлению службой должно заканчиваться на _ctl
  • настройки службы должны храниться в ini файле рядом с исполнимыми файлами. см. Конфигурационные файлы KIS


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

KIS_SRV
 ├─KIS_MQTT
 │  ├──kis_mqtt_srv.EXE
 │  ├──kis_mqtt_ctl.EXE
 │  ├──kis.ini
 │  │  kis.ini.local
 │  └──LOG - Папка с логами
 └─kis_ehr_connector
    ├──kis_ehr_connector_srv.EXE
    ├──kis_ehr_connector_ctl.EXE
    ├──kis.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, в котором есть настройки, текущий статус сервера (есть подключение к БД и т.п.)
  • stat - возвращает json со статистикой работы
  • showlog - показывает лог работы программы
  • admin - возвращает html страницу с настройками

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

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

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

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