基于Web的开放式架构下视频管理系统设计

2017-03-04 07:50王志力李莹
现代电子技术 2017年3期
关键词:视频监控

王志力 李莹

摘 要: 提出一种基于视频管理系统的开放式架构平台的解决方案,提高了视频监控系统的扩展性、兼容性,该系统可以有效地与其他平台、站点进行集成和融合。通过实际的开发测试论证了基于视频管理系统的开放式架构解决方案的合理性,系统采用Web Services开发的视频监控接口,实现了各个平台站点间的互联,使各个单元之间更加容易衔接,对于视频监控系统的集成能力以及项目后期的扩展性和兼容性具有指导和借鉴意义。

关键词: 视频监控; Web Services; VSIP协议; OCX控件

中图分类号: TN948.64?34; TM417 文献标识码: A 文章编号: 1004?373X(2017)03?0015?04

Design of Web?based video management system under open architecture

WANG Zhili, LI Ying

(Jilin Medical University, Jilin 132013, China)

Abstract: An open architecture platform solution based on the video management system is proposed, which can improve the scalability and compatibility of the video monitoring system, and integrate and fuse the system with other platforms and sites effectively. The rationality of the open architecture solution based on video management system was verified with the practical development and testing. The video surveillance interface developed with Web Services is used in the system to connect the sites among each platform, make each unit easy joining, and has the guidance and reference significance for the integration capability of the video monitoring system and project subsequent scalability and compatibility.

Keywords: video surveillance; Web Services; VSIP protocol; OCX component

随着数字化、网路化对于整个监控行业的推动,监控系统进入了更加高速的发展阶段,为整个安防行业的发展提供了更加广阔的发展空间,与此同时,越来越多的领域都使用了视频监控系统,特别是高科技远程视频监控系统[1]。网络视频监控的飞速发展给生活带来安全保障的同时,也出现了它自身的缺陷。因此,有必要研发一种开放的视频监控平台,完成系统之间的跨语言、跨平台对接。

1 视频开放平台的总体设计

1.1 设计思想

基于视频管理系统的开放平台使用户可以简单方便地实现对视频监控区域的实时浏览,云台控制等功能,用户也可以根据该平台给出的相关接口进行二次开发,该平台给出的接口逻辑功能部分已经实现,只需要根据接口的规定传输数据即可。整个系统的工作过程如下:用户可以在浏览器下输入对应的访问地址,按照提示输入用户名、密码和服务器IP,若三者有一项错误,则登录失败,需要重新登录;若登录成功,则可根据服务器返回的句柄进行相关操作。该平台提供的接口逻辑部分已实现,并对外部做出了接口的说明,所以平台的整个实现中并没有包括客户端前端的编写。

1.2 工作原理

在设计的开放式架构中,依托VMS服务器设计了一套Web Services接口,它能够实现平台管理,设备管理,监控业务展现,存储管理等功能,能够实现平台对接,让第三方平台通过调用Web Services接口从服务器获取数据流。在本平台下搭建的Web Services接口的服务对象只包含VMS服務器,并不包含前端设备。在Web Services内部逻辑实现上主要用到了异步通信机制和VSIP协议。

1.2.1 异步通信工作原理

异步通信就是当前线程在执行时,需要外部I/O设备进行硬盘读写,网络通信等,但是外部设备I/O的速度与CPU的速度相差太远,所以没有必要等待I/O操作完成后再执行后续的代码。所以当前线程就将这个I/O操作的请求交给设备驱动去处理,而本身去执行其他的任务。异步通信进行网络操作时,主线程并没有挂起,而是继续执行任务,等到网络操作完成了,给出一个网络操作完成的通知,所以异步通信是一个明显的并行操作过程[2]。异步通信模式无疑比阻塞和多线程的模式效率要高很多。

1.2.2 VSIP协议工作原理

