ONVIF相关

一.简介

1.onvif规范描述了网络视频的模型,接口,数据类型及数据交互的模式。并复用一些现有的标准,如WS系列标准等。

2.onvif规范的目标是是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(摄录前端,录像设备等)完全互通。

3.onvif规范中设备管理和控制部分所定义的接口均以web services的形式提供,设备作为服务提供者为服务端。

4.onvif规范涵盖了完全的XML及WDSL定义,每一个支持ONVIF的终端设备均须提供与功能相应的web service。

5.服务端与客户端的数据交互采用SOAP协议,其他部分比如音视频流通过RTP、RTSP进行。

二.实现机制

1.web service:

  web service是基于网络,分布式的模块化组件,执行特定的任务。它可以使将应用程序转换为网络应用程序,通过web进行发布,查找和使用。

ONVIF相关

  客户端会根据WSDL描述文档,生成一个SOAP请求消息,该要求会被嵌入在一个HTTP POST请求中,发送到Web services所在的Web服务器。Web Services请求处理器解析收到的SOAP请求,调用相应的Web services。然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把消息送回到客户端。

ONVIF相关

  • 什么是web services
    • 应用程序组件
    • 使用开放协议进行通信
    • 是独立的并可自我描述
    • 可通过使用UDDI来发现
    • 可被其他应用程序使用
    • XML是web services的基础
  • 如何工作
    • 基础的ws平台是XML+HTTP
    • HTTP协议是最常用的因特网协议
    • XML提供了一种可用于不同的平台和编程语言之间的语言。
  • ws平台元素
    • SOAP简易对象访问协议
    • WSDL网络服务描述语言
    • UDDI是一种目录服务,通过它,企业可注册并搜索web services
      • 指通用的描述,发现以及整合
      • 是一种用于存储有关web services的信息的目录
      • 由WDSL描述的网络服务接口目录
      • 经由SOAP进行通讯
      • 被构建与Microsoft.NET平台中

2.WDSL

  WSDL(网络服务描述语言)基于XML的语言,用于描述web services以及如何对它们进行访问。

  • 什么是WSDL
    • 指网络服务描述语言
    • 使用XML编写
    • 是一种XML文档
    • 用于描述网络服务
    • 也可用于定位网络服务
  • WSDL文档
    • 文档结构
      • <definitions>
        
        <types> <!-- ws使用的数据类型 -->
          definition of types......
        </types>
        
        <message> ws使用的消息
           definition of a message......
        </message>
        
        <portType> ws执行的操作
           definition of a port......
        </portType>
        
        <binding> ws使用是的通信协议
           definition of a binding......
        </binding>
        
        </definitions>
    • WSDL端口 <protType> 是最重要的WSDL元素,可描述一个ws,可被执行的操作,以及相关信息,可以将其比作编程语言中的函数库。
    • WSDL消息 <message>定义 一个操作的数据元素,每个消息均由一个或多个部件组成,可以看成编程语言中一个函数调用的参数。
    • WSDL        <types>定义ws使用的数据类型,使用XML Schema语法定义数据类型
    • WSDL 捆绑 <binding>为每个端口定义消息格式和协议细节
      • 两个属性:name; type
        • name定义名称
        • type指向用于binding的端口
      • soap:binding,两个属性:style,  transport
        • style可取值rpc,documnet
      • operation定义了每个端口提供的操作符

