基于中间件的远程视频监控系统

2013-07-03 06:06周江川
兵器装备工程学报 2013年4期
关键词:中间件应用程序客户端

陶 平,周江川

(1.重庆第二中级人民法院 数据处理中心,重庆 404020;2.四川兵工学报 编辑部,重庆 400050)

远程视频监控系统在军事、公安、银行、工业生产、交通等领域,特别对于某些危险工况或者人们难于涉足的场所有重要的应用,通过现代化的视频监控,人们可以洞察秋毫,在社会生活的各个方面它已经成为监控领域最重要的有效监测手段。该系统集计算机、通信、控制、网络及多媒体等多种现代技术于一体,借助该系统可直接、实时地知晓各现场情况,监控中心可根据当前情况直接对事态做出反应和处理。但是目前视频监控主要采用基于C/S 模式下的单播技术,针对固定有限的网络条件,存在适应性不强、管理和维护升级成本高、部署困难、跨平台性差与容量扩展时负载重等问题;此外,由于视频应用程序编程不规范、软件可重用性差等问题导致软件设计的复杂性,因此研究基于中间件的远程视频监控系统有重要的工程现实意义[1-4]。基于Java 多媒体技术开发框架、流媒体技术与CORBA 规范,本文以软件复用为基础,设计了一个远程视频监控系统,并借助MVC 设计模式实现了图形用户界面的实时更新[5-7]。

1 系统设计采用的关键技术

系统设计基于C/S 模式、中间件与流媒体等技术,以下对其作粗略回顾。

1)Java 媒体框架JMF

JVM(Java Media Framework)上的Java 解释器用于解释Java 编译器编译后的程序,任何一台机器只要配备了Java 解释器,就可以运行这个程序,JVM 保证了数据类型的一致性,确保了Java 的平台无关性。其中,JMF API 集成了对音频、视频的捕捉、处理和播放功能,应用JMF 开发包可简化和加快Java 多媒体应用程序的开发。支持媒体流在意外接收媒体流时就产生音视频,无需在本地存储。目前,JMF 支持的多媒体数据的编码格式类包括FormatChangeEvent(格式改变事件)类、AudioFormat(音频格式)类与VideoFormat(视频格式),支持的视频格式类有JPEG、RGB、YUV、H.263、H.261等;音频格式类有G.711、G.723 、GSM 、MP3、WAV、AU、MIDI 等。利用JMF 可实现时基媒体的传输与接收以及视频数据的捕捉,借助提供的各种接口可方便地满足多媒体编程的需要。JMF 提供了对原始视频数据的压缩标准H.263,针对原始视频数据的压缩本文可直接调用其封装接口实现;多媒体数据流在网络中的实时传输借助RTP 包提供的RTPManager(RTP 管理器)等类给予实现。

2)流媒体技术

远程视频监控系统是在Internet/Intranet 环境下运行的,所谓“流媒体”是指使用流式传输技术的连续媒体。流式传输有实时和顺序流式传输(Real-time Streaming,Progressive Streaming)两种方式。前者采用RTSP 实时协议或者流式传输媒体服务器,实现视频的实时广播,显然该方式属实时流式传输。后者采用HTTP 服务器,则通过顺序流发送。

对于流式文件的执行,当然也可以先完全下载到硬盘后在播放。其中实时传输协议与实时传输控制协议(Real-time Transport Protocol,RTP;RTP Control Protocol,RTCP)是在网络环境下专门用于传输多媒体数据流的。前者是基于Internet 而针对多媒体数据流的一种应用层传输协议,既可用于单播通信也可用于组播通信,其体系结构如图1 所示。

图1 TP 体系结构

远程视频监控系统采用RTP/RTCP 的优势在于它的适用性,既可用于单播通信也可用于组播通信,传输效率高,协议简单,数据报文和控制报文各使用不同的端口,协议灵活;针对会话用户信息的交互,可以制定会话控制的策略;RTP协议的自适应性,RTCP 控制报文发送周期的可调节性,使媒体传输质量和数据传输速率可在较大范围内进行调节。

3)CORBA 技术

CORBA 是一种异构平台下语言无关的对象互操作模型,其核心是一套标准的语言、接口和协议,可自动进行对象注册定位,远程方法激活,多路径请求、分流和结点错误处理机制等网络规划任务。其主要特点有:提供软件总线机制,可实现应用程序在软件总线上的即插即用;提供中间件服务,通过网络互相通信;使用代理扩展了客户/服务器的计算模型,客户和服务器易于维护、修改;使用IDL 定义接口,CORBA 对象可以用任何一种CORBA 开发商所支持的语言;面向对象体系,保留对象方法的对外接口定义,软件重用率高。在CORBA 系统中,正是由于中间件的引入,可以将所有应用都看成是对象及相关操作的集合,因此在网络中应用对象的获取与对象的位置以及对象所处的设备环境无关。CORBA 是一种3 层C/S 模式,两者之间的通信通过中间代理方式进行,只关心功能上的实现。事实上,CORBA 只是一种中间件(Middleware)技术,其结构如图2 所示。

图2 CORBA 体系结构

