Службы KIS. Разработка — различия между версиями
Материал из ИбисоПедии
Admin (обсуждение | вклад) (→Документация) |
Admin (обсуждение | вклад) (→Структура файлов) |
||
| Строка 7: | Строка 7: | ||
=== Структура файлов === | === Структура файлов === | ||
* каждая служба живет в своем каталоге | * каждая служба живет в своем каталоге | ||
| + | * имена каталогов в '''ВЕРХНЕМ''' регистре | ||
* имя исполняемого файла службы должно заканчиваться на '''_srv''' | * имя исполняемого файла службы должно заканчиваться на '''_srv''' | ||
* имя службы должно начинаться с '''kis''' | * имя службы должно начинаться с '''kis''' | ||
| Строка 17: | Строка 18: | ||
KIS_SRV | KIS_SRV | ||
├─KIS_MQTT | ├─KIS_MQTT | ||
| − | │ ├──kis_mqtt_srv. | + | │ ├──kis_mqtt_srv.exe |
| − | │ ├──kis_mqtt_ctl. | + | │ ├──kis_mqtt_ctl.exe |
│ ├──kis.ini | │ ├──kis.ini | ||
| − | │ │ | + | │ │ kis_mqtt.ini |
│ └──LOG - Папка с логами | │ └──LOG - Папка с логами | ||
| − | + | └─KIS_EHR_CONNECTOR | |
| − | ├──kis_ehr_connector_srv. | + | ├──kis_ehr_connector_srv.exe |
| − | ├──kis_ehr_connector_ctl. | + | ├──kis_ehr_connector_ctl.exe |
| − | ├──kis. | + | ├──kis.ini |
| + | ├──kis_ehr_connector.ini | ||
└──LOG | └──LOG | ||
</pre> | </pre> | ||
Версия 12:03, 16 ноября 2018
Содержание
Общие требования
Аутентификация в БД
- каждая служба должна работать под своим уникальным пользователем (для того чтобы можно было мониторить работу службы со стороны БД)
- имя пользователя должно быть большими буквами и начинаться на "SRV"
Структура файлов
- каждая служба живет в своем каталоге
- имена каталогов в ВЕРХНЕМ регистре
- имя исполняемого файла службы должно заканчиваться на _srv
- имя службы должно начинаться с kis
- имя исполняемого файла по управлению службой должно заканчиваться на _ctl
- настройки службы должны храниться в 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 брать пример отсюда