3.SOAP

  简单的基于XML的协议,它使应用程序通过http来交换信息。是用来访问网络服务的协议。

  • 什么是SOAP
    • 指简易对象访问协议
    • 是一种通信协议
    • 用于应用程序之间的通信
    • 用于发送信息的格式
    • 用来通过因特网进行通信
    • 独立于平台
    • 独立于语言
    • 基于XML
    • 很简单可扩展
    • 允许绕过防护墙
  • 语法
    • SOAP构建模块:一条SOAP消息就是一个普通的XML文档,包含以下元素:
      • 必需的Envelope元素,可把此XML文档标识为一条SOAP信息
      • 可选的Header元素,包含头部信息
      • 必需的Body元素,包含所有的调用和响应信息
      • 可选的Fault元素,提供有关在处理此消息所发生错误的信息
    • 语法规则
      • 必须用XML编码
      • 必须用SOAP Envelope命名空间
      • 必须用SOAP Encoding命名空间
      • 不能包含DTD引用
      • 不能包含XML处理指令
    • 基本结构
      • <?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>
  • SOAP Envelope元素
    • 是SOAP的根元素,可把XML文档定义为SOAP消息
    • xmlns:soap命名空间,必须为上面的值
    • encodingStyle用于定义在文档中使用的数据类型,可出现在任何SOAP元素中,并会被应用到元素的内容及元素的所有子元素上,SOAP消息没有默认的编码方式
  • SOAP Header元素
    • 包含有关SOAP消息的应用程序专用信息(认证,支付等)。
    • 如果此元素被提供,则它必须是Envelope元素的第一个子元素
    • actor属性可被用于将Header元素寻址到一个特定的端点soap:actor="URI"
    • mustUnderstand属性可用于标识标题项,说明对于要对其进行处理的接受者来说是强制的还是可选的。soap:mustUnderstand="0|1"
  • SOAP Body元素
    • 包含打算传送到消息最终端点的实际SOAP消息
  • SOAP Fault元素
    • 用于存留SOAP消息的错误和状态信息
    • 如果已提供了Fault元素,则它必须是Body元素的子元素。
    • 在一条SOAP消息中,Fault元素只能出现一次
  • SOAP HTTP Binding

 4.实现

  ONVIF规范向视频监控引入了Web services的概念。设备的实际功能均被抽象为了Web Service的服务,视频监控系统的控制单元以客户端的身份出现,通过Web请求的形式完成控制操作。

ONVIF相关

  • Web services给监控系统带来什么?
    • 设备的无关性,任何一个设备接入系统,不会对其他系统造成影响。
    • 设备的独立性,每一个设备只负责对收到的请求做出反馈,甚至不需要知道控制端的存在。
    • 管理的集中性,所有的控制由客户端来发起
  • ONVIF规范能给视频监控系统带来什么?
    • 抽象了功能的接口,统一了对设备的配置以及操作的方式
    • 控制端关心的不是设备的型号,而是设备所提供的Web Services
    • 规范了视频系统中Web Services范围之外的行为
    • ONVIF提供了各个模块的WSDL,拥有效率非常高的开发方式

 

三. ONVIF应用

1.名词说明

  • CMU(Center Manager Unit),中心管理单元。
  • PU(Prefocus Unit),监控前端单元,负责在CMU的控制下使用摄像机采集视频流,使用麦克风采集音频流,使用控制口采集报警信息,对摄像机云台镜头进行控制。
  • CU(Client Unit),监控系统的监控客户端单元,负责将PU采集到的视频流,音频流,报警信息提交给监控用户,并根据用户要求操作PU设备,如云台,镜头等。

2.传统视频监控系统在一个局域网的应用场景

  1. PU设备上线后,向CMU注册,建立链接。
  2. CMU与PU进行信令交互,请求能力集,获取配置。
  3. CU上线,向CMU注册,建立链接。
  4. CMU与CU进行信令交互,传输设备列表。
  5. CU向PU请求码流。

3.应用ONVIF规范后的对应场景

  1. PU设备上线后,向CMU发送HELLO消息。
  2. CMU需要搜寻设备时,向PU发送PROBE消息。
  3. CMU与PU进行信令交互,请求能力集,获取配置。
  4. CU上线,向CMU注册,建立链接。
  5. CMU与CU进行信令交互,传输设备列表。
  6. 在CMU协调下,CU同PU建立连接传输码流。

4.ONVIF带来的变化

  • PU与CMU的交互方式发生了改变,CMU不再与PU保持长连接。
  • 遵循ONVIF规范,信令以及消息内容有了统一的标准。

 

 

 

参考:http://www.cnblogs.com/endv/p/6828718.html

   https://blog.csdn.net/ghostyu/article/details/8162193

上一篇:js 正则表达式


下一篇:Datawhale学习计划:python基础任务6