在图2 中,ORB 对所有对象都是等价的,与是否是本地对象或者是远程对象无关,因此可保证在异构环境中对象的可互操作性与可移植性。总之在分布环境中ORB 负责对象透明地收发请求和响应。ORB 功能包括:对象的定位;编组和解组;屏蔽底层网络协议;提供接口库和其他API,是CORBA 实现动态调用的关键部分。其调用关系如图3 所示。CORBA 对象服务(CORBA Object Services)的基本对象集合独立于应用领域。应用程序对象为应用提供服务,相关联的接口有应用与领域接口((Application Interfaces;Domain Interfaces)。采用CORBA 技术时,需要使用接口定义语言(IDL)编写相关的程序接口,IDL 文件声明了可被远程调用的方法,IDL 文件是整个CORBA 过程的关键,使用IDL 定义接口的客户机程序屏蔽了实现的细节。

CORBA 定义了包括命名服务(CORBA Naming),事件服务,通知服务(Notification Service)等在内的大量可重用服务,安全服务增加了CORBA 系统的安全性,并发控制服务允许多个客户同时与资源进行相互作用,OTS 可以使CORBA对象执行事务。

图3 ORB 的调用

2 系统设计

2.1 系统支撑架构

系统支撑框架如图4 所示,基于WindowsXP 操作系统,由Java 编程语言实现。在JMF 实现Java 编程语言与不同种类摄像头接口兼容的同时,提供了实时传输的操作机制。CORBA 屏蔽了平台差异性,可动态地适应分布式网络视频监控。

图4 系统支撑框架

2.2 软件结构设计

中间件的设计是整个软件结构的基础。该中间件属可复用软件范畴,其作用在于为应用软件提供运行与开发环境,软件结构示意图如图5 所示。软件主要由数据采集端VideoCapture、媒体服务器端VideoServer、客户端VideoViewer等3 个应用程序组成。VideoCapture 职责在于完成多媒体信息的采集、压缩、传输,显示用户信息,支持客户端的访问;监控数据的历史查询的实现由VideoServer 负责,此外Video-Server 还用于客户端向用户提供实时预览、记录点播、历史记录的查询和删除等远程控制服务。借助Java IDL 定义的3个应用程序接口对象可实现应用之间的通信,CORBA 功能提供了基于标准的互操作性。

图5 中间件结构示意图

2.3 系统的JMF 框架

图6 描述了实现监控功能的JMF 框架,从上至下分别为数据采集VideoCapture、客户端实现本地机播放的Video-Viewer 与媒体服务器端到客户端的数据传输VideoController的工作框架。借助JMF 可实现视频数据采集、处理、传输、存储和播放等功能。

2.4 CORBA 接口对象映射

系统设计采用CORBA 为应用程序提供服务,使之能在屏蔽平台差异的情况下通过网络实现互相通信,图7 所示为采用CORBA 接口对象对视频数据采集、压缩、传输、播放、存储等功能的映射模型。

图6 JMF 框架

图7 接口对象映射模型

3 监控系统实现

1)数据采集端实现

数据采集端由应用程序VideoCapture 和VideoServer 构成,负责完成客户端连接请求的监听服务、视频图像的捕获与传输服务以及视频监控数据存储和查询服务的实现。

2)媒体服务器端实现

Registration Object 和MediaStore object 接口对象设置在媒体服务器端,分别负责存储从采集端发送过来的视频数据到后台数据库以及将其传输至客户端,并显示相关的数据信息(如采集端与客户端信息,后台的视频文件信息等)。

3)客户端

客户端应用程序有3 个应用对象,分别是VideoController 有VideoCallback、ControllerCallback 和MediaArchive-Callback。其中:VideoCallback 功能在于通知客户端有新的视频流到达指定位置和存储新的视频文件到后台数据库,为视频数据采集端的应用程序VideoCapture 提供服务;对新的视频文件进行存储和删除由MediaArchiveCallback 负责实现。3 个应用对象可根据不同的触发事件分别实现各自的功能。在监控系统实现中,为解决台数据库内容发生变化时,将MVC(Model-View-Controller)引入设计模式可动态地更新媒体媒体服务器端和客户端的图形用户界面。其中,模型(Model)用于封装底层的数据源和对数据源的操作,借助控制器可保持视图与模型的一致性;控制器(Controller)用于处理接收视频数据和从后台数据库中删除数据,因此当存储的视频数据有所变化时,可自动更新其图形用户界面;视图(View)从模型获取显示信息,可以多种形式或视图展示给用户。

3 结束语

上述讨论了CORBA 规范、流媒体与Java 多媒体开发框架,针对远程视频监控对实时性要求高,基于软件复用技术,设计了一个远程视频监控系统,借助MVC 设计模式实现了媒体服务器端和客户端图形用户界面的实时更新。测试表明在10/100M 局域网上可取得较好的效果。

[1]Lopes R J,Lindsay A T,David H. The utility of MPEG-7 systems in audio-visual applications with multiple streams[J]. IEEE Transactions on Circuits and Systems for Video Technology,2003,13(1):16-25.

[2]褚晶辉,邱润东,宋垣,等.视频监控视频流解码播放的速率控制与优化[J]. 计算机工程与应用,2012(11):18.

[3]李虎,林中. 远程网络视频监控系统的设计与实现[J].数据通信,2004(6):51-53.

[4]李思,李丽. 基于RTP/ RTCP 的网络视频监控系统[J].沿海企业与科技,2008(12):16-18.

[5]陈晓江,房鼎益,刘炜,等.基于CORBA 的媒体流构件模型[J].西北大学学报: 自然科学版,2005,35(2):151-154.

[6]汪芸,谢俊清,沈卓炜,等.实时CORBA 技术综述[J].东南大学学报:自然科学版,2002,32(3):311-316.

[7]何宜军.MVC 设计模式在Java 中的应用[J].邵阳学院学报:自然科学版,2006,3(2):64-66.

猜你喜欢
中间件应用程序客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
删除Win10中自带的应用程序
如何看待传统媒体新闻客户端的“断舍离”?
谷歌禁止加密货币应用程序
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
新华社推出新版客户端 打造移动互联新闻旗舰
云计算环境下中间件的负载均衡机制研究
三星电子将开设应用程序下载商店