Edited wiki page Protocol through web user interface.

This commit is contained in:
anwinged@gmail.com 2011-12-10 08:33:51 +00:00
parent d1b3797f49
commit 0407203bbd

View File

@ -11,12 +11,38 @@
== Формат сообщения == == Формат сообщения ==
Все сообщения строятся по одному шаблону: Все сообщения строятся по одному шаблону, очень похожему на протокол JSON. В основе выбранного стиля лежит набор пар ключ-значение, которое в большинстве языков программирования представляется в виде ассоциативного массива.
В общем случае сообщение выглядит следующим образом - это набор пар ключ-значение, заключенный в фигурные скобки.
{{{ {{{
MethodName { тело сообщения }
MessageBody
}}} }}}
Пример простейшего сообщения:
{{{
{ request = info }
}}}
== Ключевые слова ==
Некоторые из ключей являются специальными словами, жестко установленными, для возможности адекватного общения меду сервером и клиентом.
|| *Слово* || Краткое описание ||
|| request || запрос какой-либо информации ||
|| answer || ответ на запрос ||
|| status || статус опрашиваемого процесса ||
|| main || секция с описанием параметров модели ||
|| algo || секция с описанием алгоритмов-методов модели ||
|| header || секция с описанием заголовка таблицы результатов ||
|| table || секция с описанием таблицы результатов ||
|| comment || комментарий ||
Теперь более подробно о каждом из ключевых слов.
=== request ===
=== answer ===
== Типы данных == == Типы данных ==
= Соединение сервер - задача = = Соединение сервер - задача =
@ -42,19 +68,98 @@ _name_ = _type_ (choice _list_) (default _value_) (check _expr_)
== Получение результата == == Получение результата ==
== Пример сессии == = Соединение сервер - ГИП =
= Пример сессии =
Пример записи, описывающий задачу про сахарный диабет:
{{{ {{{
[Main] // запрос сервера на получение информации о задаче
time = period default 0 to 24 {
initx = float default 30.0 request = info
inity = float default 10.0 }
[Genetic] // ответ клиента-задачи
population = int default 1000 {
fitness = string choice [std, lst] default std answer = ok
[Bellman]
xpart = partition default 0 to 100 by 1 meta = {
}}} detailed = true
}
= Соединение сервер - ГИП =
main = {
size = int default 100
x = float default 20.0
y = float default 0.0
time = period default 00:00 to 24:00 comment twenty-four hours
}
algo = {
genetic = {
method = string choice [std, last] default std
poplulation = int default 1000
}
bellman = {
xpart = float partition 0 to 100 by 1
ypart = float partition 0 to 50 by 0.5
}
}
}
// запрос сервера на вычисления по указанным параметрам
{
request = calculate
main = {
size = 100
x = 20.0
y = 5.0
time = 00:00 to 48:00
}
algo = {
genetic = {
method = last
population = 1200
}
}
}
// ответ клиента задачи о том, что вычисления начались
{
answer = ok
status = inprogress
}
// запрос сервера о статусе вычислений
{
request = status
}
// ответ клиента-задачи о том, что прошла уже половина вычислений
{
answer = ok
status = inprogress
percent = 0.50
comment = 10 минут, полет нормальный
}
// снова запрос сервера о статусе
{
request = status
}
// клиент сообщает, что вычисления завершены, и предоставляет таблицу результатов
{
answer = ok
status = ready
header = {
time = datetime
x = float
y = float
u = float comment management
}
table = {
00:00 20.0 5.0 0.0
01:00 18.0 6.0 1.0
02:00 16.0 7.0 2.0
//...
}
}
}}}