前言:
监控项目中,经常会遇到管理大量网络摄像机IPC的情况,如果每个IPC都要手动输入IP和端口,是非常繁琐的事情,于是,出现了与设备无关的ONVIF协议。海康提供的SADPTool就是基于ONVIF协议实现的,另外,还有 ONVIF Device Test Tool 官方的ONVIF协议测试工具。我们今天要实现的就是自己使用 VS2010 实现自己的ONVIF设备发现程序。
ONVIF致力于通过全球性的开放接口标准来推进网络视频在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性。2008年11月,论坛正式发布了ONVIF第一版规范——ONVIF核心规范1.0。
ONVIF协议:
在进入正式的编码之前,我们先对ONVIF协议的概念、组成、内容做一个大致的了解。
1、服务器和客户端:
服务器:通常是你要对接的其他厂家的数字摄像头(IPC)
客户端:通常是对接的IPC的设备程序,安防业内多称(NVR),当然其他软件工具也可称为客户端,如ONVIF Device Test Tool, vlc软件,浩一云监控的【采集端】。
服务器,通常是以Web Server的形式出现的,等待 客户端 的接入,进行通讯交互;服务器 和 客户端 具体如何进行交互的呢?ONVIF协议为了方便 服务器 和 客户端 交互,并保持设备无关性,引入了一些基本语法和概念,具体如下:
2、基本语法和概念:
XML:可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
SOAP:简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
WSDL:网络服务描述语言是Web Service的描述语言,它包含一系列描述某个web service的定义。这里可以通俗的理解为协议定义。
WS-discovery:你在预先不知道目标服务的情况下,可以动态的探测可用的服务并调用(这就是我们今天要实现的重点)