VSIP协议不是替代现行的通信协议,IP安全标准以及压缩算法,而是将实际中使用的标准通过一套规则整合在一起使用,在该协议中涉及的概念有GUID,VSIP应用和VSIP单元。GUID是一个标识符,它以单元为单位,对VSIP网络中的单元和单元的功能进行标示,由于使用了单元的MAC地址作为标记,所以对于每一个标示符都是惟一的。VSIP应用是指通过VSIP协议开发的上层系统应用软件。VSIP单元是指利用VSIP开发的设备单元。VSIP协议实质上就是系统的应用软件通过向设备单元发出一些命令和控制请求消息,在发现设备单元之后接收设备单元响应信息的过程。

1.2.3 OCX控件工作原理

在Web Services的内部实现上封装了很多可用的视频监控客户端需要的接口信息,通过该接口的实现信息可以开发OCX控件,用于在客户端获取视频监控信号,然后在Web页面上嵌入相应的OCX控件的代码,当用户第一次用网页登录时,提示下载安装OCX控件,下载安装完成后,用户可以通过用户名、密码登陆系统,查看视频的实时浏览、实时控制等相关功能。

1.3 开发框架的选择

目前企业开发Web Services的主流框架有两种,[.NET]框架和J2EE框架[3]。针对多层的分布式应用,两种框架都能够在Web Services的设计、集成以及安全可靠性能方面提供很多的指导和规范。

由于本文主要的任务是开发一种供视频监控系统和其他应用程序或者子系统相连接的Web Services接口,所以主要看两者对Web Services的支持力度[4]。从两者对Web Services的支持力度出发,主要从四个方面来比较,即前文中提到的服务实现、服务调用和执行、服务描述、服务发布、发现和绑定。具体的比较信息见表1。

1.4 平台模块组成

在整个Web Services接口设计中,复杂部分逻辑主要在内部实现,外部的调用者不需要知道内部实现的具体逻辑即可调用[5]。在Web Services的设计实现中,主要包含的设计部分如图1所示。

1.4.1 异步通信模块设计

使用完成端口的机制实现异步通信,完成端口的设计当中主要包括创建Socket套接字、创建绑定完成端口,监控完成端口,接收数据,发送数据,关闭完成端口。每次通信过程实现完成端口的异步通信模式都要通过这几步来完成。

1.4.2 VSIP协议模块设计

该模块主要利用VSIP协议对接收和发出的数据进行封装、解析、加密和解密。通过解密的数据再由VSIP协议解析后发送给业务逻辑层,逻辑层将传入的数据经过VSIP进行封装,再经过加密之后交给通信层发送。

1.4.3 业务逻辑模块设计

逻辑业务模块主要包含提供给各个子模块调用的系统接口,调用这些接口可以很好地实现实时浏览、云台控制、镜头ID获取,用户管理、报警模块、参数配置、前端设备参数等。

2 視频开放平台部分功能的具体实现

2.1 协议通信层的具体实现

2.1.1 协议模块的消息定义

在协议通信模块中主要通过完成端口的异步通信模式实现通信[6]。先通过VSIP协议将数据进行数据封装、加密、解密以及数据解析等操作,然后通过异步通信的方式将数据包发送出去。

2.1.2 通信模块的结构体定义

选取I/O完成端口的通信方式。实现完成端口的步骤主要包含开始连接,开启接收线程,发送数据包,接收数据包,关闭完成端口,在.NET环境下完成端口的具体实现步骤如下:

(1) 首先,创建SocketAsyncEventArgs的类对象,并通过缓冲管理中心给该对象池中的对象分配缓冲大小。

(2) 创建服务器套接字,监听并接收基于Socket?AsyncEventArgs类对象的客户端连接。

(3) 如果有来访连接,接收对象取得控制权之后就开始接收数据。

2.2 多线程的具体实现

