4.1.3. Общие требования к программным модулям

При разработке программных модулей (плагинов) используемые архитектурные решения не должны нарушать функциональность и работу ГИС ТОР КНД и должны основываться на принципах масштабируемости и отказоустойчивости.

Программный модуль должен быть разработан на языке Java, JavaScript, Python, Ruby on Rails и производных.

В комплекте программного модуля должна поставляться программная документация согласно ГОСТ серии 34 (Стандарты информационной технологии, РД 50-34.698-90) и серии 19 (Единая система программной документации). Порядок создания, развития, ввода в эксплуатацию, эксплуатации и вывода из эксплуатации программных модулей (плагинов), подключаемых к ГИС ТОР КНД, должен соответствовать требованиям постановления Правительства Российской Федерации от 06.07.2015 N 676 "О требованиях к порядку создания, развития, ввода в эксплуатацию, эксплуатации и вывода из эксплуатации государственных информационных систем и дальнейшего хранения содержащейся в их базах данных информации".

При закупке стороннего лицензионного программного обеспечения для реализации программных модулей (плагинов) необходимо отдавать приоритет программному обеспечению российского производства либо программному обеспечению на основе открытых исходных кодов (open-source, лицензия GLU/GPL, Apache License 2.0).

Программные модули не должны исключать возможность масштабирования по производительности и объему обрабатываемой информации без модификации ее программного обеспечения путем модернизации используемого комплекса технических средств. Программный модуль (плагин) должен создаваться в парадигме сервисно-ориентированной архитектуры, реализовывать публичное API в соответствии со спецификацией OpenAPI 3.0.

Программный модуль не должен накладывать ограничения на возможность горизонтального масштабирования, т.е. должен позволять работать нескольким экземплярам в одном пространстве данных.

Программные модули должны поддерживать процедуры мониторинга и предоставлять информацию о текущем состоянии своих процессов.

Модель здоровья программного модуля должна быть согласована со стороны Минцифры России. Программные модули должны поддерживать балансировку нагрузки без необходимости в привязке клиентов к экземплярам сервиса и быть безсессионными.

Сервис должен поддерживать процедуры идентификации и аутентификации с использованием токена ЕСИА в рамках технологии OAuth2, при условии необходимости аутентификации при использовании сервиса.

Программные модули должны собираться по технологии Maven или NPM. Результатом сборки должен являться образ Docker-контейнера. При сборке модуля должно происходить комплексное автоматическое юнит-тестирование.