Edited wiki page Protocol through web user interface.
This commit is contained in:
		| @@ -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 | ||||
| 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 | ||||
| }}} | ||||
|  | ||||
| = Соединение сервер - ГИП = | ||||
| // запрос сервера на получение информации о задаче | ||||
| { | ||||
|     request = info | ||||
| } | ||||
| // ответ клиента-задачи | ||||
| { | ||||
|     answer = ok | ||||
|      | ||||
|     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 | ||||
|         //... | ||||
|     } | ||||
| } | ||||
| }}} | ||||
		Reference in New Issue
	
	Block a user