API
Иногда необходимо реализовать взаимодействие с СУО QSystem программно из другой программы или системы. Это полезно для интеграции, получения каких-то данных из СУО. Рассмотрим пути как это можно сделать. API взаимодействия с сервером СУО основано на открытом протоколе на основе Json. По этому все что требуется программисту для работы с API это знание что такое формат Json, как с ним работать и описание самих протоколов взаимодействия. Про Json можно узнать из множества сетевых ресурсов, например, http://www.json.org/.
Библиотека для использования API из Java.
На Google Code выложена библиотека QAPI.jar. Добавляйте ее к себе в проект и отправляйте запросы к серверу QSystem. Требуется Java7. Пример:
QConfig.setCfg(config);
RpcGetAllServices.ServicesForWelcome sw = NetCommander.getServiсes(new INetProperty() {...});
System.out.println(sw.getRoot().getChildren());
Схема взаимодействия с сервером QSystem.
Сервер СУО QSystem принимает команды и отвечает. Передать команду можно двумя способами. Первый - по TCP, второй - по HTTP. Второй способ нужен если нет возможности использовать обычное сетевое TCP соединение, для этого нужно при старте сервера СУО добавить параметр -http <port>. Этот параметр указывает, что при старте сервера запустится встроенный http-сервер и он сможет принимать соединения. В любом случае нужно свормировать json-сообщение и передать его в сервер СУО, после этого ожидать ответа. Ответ выдается тоже в формате json.
Изучения протокола взаимодействия.
Протокол взаимодействия основан на JsonRPC2.0 Все json-структуры для взаимодействия изучаем самостоятельно. Для этого изучаем логи. К примеру, удалим все старые логи, запускаем сервер СУО. В логе qsys.log пока ничего интересного нет. Теперь запустим приложение пункута регистрации. Теперь видим в логе запрос на сервер СУО и ответ.
Изучаем структуру запроса и ответа, формируем аналогичные вещи в своей программе. Для изучения json и форматирования удобно пользоваться этим сервисом.