Службы KIS. Разработка — различия между версиями
Материал из ИбисоПедии
Admin (обсуждение | вклад) (→Документация) |
Admin (обсуждение | вклад) (→Документация) |
||
| Строка 70: | Строка 70: | ||
== Документация == | == Документация == | ||
| − | обязательно должен быть файл readme.md в формате markdown. В нем должны быть следующие разделы: | + | В каталоге обязательно должен быть файл readme.md в формате markdown. В нем должны быть следующие разделы: |
* Назначение | * Назначение | ||
Версия 16:38, 15 ноября 2018
Содержание
Общие требования
Аутентификация в БД
- каждая служба должна работать под своим уникальным пользователем (для того чтобы можно было мониторить работу службы со стороны БД)
- имя пользователя должно быть большими буквами и начинаться на "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. В нем должны быть следующие разделы:
- Назначение
- Состав
- Установка
- Настройка
- Обновление
- Мониторинг
Список сервисов
- KIS MQTT_connector брать пример отсюда