在本开放平台中,为了保证各个模块能够很好的配合工作,使用了多线程机制以保证程序的高效性。在本开放式平台中,包含以下线程:心跳连接,消息控制,视频码流,视频解码线程,视频显示,音频码流,音频解码,音频播放,录像下载以及消息通知。各种线程都是以消息控制线程为中心,具体线程关系图如图2所示。

(1) 心跳连接。为了保证程序与服务器之间的稳定连接,需在约定的时间内由程序向服务器发送一个判断套接字连接是否正常的消息包,即心跳包[7]。服务器通过在规定的时间内是否收到心跳包来判断连接状态。通过心跳连接可以确保通信连接的可靠性和有效性。

(2) 线程控制。在程序开启之后,控制线程就立即启动。控制线程开启以后,客户可通过调用登录接口创建具体的Socket连接,连接成功之后,就可以监听视频监控服务器返回的消息。

(3) 音视频码流。在整个视频监控系统中,最重要的是视频监控画面的展示,可能还会伴随声音的输出。视频监控画面的实时展示涉及到视频流的获取,所以在视频监控系统中,需要为视频码流的获取单独开启一个线程,音频也同样如此。

(4) 消息通知。视频监控系统中,在很多情况下有很多用户登录服务器,为了保持用户数据能够同步而不发生混淆,单独开启一个消息通知线程。通过服务器及时推送某些被更改信息的通知,根据通知消息的类型做出不同的操作。

(5) 录像下载。有时用户需要看以前的录像内容,而这些内容被保存在磁盘中,所以用户会根据需要下载指定时间段的录像内容,当用户调用录像下载函数时,则会马上开启录像下载线程,线程开启之后,视频监控服务器会给用户发送录像文件码流,并根据用户设置的保存路径保存录像文件。

2.3 业务逻辑模块的具体实现

2.3.1 服务器级别模块设计

由于在本设计中,开发的Web Services主要是为外部调用,而在其内部实现方式上主要是和VMS服务器[7]交互,因此在业务逻辑部分有很多的模块设计都是与服务器相关的,主要包含服务器版本信息获取、登陆和注销服务器、服务器时间获取、得到服务器句柄和IP,获取服务器的使用模式等。与服务器相关的接口框架设计如图3所示。

2.3.2 用户管理及权限模块设计

用户管理模块主要是为了对登录的用户进行管理和权限设置,主要包括用户管理和用户权限配置两个部分。用户管理模块的主要关系如图4所示。

2.3.3 云台控制模块设计

云台控制模块是针对具有云台的IP摄像机。云台用来连接摄像机和支架,内置解码器,云台除了具有在水平和垂直方向运动的功能外,它还遵循云台控制的标准协议,通过外部信号的控制实现指定速度的水平和垂直运动,光圈和焦距调节等功能[8]。在本平台中,云台控制模块主要包含云台控制台的运动,预置位信息的设置、辅助项信息的设置以及云台的绝对运动,如图5所示。

2.3.4 报警模块设计

报警模块主要负责监听报警设备产生的报警信息,通知视频监控系统,它是视频监控系统的重要组成部分。报警模块主要包含获取报警单元、设置和获取报警单元的信息、设置开关量报警单元、添加报警计划、查询报警计划等内容。报警模块的主要组成部分如图6所示。

3 开放平台的总体测试

3.1 测试内容

3.1.1 实时浏览功能测试

本模块的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 双击左侧镜头列表中的一个在线镜头,在播放通道内观察是否有视频显示。

预期结果:双击镜头列表中的一个在线镜头后,在播放通道内会显示正在监控的视频画面。若镜头是离线的,则在播放通道内无结果显示。经测试,发现实际结果与预期结果一致。

3.1.2 云台控制功能测试

云台控制模块的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 双击左侧镜头列表中具有云台标志的在线镜头,在播放通道内观察是否有视频显示。

(6) 在左侧页面分别点击上、下、左、右四个按钮,测试云台在这四个方向上的运动并观测播放通道内视频监控场景的变化。

