Службы KIS. Разработка — различия между версиями
Материал из ИбисоПедии
Admin (обсуждение | вклад) (→Аутентификация в БД) |
Admin (обсуждение | вклад) (→Аутентификация в БД) |
||
| Строка 9: | Строка 9: | ||
логин пароль ханим в открытом виде в файле ini | логин пароль ханим в открытом виде в файле ini | ||
| − | + | * [Postgresql] | |
| − | * user | + | ** user |
| − | * password | + | ** password |
| − | * password_crypt | + | ** password_crypt |
=== Структура файлов === | === Структура файлов === | ||
Версия 13:19, 14 января 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, в котором есть настройки, текущий статус сервера (есть подключение к БД и т.п.)
- stat - возвращает json со статистикой работы
- showlog - показывает лог работы программы
- admin - возвращает html страницу с настройками
Документация
В каталоге обязательно должен быть файл readme.md в формате markdown. В нем должны быть следующие разделы:
- Назначение
- Состав
- Установка
- Настройка
- Обновление
- Мониторинг
Список сервисов
- KIS MQTT_connector брать пример отсюда