===== Архитектура системы ===== ==== Сервис на базе суперкомпьютерного центра СГАУ ==== Управляющее окружение суперкомпьютера «Сергей Королёв» представляет собой отдельный узел кластера, на котором производится компиляция программ, постановка вычислительных задач в очередь и отслеживание их исполнения. При этом работа с управляющим узлом ограничена возможностями протокола SSH и консольными утилитами пакетной системы Torque. Доступ к системе может осуществляться как из локальной сети СГАУ, так и из сети интернет. {{ :templet:templet-network.png|}} ==== Компоненты системы ==== - веб-сервер Tomcat 7 - сервер БД PostgreSQL 9.1 Сервис хранит данные проектов и задач в СУБД PostgreSQL, сервер которой развёрнут на сервере templet.ssau.ru вместе с сервером приложений Tomcat. Исходный код и результаты исполнения задач сохраняются в файловой системе сервера, в отдельном рабочем каталоге. {{ :templet:templet-servers-scheme.png |}} Доступ к суперкомпьютеру "Сергей Королёв" осуществляется по протоколу SSH от имени пользователя, запускающего задачу. Таким образом, обеспечивается разграничение прав доступа на уровне системы безопасности суперкомпьютера. Для работы с суперкомпьютером требуются учётные данные, выдаваемые суперкомпьютерным центром СГАУ. Сервис может использовать собственную учётную запись для опроса состояния суперкомпьютера и осуществления мониторинга загрузки узлов. Исходный код задач компилируется на управляющем узле суперкомпьютера. Затем сервис генерирует описатель задания PBS, загружает входные данные и передаёт задачу пакетной системе Torque. Далее сервис периодически опрашивает состояние задачи и по завершении выгружает результаты. Интервалы опроса статуса задачи: * для планового времени не более 5 часов – 10 минут; * для планового времени не более10 часов – 30 минут; * для планового времени более 10 часов – 1 час. Алгоритм проверки состояния задачи в суперкомпьютерном окружении использует для проверки состояния два признака исполнения: наличие специальных файлов (используются в процессе компиляции приложений) и сведения из системы пакетной обработки. При наличии какого-либо признака (ошибки или завершения) алгоритм забирает выходные данные (результаты и журнал исполнения) из целевого окружения и удаляет рабочую директорию задачи. Выходные данные могут быть не более 100MB на задачу, в противном случае они будут оставлены в целевом окружении. Для работы сервиса не требуется установки стороннего ПО на узлах суперкомпьютера. ==== Разграничение прав доступа ==== Роли пользователей в системе: * Гость - ограниченный доступ, только просмотр шаблонов и справочной информации * Пользователь - разрешено создание проектов * Администратор проекта - полный доступ к проекту * Разработчик проекта - имеет доступ к задачам и окружениям проекта * Модератор системы - имеет возможность изменения в данные пользователей, задач, шаблонов и проектов * Администратор системы - имеет возможность управления пользователями системы ==== Схема базы данных ==== {{ :templet:templet-db.png |}} ==== Технологии ==== Программный стек веб-сервиса включает в себя следующие технологии: * Java 7 * Фреймворк Grails 2.2 * Сервер приложений Tomcat 7 * Сервер БД PostgreSQL 9.1 Сервис функционирует на ОС Ubuntu Linux Server 12.04.3 LTS Всё ПО является свободно распространяемым и не требует приобретения лицензии.