预期结果:选中具有云台标志的镜头后,点击上、下、左、右四个按钮,播放通道里面的视频画面会向着对应的方向运动,对于没有云台的镜头,点击云台控制按钮,视频监控场景不会发生变化。经过测试,发现实际的结果与预期结果相一致。

3.1.3 多窗口播放功能测试

多窗口播放模塊的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 分别点击监控界面下方的1,4,9按钮。

(6) 选择没有播放视频的通道,双击监控界面左侧列表中的镜头,观测监控画面的变化。

预期结果:点击1,4,9按钮后,监控界面的播放通道会跟着变化,选择其中一个播放通道,再点击列表的一个镜头后,该播放通道就会显示对应镜头的监控场景。经过测试,发现实际的结果与预期结果相一致。

3.1.4 录像检索功能测试

录像检索模块的测试步骤如下:

(1) 通过IE浏览器访问视频监控平台的地址。

(2) 下载OCX播放控件并安装。

(3) 登陆视频监控平台。

(4) 选择播放主界面中的一个播放通道。

(5) 选择一段时间内的录像资料。

(6) 在选择好的录像资料内定位到时间点,查看录像资料。

预期结果:选取一个时间段后,通过选取该时间段内的一个时间点,可以很快定位到该时间点的画面。经过测试,发现实际的结果与预期结果相一致。

3.2 测试结果及分析

经过一段时间的系统测试以及开放平台的稳定运行,认为该开放平台的设计达到了设计目标,可以满足用户实际的基本需求。在测试的过程中,由于使用的测试客户机配置比较陈旧,因此在开启多路窗口播放监控视频时会出现画面卡顿现象,测试在任务管理器中也可以看到CPU的占用率比较高,但是当换一个配置稍高的客户机时,画面基本能够保持流畅,若九路视频同时播放还是有一定压力的,占用的压力相对来说也会比较高,但是总体来说,该开放平台的接口能够稳定的工作,可靠性较高。

4 结 论

本文对基于视频管理系统的开放式架构进行了分析设计。首先对视频监控中的常用架构做了系统的阐述,并比较各自的优缺点,以Web Services结构作为开发的技术架构,然后选择.NET框架作为系统框架对系统进行总体设计和具体实现。最后利用IE客户端对已经开发出的Web Services接口进行调用和测试,测试结果显示,开放平台的接口能够稳定有效的运行,能够很好地支持客户端实现视频监测的功能。

参考文献

[1] 杨建全,梁华,王成友.视频监控技术的发展与现状[J].现代电子技术,2006,29(21):84?88.

[2] 刘佩贤,韩海花,杨志强,等.Web Services体系结构和应用研究[J].中国科技信息,2010(18):44?45.

[3] 袁宝良,张忠能,严学道.Microsoft.NET和J2EE架构开发技术分析[J].计算机工程,2004(z1):91?93.

[4] 罗玲,白晓颖.Web服务技术分析[J].计算机科学,2004(4):19?23.

[5] 容芷君,应保胜,但斌斌.基于Web Services的设备管理系统的实现[J].武汉科技大学(自然科学版),2008,31(1):108?109.

[6] 刘磊,李连彬.Windows系统网络通信层性能及方法研究[J].计算机应用,2009,29(z2):4?7.

[7] 胡东红,杜光海,贺伟,等.基于完成端口模型的应用程序实现[J].物联网技术,2014,4(3):60?62.

[8] 张党进,赵文静.Web Services中权限管理的分析与实现[J].现代电子技术,2006,29(5):62?63.

猜你喜欢
视频监控
基于特定类型物体检测的药店视频监管系统
地铁高清视频存储技术的应用分析
基于视频图像采集移动目标检测系统的设计
数字化监控系统的企业应用
基于嵌入式Linux的视频监控系统的设计与实现
基于HTML5的视频监控微课设计浅析
智能视频检索技术在校园安防建设中的发展应用