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>