MyWackoSite: Chilim/ПротоколКлиента

Протокол для интерфейса пользователя

Вся информация передается в виде XML (тело POST-запроса и ответа на него)

адрес сервлета: /ui_control.perform

Скорей всего, вся информация будет сжиматься (используется класс ru.nsu.swsoft.replication.net.wrapstream.Archiver)

Запросы:

Раздел «Процессы»:

* запрос на идентификаторы (локальный и удаленый)

POST:

<message action="get_ids" />

response:

<?xml version="1.0" enconing="UTF-8"?>

<response state="ok">

<identificators>

<localid>

localid_value

</localid>

<foreignid>

foreign_id

</foreignid>

</identificators>
</response>

* запрос на количество записей

POST:

<message action="get_local_changes_count" />

<message action="get_foreign_changes_count" />

response:

<response state="ok">

<changes>

<all>all_changes</all>

<done>done_count</done>

</changes>
</response>

* запрос на список изменений

POST:

<message action="get_local_changes">

<count>_count_</count>
</message>

<message action="get_foreign_changes">

<count>_count_</count>
</message>

response:

<response state="ok">

<changes>

<item>

<globalid>id</globalid>

<modification_date>date</modification_date> // date in UTC format (RFC #какой-то)

<done>done</done> // true/false

</item>

</changes>
</response>

* статус

POST:

<message action="get_status"/>

response:

<response state="ok">

<status> status </status>
</response>

* посылка сообщения-confirm

POST:

<message action="confirm"/>

response:

<response state="state"> // state="ok" | “failed”

information // if state="ok" – может быть пустым, иначе содержит информацию, почему операция провалилась
</response>

Рездел настройки прокси:

* получение настроек

POST:

<message action="get_proxy_settings"/>

response:

<response state="ok">

<proxy>

<type> type </type>

<address> address </address>

<port> port </port>

<auth required="required"> // required="true" | “false”

<login> login </login> // only if required="true"

</auth>

</proxy>
</response>

* сохранение настроек:

POST

<message action="set_proxy_settings">

<proxy>

<type> type </type>

<address> address </address>

<port> port </port>

<auth required="required"> // required="true" | “false”

<login> login </login> // only if required="true"

<password> password </password>

</auth>

</proxy>
</message>

response:

<response state="ok"|"failed">

information
</response>

Раздел со списком узлов

* получить список узлов

POST:

<message action="get_nodes_list"/>

response:

<response state="ok">

<nodes>

<node>

<node_id>id</node_id>

<node_url>url</node_url>

<replication_date>date</replication_date>

</node>

</nodes>
</response>

* добавление/редактирование узла

POST:

<message action="edit_nodes">

<nodes>

<node>

<node_id>id</node_id>

<node_url>url</node_url>

</node>

</nodes>
</message>

response:

<response state="ok"|"failed">

information
</response>

* запрос на удаление узла

POST:

<message action="delete_node">

<node>node_name</node>
</message>

response:

<response state="ok"|"failed"|>

information
</response>

* запрос на начало репликациии с узлом

POST:

<message action="start">

<node>node_name</node>
</message>

response:

<response state="ok/failed">

information
</response>

* запрос на остановку текущего процесса репликации

POST:

<message action="stop" />

response:

<response state="ok/failed">

information
</response>

SSL-опции

* получить

POST:

<message action="get_ssl_settings" />

response:

<response state="ok">

<ssl_settings>

<own_keystore>keystore</own_keystore>

<trusted_keystore>keystore</trusted_keystore>

</ssl_settings>
</response>

* сохранить

POST:

<message action="set_ssl_setings">

<ssl_settings>

<own_keystore>keystore</own_keystore>

<trusted_keystore>keystore</trusted_keystore>

</ssl_settings>
</mesasge>

response:

<response state="ok"|"failed">

information
</response>

Локальный идентификатор

* получить

POST:

<message action="get_local_id"/>

response:

<response state="ok">

<localid>

local_id

</localid>
</response>

* сохранить:

POST:

<message action="set_local_id">

<localid>

local_id

</localid>
</message>