1.平台信息
Linux:VMware® Workstation 12 Pro + Ubuntu 12.04 64bit
ARM:ZLG EPC-M6G2C 工控主板
涉及工具:SecureCRT(串口终端)、ONVIF Device Test Tool(ONVIF设备测试工具,Windows下)
交叉工具链:arm-linux-gnueabihf-gcc (gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux)
协议版本:ONVIF2.4、SOAP1.2
gsoap源码版本:gsoap_2.8.1.6
相关库版本:libuuid-1.0.3、openssl-1.0.2e
2. 有关标准和协议介绍
2.1 ONVIF 开放型网络视频接口论坛开放标准
ONVIF(开放式网络视频接口论坛)是一个全球性的开放式行业论坛,其目标是促进开发和使用基于物理IP的安全产品接口的全球开放标准。ONVIF创建了一个视频监控和其他物理安全领域的IP产品如何进行相互通信的标准。ONVIF是由Axis Communications,博世安防系统和索尼于2008年创立的。
该规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全互通。
ONVIF规范中设备管理和控制部分所定义的接口均以Web Services的形式提供。ONVIF规范涵盖了完全的XML及WSDL的定义。每一个支持ONVIF规范的终端设备均须提供与功能相应的Web Service。服务端与客户端的数据交互采用SOAP协议。ONVIF中的其他部分比如音视频流则通过RTP/RTSP进行
更多:https://www.onvif.org
2.2 SOAP 简单对象访问协议
SOAP(Simple Object Access Protocol, 简单对象访问协议),是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。
2.2.1 SOAP 构建模块
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
- 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
- 可选的 Header 元素,包含头部信息
- 必需的 Body 元素,包含所有的调用和响应信息
- 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
2.2.2 语法规则
- SOAP 消息必须用 XML 来编码
- SOAP 消息必须使用 SOAP Envelope 命名空间
- SOAP 消息必须使用 SOAP Encoding 命名空间
- SOAP 消息不能包含 DTD 引用
- SOAP 消息不能包含 XML 处理指令
2.2.3 SOAP 消息的基本结构
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
2.3 关系
ONVIF = 服务端 + 客户端 =(Web Services + RTSP)+