文 武,谭沅军,刘 敏
(1.重庆邮电大学通信与信息工程学院,重庆400065;2.重庆信科设计有限公司,重庆400065)
随着科技和社会的不断发展,安全问题日益突出,安全防卫已经成为社会各界关注的焦点之一。网络视频监控已经融入到校园安防、城市交通、平安城市、森林防火和灾后重建等社会各个领域中。特别是在互联网、电信网、广播电视网和电网等四网开始融合以后,安防监控行业更是朝着数字化、网络化、智能化、一体化等方向快速发展。但随着国民经济进一步增长,人们对安防重视程度的提高,使得该行业的市场容量急剧上升,目前市场存在的小规模、单一厂商的监控系统已经不能满足客户需求。显然一体化的滞后已成为影响该行业发展的重要因素之一。
而基于ASP.NET的网络视频监控系统,以B/S架构、Web Services为基础,集成了高效、较好的用户感知、强兼容性、易于升级和扩展于一体的优点。采用以融合、开放思想的开放式协议(Open Network Video Interface Forum,ONVIF),为该行业冲出瓶颈提供了有利条件。
ASP.NET是微软建立在Web上的.NET平台的应用程序开发技术,与HTML和.NET协同工作使得Web开发效率有效提高。本系统由ASP.NET部署B/S的三层架构UI、业务逻辑、数据访问组成,有效分离了页面、逻辑和数据,使得监控系统的处理更加灵活,便于后期的维护和扩展。
ActiveX也叫OCX,是一个开放的、面向对象的集成控件,可以制定多种功能。使用该控件,可轻松地在Web Form中插入交互式对象、多媒体效果以及复杂的应用程序;也可方便地应用于VB、C#等语言中,拓展各个语言间的开发能力以及实现小型组件的应用、重用、代码的共享,从而提高了开发的效率,缩短了开发周期。
ONVIF是于2008年联合成立的一个开放型网络视频接口论坛[1],致力于制定使基于IP网络的不同IPC设备生产商所生产的网络视频服务器(NVS)、网络摄像机(IPC)等网络视频相关产品相互兼容的标准。其侧重点在于网络视频的发送设备与客户端之间的接口,该协议涉及到设备开发、设备配置、视频分析、云台控制、事件报警等,通过SOAP协议最终实现信息交互。ONVIF中其他部分如音频、视频流则是通过实时传输协议/实时流传输协议[2](Realtime Transport Protocol/Real Time Streaming Protocol,RTP/RTSP)进行。
基于ASP.NET网络视频监控系统由B/S模式中的3层架构部署,采用ONVIF协议,其系统架构如图1所示,主要由网络视频采集(IPC设备)、网络视频分析、网络视频显示(电视墙)和网络视频存储等4个部分组成[3-4]。
图1 网络视频监控系统B/S三层架构
在此网络视频监控系统中,Server部分主要由Web服务器和IPC服务器2个部分组成。访问用户界面须通过Web服务器,获得包括ActiveX媒体播放控件的媒体设置模块在内的程序包作为操作界面展示给用户。IPC服务器的主要功能则是从监控热点的IPC处采集实时视频图像数据,并对数据进行编码、压缩及发送。UI层中嵌入到浏览器的ActiveX控件主要负责接收IPC服务器传回的媒体流、解码并将经过Buffer处理的媒体流展现到控件视频播放窗口。此系统中,媒体流的传输不再是传统的Http方式,而是通过更加适合实时媒体流传输的ONVIF标准中的RTP/RTCP协议进行传输,此种传输方式既减小了Web服务器的负担,又提高了实时视频传输的效率。
监控系统的各功能模块采用的是分层的B/S架构[5],该架构将视图层(VIEW)与控制层(CONTROL)独立,极大提高了系统的灵活性、可扩展性,同时也提高了其代码的可复用性。
2.2.1 媒体服务模块
媒体服务模块功能集成到ActiveX控件中,通过HTML中的Object对象加载到系统中,视图层使用JavaScript脚本语言调用ActiveX控件对象留出的接口函数实现其功能。该控件包括3个组件,即播放器(player)、服务器(server)、编码器(encoder),这些组件通过ONVIF接口协议通信,采用H.264编解码器处理媒体流数据,这种编解码器使用特殊的算法压缩媒体流的数据量。媒体服务模块的工作流程如图2所示。
图2 媒体模块流程图
主要服务功能有:
1)单播:IPC与客户端一对一的建立一个通信通道传输媒体流数据。
2)组播:在组播网的基础上,允许路由器将媒体流打包复制到多个信道上。
3)点播:用户根据需求选择内容来初始化与客户端的连接,利用ONVIF接口下的RTP/RTSP协议对媒体流进行播放、快进、快退、暂停和停止的控制(主动接收)。
4)广播:IPC服务器将传出的媒体流编码后发送到网络上所有的在线用户(被动接收)。
2.2.2 云台控制模块
早期的安防监控摄像头是固定不动的,如果需要多角度的监控,必须新增加摄像头。为了解决此问题,设计了云台控制。PTZ控制的出现使得用户界面更加人性化、安防监控也更加灵活,有效提高了用户感知,同时减少了系统的成本。UI层将云台控制信号下发到业务逻辑层,经过编码器接收、识别、解析所传来的控制指令,从而对IPC云台进行上、下、左、右等方向的控制。而ONVIF协议制定PTZ统一的接口(虽然各个厂家间的实现方式不一样),有效解决了解码器和通信协议没有统一的标准问题[6]。PTZ 控制中定义的接口函数[7]如表1 所示。
2.2.3 管理模块
此模块在整个系统中有不可估量的作用,设计好此模块能使系统良好地工作。主要分为以下3个部分:
1)用户管理
主要功能是添加、删除、修改用户、权限设置等。根据RBAC权限设计模型,将板块分为5个类型,即用户、角色、文件、菜单和权限。充分利用ASP.NET中已经实现的部分RBAC特性的基础上,结合实际应用[8],设计具有良好通用性的权限管理系统,轻松实现对用户、角色、文件等的基本管理。图3所示为RBAC用户权限设计模型。
表1 PTZ控制接口定义
图3 RBAC用户权限设计模型
2)操作日志
操作日志主要是根据用户不同需求进行日志信息,操作信息、异常信息查询,导出Excel表,同时定义不同管理权限的用户分区操作。
3)设备管理
主要是在线搜索设备、添加、删除设备和进行通道的配置。在线搜索指通过SDK接口函数搜索到网络中所有IPC设备,并获取其属性;添加设备则是将IPC设备的属性展示到UI层,同时将IPC与通道节点绑定;删除设备则是与添加设备相反,即解除与通道节点的绑定。
图4是设备管理和日志管理的实现效果图。
2.2.4 数据库设计
数据库的构建是ASP.NET架构下的监控系统的一个重要组成部分,系统内各个功能模块都与之有密切关联,成功的数据库设计能提高系统性能、节省存储空间、减少信息冗余,利于后期维护和扩展。本系统通过ADO.NET提供的数据连接接口,采用主流的关系型数据库管理系统(Data Base Management System,DBMS),使用SQL Server数据库。
图4 设备、日志管理实现效果图(截图)
由于系统有一定规模,数据实体较多,且关系比较复杂,因此本系统的数据库设计重点难点在于切合各个模块进行分类设计,比如用户权限管理模块就涉及到3个数据实体关系表。数据库设计流程主要分为3个步骤,首先按模块划分数据实体,理清各个模块数据实体关系网,最后设计其E-R图。图5所示是ASP.NET架构下该系统各个功能模块的数据实体关系图。
图5 数据实体关系图(截图)
在实际测试应用中,本系统通过RTP/RTCP协议实现了实时媒体流的实时传输,采用H.264编解码方式对媒体流进行处理,通过集成媒体模块的ActiveX用户控件对实时媒体流展示,同时支持多通道。由于采用ONVIF接口规范,虽然各个厂家实现方式有所不同,经过技术处理,本系统也基本支持ONVIF主流IPC设备。图6所示为ASP.NET架构下的网络监控系统的预览页面,通过B/S结构向用户展示,该页面主要部分在图中已标出。3路同时监控的实时流来自3家不同的IPC生产商。通过测试,系统性能、效果、兼容性都达到了最佳化,并且录像回放功能通过RTSP实现本地与远程媒体流的点播。
图6 多路实时视频图(截图)
该系统是基于ASP.NET架构B/S模式的网络视频监控系统,采用开放式接口标准,实现了Web客户端对IPC设备的控制和视频流的网络传输。同时继承了中大型监控软件的特点和功能,具有平台无关性、易扩展性、互操作性强,配置灵活,兼容性强,网络传输效率高等特点。同时由于大胆地采用所有功能都通过网页展示(这是之前国内所有厂家未曾尝试的),更能体现出系统的整体性。用户只需要一台联网的计算机就可以使用本系统,操作方便,用户感知自然也得到了增强,在各个领域中都能够得到广泛的应用。
[1]徐飞明.基于ONVIF协议的NVR软件平台的设计与开发[D].杭州:浙江大学,2012.
[2] Real Time Streaming Protocol(RTSP)[EB/OL].[2013-06-20].http://tools.ietf.org/pdf/rfc2326.pdf.
[3] SENST T,PATZOLD M P,EVANGELIO R H,et al.On building decentralized wide-area surveillance networks based on ONVIF[C]//Proc.Workshop on Multimedia Systems for Surveillance(MMSS)in Communication with 8th IEEE International Conference on Advanced Video and Signal-Based Surveillance.[S.l.]:IEEE Press,2011:420-423.
[4]张文涛,常红星.基于ASP.NET的B/S架构下的项目管理系统的网络安全模式设计[J].计算机科学,2008,35(2):101-103.
[5] ZHANG Yang,LIJieyou,LIZehua,etal.Real-time flood forecasting system based on B/Smode[C]//Proc.International Conference on Management and Service Science,2009.Wuhan,China:[s.n.],2009:1-4.
[6]张宏林.精通Visual C++串口通信技术与工程实践[M].北京:人民邮电出版社,2008.
[7] ONVIF PTZ Service Specification[S].2012.
[8]范明虎,樊红,伍孝金.ASP.net中基于RBAC的通用权限管理系统[J].计算机工程,2010,36(1):143-145.