Реклама

Onvif и gSoap (Часть 1) — Введение

Onvif является стандартным протоколом, разработанным для поиска и управления IP-камерами. До разработки данного протокола каждый производитель имел собственное API для обмена информацией и изменения настроек оборудования. Onvif же является открытым унифицированным стандартом.

Onvif является Web-сервисным протоколом, в котором камера представляется в качестве сервера. Функции разделяются на категории, которые основаны на функционале камеры (Например, потоковое вещание, настройка устройства, модули сигналов входов/выходов и т.д.). При полноценном внедрении протокола в IP-камеру выделяют три типа функций: поиск (discovery), настройка и получение информации и уведомления о событиях.

Протокол поиска основан на WS-discovery. Клиентская сторона посылает специальное сообщение с мультикаст адресом. Все Onvif сервера отвечают клиенту, сообщая свой IP-адрес и некоторые свои характеристики. Передача информации и команд настройки IP-камер основывается на SOAP поверх HTTP протокола. Клиентское приложение создаёт запросы и сервер выполняет их, а также высылает запрашиваемые данные.

Уведомление о событиях имеется двух видов (основаны на WS-BaseNotification): push-mode и pull-mode. В push-mode клиентское приложение подписывается на некоторые события сервера и затем прослушивает входящие соединения. Сервер посылает сообщения клиентскому приложению для каждого нового события. Клиентское приложение периодически обновляет свою подписку. В pull-mode клиентское приложение периодически подключается к серверу и опрашивает его на предмет новых доступных сообщений.

Для разработки приложения с поддержкой Onvif протокола можно воспользоваться библиотекой gSoap с открытым исходным кодом, которая также доступна под коммерческой лицензией. Данная библиотека используется для внедрения Web-сервисов в приложение, написанное на языках C/C++. В библиотеке присутствуют две части: генератор исходного кода для внедрения в приложение и некоторый готовый исходный код самой библиотеки.

Генератор исходных кодов, который принимает wsdl файлы, которые являются описанием сообщений web-сервисов, и генерирует исходный код серверной или клиентской части. Для внедрения полученного сервиса необходимо подключить исходные коды в проект, а также некоторые дополнительные файлы и плагины, распространяемые в качестве исходного кода.

В дальнейших статьях рассмотрим, как работать с тулкитом gSoap и внедрить поддержку Onvif в приложение, написанное C/C++.

Advertisement

Добавить комментарий