基于corba_的网络视频监控系统的设计与实现_第1页
基于corba_的网络视频监控系统的设计与实现_第2页
基于corba_的网络视频监控系统的设计与实现_第3页
基于corba_的网络视频监控系统的设计与实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2卷第2期 2003年6月 江 南 大 学 学 报(自 然 科 学 版) Journal of Southern Yangtze University( Natural Science Edition) Vol. 2 No. 2 Jun. 2003 文章编号:1671 - 7147(2003)02 - 0124 - 04 收稿日期:2002 - 09 - 16 ; 修订日期:2002 - 11 - 11. 作者简介:高 科(1978 - ) ,女,安徽萧县人,计算机应用硕士研究生. 基于CORBA的网络视频监控系统的设计与实现 高 科, 须文波 (江南大学 信息工程学院,江苏 无锡214036) 摘 要:大型网络系统普遍存在着异构平台繁多,设备过于分散等问题,使得整个系统异常复杂难 以管理.为解决这一问题,结合当前分布对象的主流技术CORBA ,提出了网络视频监控系统Wit2 Net2Video这一解决方案.在阐述该系统的设计思想的基础上,给出软/硬件体系结构及模型实现. 关键词:公共对象请求代理体系结构;对象;视频监控系统 中图分类号:TP 393. 07文献标识码: A The Design and Implementation of Network Video Surveillance System Based on CORBA GAO Ke , XU Wen2bo (School of Information Technology , Southern Yangtze University ,Wuxi 214036 , China) Abstract :Large2scale network systems are often too complex to monitor and control due to coexistence of heterogeneous platforms and wide distribution of system devices. To address such problem , the pa2 per proposes a new solution , WitNet2Video. It is a network video surveillance system that incorporates CORBA , the mainstream technology for managing objects in a distributed system. In this paper we e2 laborate the design of WitNet2Video and demonstrate the software/ hardware architecture and the im2 plementation of the model. Key words : CORBA ; object ; video surveillance system 网络视频监控系统是传统模拟监控与计算机 技术、 图像视频压缩技术以及视频数据实时传输技 术的现代有机结合.它可为用户提供远程监视、 控 制某一或某些场所的服务,并具备视频存储和点 播、 运动检测与报警等功能.由于在异构的分布式 环境下实现信息和资源的共享十分困难,为解决分 布式处理环境中硬件和软件系统的互联,作者以目 前主流分布式应用系统的通用集成框架 COR2 BA作为软件体系结构的核心,设计并实现了分布 式视频监控系统WitNet2Video. 1 CORBA概述 CORBA(Common Object Request Broker Archi2 tecture ,公共对象请求代理体系结构)是由OMG组 织提出的一个完整的分布对象处理与集成的体系 构架1.由于CORBA技术在开放性、 先进性、 完整 性、 连续性和成熟性方面的突出表现,已成为目前 主流分布对象技术和建立应用框架、 软构件的标 准,在开发大型分布式应用系统中表现出强大的生 命力. CORBA把客户与服务器抽象为对象,所有功 能都封装在对象内部,只向外提供简单的接口.首 先对象间的通信由CORBA代理,通过软总线机制 对象请求代理(ORB)实现,对象不必关心通信对方 的实现细节.其次,CORBA提出了接口定义语言 (IDL)这一与平台无关的语言,提供编程语言无关 性的支持,实现应用接口与代码的分离.此外, CORBA还定义了一组与应用领域无关的基础对象 服务,以支持应用对象的实现和使用,包括名字服 务、 生命周期服务、 永久对象服务、 事件服务等2. 因此,CORBA以其平台独立性和语言独立性特点, 在异构、 分布式环境下占据优势,可使应用程序开 发者更多地关心其自身的应用领域开发,而较少地 考虑低级的分布式系统程序设计,适合大规模分布 式系统的实现. 2 网络视频监控系统 2. 1 硬件体系结构 目前WitNet2Video系统主要针对局域网环境 进行开发,它由多媒体终端、 网络传输、 监控设备3 部分组成.监控设备包括摄像头、 云台和矩阵控制 器.多媒体终端包括前端设备和后端设备.前端设 备是指对模拟视频进行压缩与发送的设备,如视频 服务器(NetCaster) ;后端设备是指对接收的视频流 进行存储以及显示的设备,如网络视频存储/点播 设备(NetVCR/ VOD) ,网络视频播放设备NetPlay2 er和NetTV ,网络视频的中继设备(NetRelayer) . WitNet2Video的硬件体系结构如图1所示. 图1 硬件体系结构 Fig. 1 The hardware architecture 2. 2 软件体系结构 CORBA是一个体系结构的标准,它可以有许 多实现方法及语言.本系统采用的是OmniORB ,它 是CORBA的一个C + +实现,具有相当高的可靠 性和高效性.由剑桥AT 而使用低层 网络协议(UDP ,RTP等)发送视频数据,直接由程 序员处理延时、 延迟抖动、 丢包、 数据安全、 数据纠 错等网络传输问题. 2. 2. 2 对象树结构 系统将若干前端设备和后端 设备抽象为对象,由OmniNames负责对象接口的 发布以及管理使用. OmniNames驻留于主设备中, 是整个系统的核心部分.事实上,只有系统开发维 护人员会接触到对象的概念,它对普通用户是透明 的.对象树结构大致如下: 1) 验证对象(NETAUTH. OBJ ECT) NE2 TAUTH. OBJ ECT主要负责验证用户登录,管理用 户及用户权限信息,并为合法用户生成会话标识 (session) ,维护所有在线用户的session列表,建立 用户进程到系统资源的映射结构.该对象在系统中 是唯一的,通常驻留于主设备中.目前采用简单的 用户名2口令方式作为身份验证方式,以后可根据具 体的安全需求对NETAUTH进行适当扩充,以实 现对其他验证方式的支持. 2) 信号源对象(AVSOURCE. DIR) AV2 SOURCE.DIR是存放系统中信号源对象的目录,下 属每个对象对应于一个NetCaster设备中的MPEG压 缩卡,命名规则为AVSOURCE -(MACHINE. ID)- (CARD. ID) . OBJECT.其中MACHINE. ID是该信 号源所驻留的NetCaster设备的设备号,CARD. ID 是此信号源在该设备内对应的视频压缩卡的卡号. AVSOURCE对象提供视频的压缩、 传输与控制,包 括设置编码格式及数据速率,控制视频的亮度、 色度. 3) 矩阵对象(MATRIX.DIR) MATRIX.DIR 是存放系统中矩阵对象的目录,目录下每个对象对 应一个矩阵,命名规则为MATRIX- (DEV. ID) . OB2 J ECT.其中DEV. ID是矩阵号,唯一标识一个矩阵. 矩阵对象提供的服务主要包括:矩阵输入(摄像头) 与输出(监视器)之间的切换;云台的控制(云台可 以做上下左右的运动,上面放置摄像头 ) ; 云台上摄 521第2期高 科等:基于CORBA的网络视频监控系统的设计与实现 像头焦距的调整等功能.矩阵对象通过该矩阵连接 的设备(通常是NetCaster)实现. 4) 存储对象(NETVCR. DIR) NETVCR. DIR是存放系统中VCR对象的目录,目录下每个 对象对应于一个录像源,命名规则为VCR- (MA 2 CHINE. ID)-(SOURCE. ID) . OBJ ECT.其中:MA2 CHINE. ID是 该 对 象 所 驻 留 设 备 的 设 备 号; SOURCE. ID是各个录像源的标识号.该对象主要 提供状态的查询功能,包括设置录像视频源的设备 号和信号源号,设置录像策略,设置存储位置,获取 录像状态等. 5) 点播对象(NETVOD. DIR) NETVOD. DIR是存放系统中VOD对象的目录.下属每个对 象对应于一个录像源的视频点播,命名规则为 VOD-(MACHINE. ID)-(SOURCE. ID) . OBJ ECT. 其中:MACHINE. ID是该对象所驻留设备的设备 号;SOURCE. ID是录像源号. VOD对象主要提供 已录像的视频数据的回放,包括快进、 快退、 精确定 位等功能,还可提供事件列表,便于用户检索并播 放指定事件.由此可见,NETVOD依赖于NETVCR 的存在,NETVOD与NETVCR对象驻留于同一设 备(NetVCR/ VOD)中. 6) 中继对象(NETPLAYER. DIR) NET2 PLAYER.DIR是存放系统中回放对象的目录.下 属每个对象对应于一个回放对象,命名规则为 PLAYER-(MACHINE. ID)-(CARD. ID) . OBJ ECT. 其中:MACHINE. ID是对应于NetPlayer设备的设 备号;CARD. ID是回放卡标识号.该对象从物理意 义上对应回放设备中的回放卡,提供的功能不局限 于回放卡功能,还包括网络接收等控制功能. 7) 回放对象(NETRELAYER.DIR) NETRE2 LAYER.DIR是存放系统中继对象的目录.下属每个 对象对应于一个中继对象,命名规则为RELAYER- (MACHINE. ID)-(SOURCE. ID) . OBJECT.其中MA2 CHINE. ID对 应 于NetRelayer设 备 的 设 备 号. SOURCE. ID是唯一标识中继对象的数字标识,由 系统自动生成.由于SOURCE. ID在物理意义上没 有所对应的实际对象,因此其数量取决于该设备需 要中继的视频流数量. 8) 日志对象(NETLOG. OBJ ECT) 主要负责 系统的日志记录,便于前期开发调试和后期系统维 护.一些重要操作(如用户登录)及运行中的出错信 息都记录到指定的日志文件中,以备管理员查考. 它对系统正常运行和安全起到一定的保障作用. 9) 设备对象(DEVICES. DIR) DEVICES. DIR是存放系统中设备对象的目录.目录下每个对 象对应于一个设备对象,命名规则为DEVICE- (MACHINE. ID) . OBJ ECT.其中MACHINE. ID是 该对象所驻留设备的设备号.该对象主要记录与设 备相关的属性及状态,例如IP地址,工作状态,内 存,CPU利用率等等信息;另外还提供了一个 COMMAND的特殊接口,可执行某些较特殊的命令. 2. 2. 3 对象调用 下面以用户选择一个视频源进 行监控为例(见图2) ,简单说明这些对象之间的调 用关系.首先用户必须通过NETAUTH登录到 NetTV(客户端程序,用户与系统交互的界面 ,非对 象 ) , 由NETLOG负责记录这一事件;然后从AV2 SOURCE得到信号源列表,用户根据自己的需求选 择某个信号源,AVSOURCE则调用MATRIX将监 控信号切换到对应的矩阵输入端口号. 图2 对象调用示例 Fig. 2 A sample of calling objects 在CORBA体系中,OmniNames系统相当于一 个布告系统,但CORBA本身并不保证该布告的接 口一定存在.若某设备已被关机,该布告仍然会存 在,只有在调用接口时会出错.为保持OmniNames 中注册对象与实际存在对象之间同步,需提供一个 验证对象是否激活的函数,用于轮询各个提供接口 的线程或进程是否还存活.如果调用该对象的接口 出错达到指定阈值,则说明该对象已无法使用,应 删除该name ,以保证OmniNames中的设备与实际 存在的资源一致. 2. 2. 4 系统编程实现原则 软件体系结构的实现 是整个系统开发过程中关键的一步.对于庞大而复 杂的分布式系统,如果没有良好的软件体系结构, 就无法得到理想的执行效率.虽然CORBA已规定 了部件结构体系的标准,也定义了相应的服务和公 共设施,但是对于具体的软件体系而言,并没有规 定体系结构的实现.作者在开发本系统时总结了以 下几个原则: 1) 合理分布对象 就分布对象系统而言,对象 的分布粒度往往取决于应用领域、 问题规模、 对象 并行度、 对象间耦合度、 网络拓扑、 计算资源等因 621 江 南 大 学 学 报(自 然 科 学 版) 第2卷 素.较粗的分布粒度能降低通信开销,但分布程度 的降低使系统不能充分利用网络能力,导致性能的 下降;较细的分布粒度能够充分利用网络能力,但 对象间的交互会增加通信开销,因此需要在两者之 间作平衡.而模型中的对象是分布在本地还是远 程,同样需要在众多因素中加以综合考虑.如:为提 高性能,负载能力强的结点可以部署更多的对象; 耦合度较高的对象,即彼此联系较紧密、 交互较频 繁的对象应分布在相距较近的结点上.总之, 个 对象分布合理、 负载均衡的系统能大大提高系统效 率,增强系统稳定性. 2) 尽量减少动态方法调用(DII) 动态调用接 口支持客户端的动态请求调用,比之静态调用更加 灵活、 易于扩展.但由于在动态调用中与接口库之 间的调用是一个远程调用,它以牺牲系统资源为代 价,所以动态调用比静态调用的开销大,效率低.其 次,由于编译时无需检查接口定义,对象接口的细 小改动也易导致错误的远程调用,同时难以跟踪查 错.由此可见,动态调用只是特殊情况下对静态调 用的补充.对系统中不同应用要灵活处理:如果使 用的对象接口基本不变,那么可使用静态调用,以 提高效率;而在编译时无法知道对象接口的情况下 方采用动态调用,以一定代价实现远程调用客户方 编程的灵活性3. 3) 合理利用多线程技术 在程序中实现多个 线程,意味着一个程序的多行语句同时执行,即以 抢占资源方式对多个线程实现轮流执行.服务器可 以同时向多个用户提供服务,从而提高响应速度. 用户不必担心会因其他客户程序的请求所要求的 时间太长而使自身请求遭到拒绝;同时也能更好地 利用系统资源,改进系统吞吐量.但多线程应用程 序实质上比单线程应用程序复杂,且其开发和调试 都相当困难;同时值得注意的是,能够被多个线程 同时访问的每个数据结构都必须小心地通过应用 互斥原语对其进行保护.如果多个线程对未经保护 的共享数据进行并发访问,那么就容易导致数据结 构陷入不一致的状态或者锁死. 4) 防止内存泄漏 为保证参数传递的高效性, 应尽可能避免对参数值的拷贝,使用引用传递,以 替代数值传递.而且无论是远程对象还是配置在一 起的对象,都应使用相同的内存管理代码,以实现 位置的透明性.显然,保证参数传递的高效性和透 明性的代价是引入了异常复杂的内存管理规则,容 易出现因一时的疏忽造成内存泄漏.防止内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论