С целью обеспечения стабильности работы ПКУ (программного комплекса участника) был разработан для Linux-платформы. Для независимости от версии операционной системы, дистрибутива и библиотек используется инкапсуляция в docker-контейнер.
ПКУ может работать в Linux-окружении без docker-контейнера, для этого необходимо соблюсти условия и зависимости, которые аналогичны условиям и зависимостям в поставляемом контейнере. Рекомендуемый способ — использование в docker-контейнере.
ПКУ является не только клиентом, но и инструментом для локальной работы с алгоритмами расчета PSR и критериев.
ПКУ не тестировался в среде Windows с docker-контейнерами. В силу особенностей реализации docker в Windows, контейнеры работают несколько иначе, поэтому возможны ошибки. Организаторы не несут ответственности и не гарантируют поддержку в случае использования ПКУ вне среды Linux. ПКУ не тестировался на использование вне docker-среды в Windows. При наличии зависимостей — его работа возможна, но не гарантируется.
В случае доработки участниками ПКУ для полной совместимости с windows, соответствующий pull request будет принят (но не в ущерб linux-версии). Дальнейшая поддержка организаторами windows-версии ПКУ не гарантируется.
Любой участник может использовать Linux в виртуальной машине в любой операционной системе при помощи ПО для виртуализации: virtualbox или VMware.
# | Платформа/реализация | Поддержка |
---|---|---|
1 | Linux-сервер с ПКУ, работающим внутри docker-контейнера | Официально поддерживается. |
2 | Сервера на других ОС, с использованием виртуальной машины virtualbox или VMware, внутри которой запущен docker-контейнер. | Официально поддерживается, но помощь в настройке виртуальных машин не предоставляется. |
3 | Linux-сервер с ПКУ, работающим внутри основной ОС, без контейнера. | Поддержка не гарантируется. |
4 | Сервер на другой ОС, в которой самостоятельно реализован клиент с websocket-протоколом. | Поддержка не гарантируется. |
Для обмена сервер-клиент использован websocket-протокол, который дает ряд преимуществ по сравнению с обычным HTTP протоколом (REST API) для решения клиент-серверного взаимодействия в рамках конкурса.
ПКУ берет полностью на себя все взаимодействие по websocket-протоколу, который может развиваться со стороны клиента ПКУ и сервера, отдавая участникам консольный интерфейс.
Участники могут реализовать свой клиент websocket протокола, но организаторы не гарантируют поддержки клиента, т.к. протокол может развиваться и реализация клиента со стороны участника может быть неправильной, например - клиент превысит количество попыток переподключения и получит блокировку. Несмотря на отсутствие гарантированной поддержки, организаторы готовы принимать pull request'ы в официальном репозитории.
Слежение за изменением протокола в документации организаторами не регулируется и остается в зоне ответственности участников.
Исходный код ПКУ открыт и может использоваться участниками в свободном режиме, в том числе для реализации своего клиента.