工控网首页
>

应用设计

>

基于.NET的下一代网络视频监控系统的设计

基于.NET的下一代网络视频监控系统的设计

2010/8/19 11:04:00

1  引言
     近年来,人们越来越关注生存环境,重视突发灾害的预警与紧急应对措施的建立,迫切希望提高生产和生活管理的智能化水平,网络视频监控系统也作为人类视觉的延伸越来越受到重视,得到了广泛的应用和长足的发展。网络视频监控系统经历了从基于PC的局域网网络监控系统、基于PC的Web服务器的网络监控系统、直至目前以嵌入式Web服务器的网络监控系统为发展热点的三个阶段。然而,随着Internet网络的发展,人们给网络视频监控系统提出了新的要求。因为届时网络视频监控系统的用户们将要求在可以接入因特网上的基于任何操作系统平台的终端,无论是基于Windows、Linux等系统的PC机,还是基于嵌入式系统如WinCE、Palm OS、ucLinux等的PDA、移动电话等,任意一个终端都可以作为网络监控系统的监控终端,进行实时监控和管理,也就是说下一代网络视频监控系统区别于现有系统的重要特征就在与其能够实现对多种平台、多种终端的通用性和自适应性。为此,我们提出了基于.NET平台的下一代网络视频监控系统的解决方案,该方案即满足了跨平台和终端无关的要求,也保证了多媒体数据实时高效传输的能力。我们在计算机网络上进行了该方案的实例实现,证明了其有效性。

