#summary Протокол Opal
----
= Общие сведения =
Протокол Opal специально разрабатывался с такой целью, чтобы быть максимально простым в использовании как человеку, так и машине. Не смотря на простоту, протокол обладает большой гибкостью и лаконичностью.
Описание протокола можно разделить на две части. Такое разделение связано с архитектурой проекта. Тем не менее, формат сообщений универсален.
== Формат сообщения ==
Все сообщения строятся по одному шаблону:
{{{
MethodName
MessageBody
}}}
== Типы данных ==
= Соединение сервер - задача =
== Запрос информации сервером ==
Перед запуском задачи для того, чтобы узнать какие параметры нужно передавать для корректного выполнения алгоритма, сервер запускает задачу с ключом -i или --info:
`task (-i|--info)`
Результатом работы будет набор строк, который описывает все доступные значения для данной задачи. Строки описываются в следующем формате:
_name_ = _type_ (choice _list_) (default _value_)
в будущем
_name_ = _type_ (choice _list_) (default _value_) (check _expr_)
В ответе обязательно должна присутствовать секция Main, в которой описываются все параметры модели. Другие секции описывают параметры доступных алгоритмов в задаче и их количество не ограничено.
== Передача списка параметров ==
== Получение результата ==
== Пример сессии ==
Пример записи, описывающий задачу про сахарный диабет:
{{{
[Main]
time = period default 0 to 24
initx = float default 30.0
inity = float default 10.0
[Genetic]
population = int default 1000
fitness = string choice [std, lst] default std
[Bellman]
xpart = partition default 0 to 100 by 1
}}}
= Соединение сервер - ГИП =