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>