2  XML与.NET
    XML[2,3]是由W3C 制订的新标准标记语言, 其最大的特点是将信息的描述与信息的处理分开, 使得数据具有自我描述能力。XML 有很好的扩展性、开放性, 而且具有可验证的特性等。XML 的众多优势使其逐渐成为网络世界的“国际语言”。XML为采用Web Service开发分布式应用程序提供了必要的支持。实际上,XML在Web Service 的设计和实施中起着关键作用, Web Service 的接口描述及消息传递都采用XML 编码。然而要实现基于XML的Web Service,还需要一个关键的对象访问协议:SOAP。SOAP,简单对象访问协议(Simple Object Access Protocol) 是一个基于XML 的用于在分散的分布式环境下交换信息的轻量级协议。SOAP 在请求者和供应者对象之间定义了一个通讯协议, 这样, 在一个面向对象编程的环境下,申请对象就可在提供的对象上执行一个远程的方法调用。
    .NET[1]是Microsoft公司于2002年2月推出的新一代软件开发平台,它具有以下几大特点:跨平台、跨语言、跨设备的特性,即不论用什么操作系统( Unix、Windows、Linux、OS/2等),也不论用什么程序设计语言(C#、 C++ 、Java、 VB),用什么设备 (PDA、PC等),所有的软件一次生成后,到处适用。尽管跨平台和跨设备的特性在1995年出现的Java中就已经实现,但跨语言的特性,即多种语言运用于同一段程序中,是首次提出的;易用的、标准的数据交换和异构系统整合规范,基于的XML的数据传输及基于Web Service的开发体系为分布式应用程序提供一个优秀的开发平台,使得分布式应用能够安全、高效、有组织地运行;而能够方便地从原有的技术移植的特点又使.NET平台能很好地继承原有技术开发的应用,实现很好的兼容性。
    所以采用.NET平台来开发基于XML标准来的下一代跨平台、跨语言、跨终端网络视频监控成为了我们的必然选择。

3  系统方案设计
3.1 系统整体结构设计

 

    图1是系统的整体结构图。图中的层次划分是基于系统级的,即不区分系统服务端和客户端(即监控端)的整体划分。HTTP 不是有效率的通讯协议,而XML 还需要额外的文件解析(parse),两者使得消息、数据处理的速度大大降低,然而网络视频监控系统着重要传输的是数据量相对巨大的视、音频数据,如果也用XML封装、传输,监控的实时性恐难保证。所以这里我们把系统的应用层分为两个部分:应用程序模块和多媒体数据模块,把视、音频数据单独放到多媒体数据模块单独处理。多媒体数据模块包括视频数据库和实时视频流数据,这里是系统的数据大户,如何高效的传输是系统成功与否的一个关键。这里我们的方案是采用目前应用广泛的RTP协议和RTCP协议。RTP(Real-Time Transport Protocol)是一种用于实时传输多媒体数据的端到端的应用程序级别的协议[4]。它的主要功能就是提供编码、定时间戳和提供各帧数据序列号的功能。同时我们使用作为RTP协议一部分的RTCP协议来实现多媒体传输的反馈控制即QoS保证。系统中我们使用UDP作为RTP的底层传输协议,而不是TCP协议。因为TCP协议中的报丢失重传机制和拥塞控制机制会造成较大的时间延时,使系统的实时性降低。而我们使用UDP所造成的传输可靠性的降低可以通过上层的RTP协议自身良好的传输控制性能本身来弥补。应用程序模块处理非视频数据的消息和简单数据,主要负责控制消息和简单数据处理,控制消息类型包括:云台、摄像头控制,系统管理(登录管理、故障报告等),用户管理(用户添加、密码修改等),实时视频监视控制(开始监视、中断监视、回退查看等),视频记录查询命令(查看视频数据库的查询命令),其他功能(运动检测报警等)。应用程序模块的消息和数据采用XML封装,然后经由HTTP协议在Web服务器和客户端之间传输, 在保证了系统的终端兼容性、跨平台能力的同时也能够保证传输效率。这里要指出的是,如前所述,出于效率的考虑,本方案的多媒体数据模块的多媒体数据并非XML封装,所以本系统似乎并不具备“纯正”的“终端无关”性,但由于终端的多媒体数据接收模块和播放插件无论如何都是需要下载到本地的(只需一次,在用户第一次登录系统并注册后),所以我们可以确保多媒体数据编码格式对终端是适应的。由于接收模块和播放插件相对于应用程序模块中如系统管理、用户管理等功能块要稳定得多,用户不必担心需要经常升级(即重新下载)的麻烦。
3.2 服务器端和客户端内部结构

 


      图2描绘了系统服务器端和客户端的内部结构。在客户端,所有功能最后集中在浏览器中展现。上层的系统管理、用户管理、播放控制、多媒体数据库查询编辑等功能是用户看得见并可直接操作的模块。然而这一切功能,除了用户管理等一些不涉及到多媒体数据的功能操作之外,所有的功能模块是建立在客户端的核心:多媒体数据传输插件和多媒体播放插件的基础之上的。其中多媒体传输插件负责从服务器端接收多媒体数据,其中包括缓冲、同步、速率控制等功能,它服务于多媒体播放插件,向其提供接收到的多媒体数据。而多媒体播放插件应提供友好的控制功能,如缩放、暂停、记录、回放等,其中包括缓冲、同步、解码、显示等子模块。在服务器端,我们将系统除多媒体数据处理、传输外的所有功能以Web Service的方式提供,以增强系统的可扩展性。我们采用SOAP作为Web Service的XML数据消息传递的协议。SOAP作为目前十分流行的分布式交换协议,具有简单和可扩展性好的优点,它有效地将XML和HTTP结合起来。如图所示,在Web Service的服务管理模块中,所有的控制消息和简单数据(即所有XML封装的数据)都按SOAP协议进行传递,即在发送和接收消息时分别要经过SOAP Generator(SOAP 生成) 和SOAP Parser(SOAP 解析)。多媒体服务管理接口模块(以下用MMSMI)提供了请求服务管理模块(以下用RSM)与多媒体服务模块(以下用MMS) 之间的接口,如当RSM收到客户端请求实时监控连接的时候,RSM向MMSMI发出请求,MMSMI 通过多媒体同步管理(以下用MMSM)和多媒体自适应管理(以下用MMAM)两个子模块来激活MMS与客户端的多媒体数据传输,其中MMSM子模块用于选择视、音频源(因为有的系统有多个摄像头源,加上多媒体记录数据库也看作是一个源)和应用层级别的媒体传输同步控制,而MMAM模块用于控制MMS的音视频编码模块,根据终端可能的特殊的编码要求来调整编码方案。此外,MMSMI还可以利用请求或控制命令调用MMS模块功能接口,从而实现激活、中断多媒体数据传输,音视频源切换,码率控制等功能。MMS模块由通用音视频数据采集模块(以下用GAVA)、音视频编码(以下用AVE)、多媒体数据库(以下用MMDB)、传输控制模块(以下用MMTC)。其中GAVA模块建立于标准采集卡驱动程序和数字摄像机驱动程序基础上,向AVE提供统一音视频数据输出接口,这样系统可接入遵守标准的任何视频采集卡或数字摄像头。AVE模块应包含多种编码子模块供MMSMI选择,以适应不同终端的需求。MMDB存储过往视频监控记录,在响应客户查询、检索的同时,由AVE模块动态的添加新视频数据文件并扩充数据库接口。MMTC模块提供按RTP/RTCP数据封装、解析,传输缓冲,码率控制,传输质量反馈等传输层功能。需要强调的是,尽管多媒体服务模块即MMS的工作是受Web Service控制的,但它又是相对独立于Web Service的,它与终端的数据接收插件的通信是独立于其他基于SOAP协议的消息和控制命令的传输的,比如它可以和Web Service分别运行于不同的服务器。

4. 系统实现
     我们在.NET平台上实现了上述方案的一个简单实例。首先我们使用ASP.NET[5]开发客户端操作控制程序(.aspx形式的Web页)和基于XML的 Web service。ASP.NET封装了完成SOAP协议通信的基本模块,这给我们开发Web service带来了很大的方便,我们无需自行实现繁琐的SOAP Parser和SOAP Generator,这些ASP.NET都已经帮我们解决了。这样我们可以把精力集中在系统功能实现和整合上。然后我们用Visual C++.NET[6]开发出服务器端组件MMS.dll,实现多媒体服务功能,它的内部功<

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机