《网络视频实时监控系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
密级:保密期限:硕士研究生学位论文题目:圆终塑麴塞吐堕控丕统数逡让皇塞理.学姓专导学号:Q22Q兰2名:渣晶晶业:让篡扭型堂皇垫苤师:塞茂强院:熬鲑堂陵2010年1月 ◆一●、独创性(或创新性)声明本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名:途&照日期:翌fQ:3:翌关于论文使用授权的说明本人完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。本人签名:导师签名:漆蕊‰日期:尘【Q:三:坦日期:型里二!:显 ,簟A一■≤ 网络视频实时监控系统的设计与实现摘要随着计算机、网络、通信等多种技术的迅速发展,网络视频监控系统得到越来越广泛的应用,目前已渗透到教育、政府、娱乐场所、医院、酒店、运动场馆、城市治安等多种领域。但现有的网络视频监控系统存在对实时数据上传的管理不够精确与智能,对摄像头的自动化管理具有对设备的局限性,位于私有网络摄像头需要依靠出口路由器的配置才能在系统中使用等缺点。为满足日益广泛的用户需求,有必要开发一种新的网络实时监控系统。本文分析了网络视频监控系统的发展历程与现状,介绍了网络视频监控系统所使用的主要技术~流媒体技术与相关协议,提出了一种基于代理的网络视频实时监控系统结构,并着重介绍了该系统中目录服务器,代理服务器的设计与实现。本文的主要成果如下:i.解决了服务器对位于私有网络中摄像头的管理问题,使得服务器可穿越私有网络边界对其中的摄像头进行管理,无需再依赖出口路由器的配置。2.解决了对摄像头上传数据的自动化管理与配置问题,使得摄像头可根据用户观看情况自动开始或停止上传数据,并可根据配置文件更改上传内容与传输模式。3.解决了对系统中不同摄像头的适配与信息的自动管理问题,使得系统可兼容不同设备,并为所有摄像头提供一种自动注册机制。关键词:实时监控视频监控流媒体摄像头管理 一口,肛《I ●“,.DESIGNANDIⅣ田LEN匝NTATIONOFANETWroRKVDEOREALT】[Ⅳ匝MoNITORINGSYSTEMABSTRACTWiththedevelopmentofcomputer,network,communicationandothertechniques,networkvideomonitoringsystemiswidelyusedineducation,government,ammementplace,hospital,110tel,gymnasium,andpublicsecurity.Buttheexistednetworkvideomonitoringsystemhassomedisadvantagessuchasthemanagementofcal_Il_eras’uploaddataisnotaccurateandintelligentenough,theautomanagementofcamerasislimitedbyequipment,andtheUSeofcamerasinprivatenetworksdependsontheconfigurationoftheegressrouter.TosatisfythelargerequirementofUSerS,itisnecessarytodevelopanewnetworkreal—timemonitoringsystem.Inthisarticle,thedevelopmentandpresentsituationofnetworkvideomonitoringsystemarcanalyzedaswellasthestreamingmediatechniqueandtherelevantprotocolsareintroduced.Thearticleproposesanewnetworkvideoreal-timemonitoringsystembasedonproxyisproposed.Itintroducedthedesignandimplementationofcatalogserverandproxyserverindetails.劢eachievementsofthisarticleale:1.SolvetheproblemofmanagingtheCRlTlerasinprivatenetwork.neservercangetthroughthenetworkboundarytoaccesstheCameraswithoutdependingontheegressrouterconfigureanymore.2.Solvetheproblemofautomaticmanagementandconfigurationoftheuploaddata.111euploaddataCanautomaticstartorterminateaccordingtotheviewsituation.Also,theuploadcontentandtransmissionpatternCanbechangedbaseontheconfigurationfiles.3.Solvetheproblemofadaptionandautomaticmanagementofdifferentcameras.ThesystemCanbecompatiblewithkindsofCalTleras,andprovidesanautomaticregistermechanismforallcameras.Keywords:real—timemonitor,videomonitor,streamingmedia,cameramanagement 一IL—o● 目录第一章引言⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..11.1课题背景⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..11.2研究现状与课题意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.21.3课题目标⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..31.4作者工作与论文结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.4第二章网络实时监控系统相关技术⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯62.1流媒体技术⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯62.2相关协议⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..72.2.1RTSP协议⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..72.2.2RTP/RTCP协议⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.82.2.3SDP协议⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯92.3达尔文流媒体服务器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯102.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.10第三章网络实时监控系统总体设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..113.1系统结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.1l3.2系统节点⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.133.3流媒体服务器的设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯143.3.1达尔文服务器对功能要求的满足⋯⋯⋯⋯⋯⋯⋯⋯⋯153.3.2达尔文服务器对性能要求的满足⋯⋯⋯⋯⋯⋯⋯⋯⋯163.4节点间数据交互与系统基本运行流程⋯⋯⋯⋯⋯⋯⋯⋯⋯.173.5本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.20第四章目录服务器的设计与实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.214.1目录服务器需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯214.1.1管理员需求说明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..214.1.2用户需求说明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.224.2目录服务器总体设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯224.3目录服务器模块详细设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..244.3.1用户管理模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯244.3.2摄像头管理模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.254.3.3告警管理模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯284.3.4摄像头观看模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.304.3.5代理接口子模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..344.4目录服务器实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.384.4.1数据访问层的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯384.4.2业务逻辑层的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯39 4.4.3接口层的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.404.5本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.42第五章代理服务器的设计与实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.435.1代理服务器需求分析⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..435.1.1摄像头的主动注册功能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..435.1.2摄像头中继管理功能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.445.1.3摄像头上传配置功能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.445.1.4摄像头告警处理与转发功能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.445.2代理服务器设计说明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯445.2.1配置模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..455.2.2消息代理模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.465.2.3中继代理模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.495.3代理服务器的实现与系统测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.565.3.1配置模块与消息代理模块的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯565.3.2中继代理模块的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.585.3.3系统测试结果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.595.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.60第六章结束语⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..6l6.1论文工作总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6l6.2问题与展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..62参考文献⋯⋯⋯⋯⋯⋯⋯⋯..⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..63致谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯65攻读学位期间发表的学术论文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.66产¨'■户●t~_■ 北京邮电大学硕士学位论文1.1课题背景第一章引言网络实时监控系统是计算机、通信等多种技术相结合的产物,是基于IP网络,集成数据采集技术,视频音频编解码技术,流媒体技术、Web技术的一种崭新的应用系统。系统利用网络将分散、独立的图像采集点进行联网,实现跨区域的统一监控、统一管理、资源共享,为用户提供了一种全新的、直观的,扩大视觉和听觉范围的管理工到¨。当前,网络视频监控已渗透到教育、政府、娱乐场所、医院、酒店、运动场馆、城市治安等多种领域【2】。对于企业:银行系统可以通过网络视频监控对各营业网点及ATM机远程监控,以便及时发现异常情况并予以处理;无人值守机房可利用该平台,监控设备的运行情况,电源的使用情况等:超市或商场使用该系统对购物环境进行监控,可以及时应对突发事件,避免商家受到经济损失。对于个人:屋主可通过安装在自己家中的摄像头监视房屋安全情况;家属可通过病房摄像头探视病人;家长可通过部署在幼儿园,小学的摄像设备,随时观察到孩子的生活,学习状况;司机可通过安装在街道,立交桥的监控设备观察到路况,决定出行路线。总之,网络实时监控系统已经在我国的各个行业和领域得到了广泛的应用。网络视频监控的发展主要经历了两个阶段。第一阶段是半数字监控系统【31,系统在远端有若干个摄像机以及各种检测、报警探头等设备,它们获取的图像信息,通过各自的传输线路将图像的模拟信号汇接到多媒体控制主机上进行数字处理,然后再通过通信网络,将这些信息传送到用户。当多个接收端同时接收同一路图像时.需要建立多个数据通道,进行多次数据复制,大量相同的数据包在网络上传输,存在大量冗余信息。第二阶段为全数字网络视频监控【引。基于Web服务器/编解码器的网络化数字远程视频监控系统。视频从前端图像采集设备输出时即为数字信号,并以网络为传输媒介,基于国际通用的TCP/IP协议,采用流媒体技术实现视频在网上的多路复用传输。如果同时有多个用户访问同一个视频源,在监控点无需为每个用户建立单独的数据连接,直接从流媒体服务器转发。基于此种机制,在多用户并发访问时,可始终保持摄像头和流媒体服务器间只有一个图像带宽,减少对监控现场网络的冲击;同时,流媒体服务器处在高速网上,并且服务器的处理能力远远高于摄像头,可实现最大限度完成高速视频流的转发,保证图像质量。 北京邮电大学硕士学位论文1.2研究现状与课题意义现有实时网络监控系统一般由网络摄像头,流媒体服务器等节点通过网络互联组成【41,如图1一l所示。网络摄像头将采集的数据经压缩编码后传输至服务器,用户使用播放器向服务器请求媒体并进行观看。’图卜1现有监控系统网络结构图目前网络实时监控系统具有以下特点:1.媒体数字化【5】:视频与音频数据由以前的模拟状态转化为数字状态。高性能编码技术(如H.264,MPEG_4)的出现更是大大提高了音视频数据传输的效率,使得用户即使在带宽较低的情况下也能获得较好的图像质量。2.监控网络化【5】:通过网络连接,视频监控设备不用再集中一处,可以分布在各个不同区域,组成监控系统的硬件和软件采用标准化、模块化和系列化的设计,通过网络传输介质连接在一起,即可实现视频的网络化监控。网络化极大程度地打破了视频监控的区域限制,设备扩展的数量界限。3.对手机用户的支持:伴随3G技术的发展,3G网络突破了带宽限制的瓶颈【6】,使得手机监控成为现实。手机视频监控具备了良好的视频清晰度和实时性,其不但具备了固定线路视频监控的图像功能,还满足了用户随时随地远程观看实时监控视频的需求,实现了AnyTime、AnyWhere的视频监控。现有的网络实时监控系统中,摄像机与流媒体服务器间中继的管理一般具有种模式:第一种为不可控模式,摄像机一开机便会根据所配置的流媒体服务器地址主动传输图像,用户仅能通过开关摄像机控制数据的传输,无法进行远程控制。这样在摄像头长期无人观看的情况下会造成大量无用数据的传输。第二种模式为2一h0户 北京邮电大学硕士学位论文可控模式:用户可远程控制摄像头与流媒体服务器间的数据传输。该模式下用户通过操作流媒体服务器与摄像头间的RTSP会话实现数据传输的建立或拆除。但要实现该模式则对摄像头的位置有特定要求:摄像头必须位于流媒体服务器所能访问到的位置,一旦服务器无法访问到摄像头用户也就无法对其进行控制(例如服务器位于公网,而摄像头位于私有网络中)。并且现有的可控模式无法选择摄像头上传的媒体数据,若摄像头具有音频采集功能,则一般会将视频与音频数据一同上传至服务器,但对大多数用户来说,仅需要监控视频的观看即可,这就造成了网络带宽的浪费。另外,在系统中若要实现摄像头的自动化管理,则必须采用带有主动报到功能的摄像头。这种摄像头开机后能够周期性的向所配置的服务器地址发送报到信息,服务期利用这种周期性的消息可实现摄像头的自动注册与状态维护。但对于没有该功能的摄像头则需完全依靠管理人员手动管理设备信息:当系统中新添一个设备,必须有人通知管理员在系统中添加该设备的信息,若设备信息发生改变(如IP地址的改变),也必须及时通知管理员进行修改。这种手动管理的方式有诸多缺陷:消息通知不及时,人为输入的错误都将造成设备在系统中无法使用。另外由于这种非主动设备无法发送周期性的消息,系统无法维护设备的正确状态,若发生摄像头关机,或网络连接中断,系统都无法得知。基于上述问题,开发一个新的网络实时监控系统具有以下意义:1.系统的应用范围更加广泛:无论摄像头位于何处,只要能与Intemet连接,系统就能对其进行管理操作,同时对移动场景下监控视频的上传的支持可使系统用于车载等模式。2.更加智能化的设备管理:设备自动注册与更新,使得管理员不必再忙于修改系统数据,并避免了人为输入错误的可能。并且这种智能化的管理对所有摄像头都可提供,不再局限于主动式摄像头。3.最大限度降低网络流量:摄像头的数据传输仅在有用户观看时进行,并且管理员可根据需要决定摄像头上传的数据是否包括音频,这些机制尽可能的避免了无用数据的传输,节约了网络带宽资源。1.3课题目标本课题的目标为设计并实现一个网络实时监控系统,该系统除了实现现有网络监控系统所提供的基本监控视频播放功能以外,还具有以下功能:1.数据传输的自动控制:无论摄像头位于公网或私有网络,系统可对其到流媒体服务器间的数据传输进行控制。同时,这种控制由系统根据当前视频观看情况自动进行:当某摄像头第一次被用户请求观看时,系统建立相应摄像头到流媒3 北京邮电大学硕士学位论文体服务器间的数据传输。当某视频的最后一个用户停止对其观看时,系统停止相应摄像头到流媒体服务器间的数据传输。2.设备自动化管理:所有的摄像头首次连接到系统并开机后,可将相关信息,如口地址,MAC地址,RTSP端口号等自动注册到系统中;当摄像头信息有所变更时,系统会对相关记录进行自动更新;若摄像头与服务器连接正常并处于开机状态,系统会将摄像头维持在在线状态,若摄像头关机或与服务器的网络连接中断后,系统会将摄像头置为离线状态,由此提示用户该摄像头当前不可观看并提示管理人员对其进行检查维护。被动摄像头也可实现与主动摄像头一样的功能,无须管理员再对其信息进行手动管理。3.上传数据的可配置性:管理人员可根据实际情况配置某个摄像头上传至服务器的媒体中是否包含音频数据,并选择上传的传输机制。4.移动场景中监控视频的上传:摄像头只要能通过无线网络连接到Interact,就能像其他摄像头一样在系统中使用。5.短信通知告警信息:当前端设备所连接的报警探头检测到告警事件的发生后,系统将对该事件进行处理,并以短信方式通知相关用户。6.为服务提供商提供运营模式:系统通过对用户可看摄像头与用户问的关系管理,可为运营商提供按时观看的模式:对于仅有短期需求的用户,系统可按小时数对其提供观看。而对于有长期需求的用户,系统可按月,年提供观看。1.4作者工作与论文结构作者在工学硕士学习期间,全程参与了北邮3GPP应用实验室网络实时监控系统的设计和开发工作,主要负责网络实时监控系统的整体设计,目录服务器的设计与实现,代理服务器的设计与实现等工作。全文共分为六章:第一章引言,介绍了论文的背景,分析了相关领域的研究现状,阐述了课题的目标及意义。第二章相关技术,介绍了流媒体技术与相关协议,以及达尔文流媒体服务器。第三章系统总体设计,介绍了网络实时监控系统的整体架构,以及对达尔文流媒体服务器的研究。第四章目录服务器设计与实现,介绍了目录服务器的功能与设计,重点介绍了URL目录服务,设备自动发现,设备状态维护,中继自动管理,短信告警,4一h■声 北京邮电大学硕士学位论文用户观看管理等功能的设计与实现。第五章代理服务器设计与实现,介绍了代理服务器的功能与设计,重点介绍了代理服务器的私网穿透,被动摄像头信息,摄像头上传媒体选择等功能的设计与实现。第六章总结论文,并对系统可进行的改进进行展望。5 北京邮电大学硕士学位论文第二章网络实时监控系统相关技术为了提供实时的,清晰的视频监控服务,网络实时监控系统采用了多种网络传输技术,媒体处理技术。本章重点介绍了系统所采用的流媒体技术,相关协议,以及达尔文流媒体服务器。2.1流媒体技术流媒体技术的开发创意是从传统的TCP/IP协议对通过网络传送信息的控制方法中得到的。当通过TCP/IP协议下载文件时,服务器会按照一定的顺序将文件分成若干个独立的数据包,然后依次发送出去。而客户端的程序会将这些数据包重新组装起来,最终形成和原来完全一样的完整文件,这时才可以对这个文件进行任何可能的操作了。流媒体技术则不然,它能够按照特定的顺序将文件发送出去,播放程序无需等待整个媒体文件下载完成就可以一边接收数据一边播放17J,这大大减少了用户的等待时问。为了使播放更加稳定连贯,通常客户端会通过为接收数据开辟缓存区的方法【s】来解决网路拥塞的问题,只需要在数据缓存区充满前等待几秒钟就可以开始欣赏了。相比于将整个文件下载保存至硬盘,这也节省了播放文件所需的空问。这种在Internet/Intranet中使用流式传输技术的连续时基媒体就称为流媒体。流媒体技术并不是单一的技术,它融合了多种网络以及音视频技术。首先,普通的媒体文件或实时音视频信号必须经过处理后才能形成流媒体数据。对于文件,一般先采用高效压缩算法减小文件尺寸,然后在文件中加入流信息,使得文件以流的形式在网络中传输,并被播放器处理。对于实时音视频信号,首先须将模拟信号数字化,之再采用高效编码算法对数字信息进行压缩,然后将压缩后信息封装到合适的传输协议中。流媒体需要从服务器到达播放器就必须经过网络传输,流媒体实现的关键技术就是流式传输【9】。流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为将影像,声音等信息经过数字化以及压缩处理后,通过Internet将数字信号传送到播放器终端。实现流式传输有两种方法:实时流式传输(Real—timestreaming)和顺序流式传输(Progressivestreaming)【101。顺序流式传输是文件顺序下载,在下载文件的同时用户可在线观看:在给定时刻,用户只能观看已下载的部分,而不能跳到还未下载的前头部分。它不支持现场广播,实际上它是一种点播技术。实时流式传输保证媒体信号带宽与网络连接6 北京邮电大学硕士学位论文匹配,使媒体可被实时观看到。实时流式传输需要专用的流媒体服务器和传输协议。实时流式传输总是实时传送,特别适合现场事件。流媒体业务正变得日益流行,目前流媒体技术已广泛应用于IPTV、远程教育、手机电视/影院、互联网直播/点播、视频会议、视频监控等领域。2.2相关协议系统要在Internet上传输数据就必然涉及一系列网络传输协议。这些协议包括Internet本身的多媒体传输协议,以及实时流式传输协议。只有采用合适的协议才能更好的发挥流媒体作用,取得最佳的图像质量与实时性。系统所采用的协议为目前针对Internet上多媒体数据流实时传输的相关协议:RTSP,SDP,RTP/RTCP。2.2.1RTSP协议实时流协议RTSP(RealTimeStreamingProtoc01)【ll】定义了一对多应用程序如何有效地通过IP网络传送多媒体数据,是TCP/IP协议体系中的一个应用层协议。该协议用于在客户端和服务器端建立和协商实时流会话,用户可利用该会话控制客户端与服务器间的多媒体串流,这使音频与视频的受控、点播成为可能。RTSP允许多个串流在一个会话内被控制。RTSP是文本协议并且类似HTrP,其主要不同之处在于RTSP是标准的流媒体协议,并通常利用独立传输协议(通常是RTP)来传输媒体数据,并且RTSP是双向的,客户端与服务器端都可发出请求。RTSP工作的基本流程为本端发出请求,对端处理请求并发送回复,本端收到回复并处理。其中发送的请求主要包含需要对端执行的方法以及所需参数,RTSP共包含11个方法,他们的作用以及实现要求如下表2.1所示。表2-1RTSP协议的方法方法名称作用发送方向实现要求请求URL参数所指定的媒体客户端至DESCRIBE建议实现的描述信息服务器当从客户端发往服务器端,该方法将URL参数所指定的媒ANNoUNCE体描述信息发送到服务器。当双向可选从服务器端发往客户端,该方法更新会话描述。检查URL参数指定媒体的参GET-PARAMETER双向可选数值OPTIONS请求对端所支持的方法列表双向必须实现7 北京邮电大学硕士学位论文临时中断URL指定媒体的传客户端至PAUSE建议实现输服务器请求服务器将媒体以SETUP客户端至PW必须实现所指定的传输机制进行发送服务器服务器根据URL存储记录的客户端至RECORD可选数据服务器重定向请求,通知客户端连接服务器至REDlRECT可选到另一服务器地址客户端指定URL参数所标志的媒体客户端至SETUP必须实现的传输机制服务器SELPARAM日rER设置URL指定流的参数值双向可选停止URL指定的流发送,释放客户端至TEARDOWN必须实现相关资源服务器2.2.2RTWRTCP协议实时传输协议RTP(RealtimeTransportProtoc01)【12】:是针对Internet上多媒体数据流的一个传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP没有规定下层的传输协议,它可承载于UDP,TCP或ATM等其他协议之上.RTP只进行实时数据的传输,但不保证数据的按序传送,接受方依靠时间戳字段恢复数据的正确时间顺序。另外RTP也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。实时传输控制协议RTCP(RealtimeTransportControlProtoc01)【13】:负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTCP主要有4个功能:(1)用反馈信息的方法来提供分配数据的传送质量,这种反馈可以用来进行流量的拥塞控制,也可以用来监视网络和用来诊断网络中的问题;(2)为RTP源提供一个永久性的CNAME(CanonicalName)的传送层标志,因为在发现冲突或者程序更新重启时SSRC(SynchronizationSources)会变,需要一个运作痕迹,在一组相关的会话中接收方也要用CNAME来从一个指定的与会者得到相联系的数据流(如音频和视频);(3)根据与会者的数量来调整RTCP包的发送率;(4)传送会话控制信息,如可在用户接口显示与会者的标识,这是可选功能。 北京邮电大学硕士学位论文RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。工作时,RTP协议从上层接收流媒体信息码流,装配成RTP数据包发送给下层,下层协议提供RTP和RTCP的分流。’2.2.3∞P协议会话描述协议SDP(SessionDescriptionProtoc01)【1羽用于描述以会话邀请,会话通知,以及其他形式的多媒体会话初始化为目的的多媒体会话。由服务器端生成描述媒体的SDP文件,其中包括媒体的编码信息以及所在的服务器的链接等信息,客户端通过它来配置播放软件的设置。它是一个简单、可扩展语法的文本协议【lSl,采用UTF-8编码中的ISO10646字符集。SDP文件保存了对媒体的描述,一个SDP文件包含如下内容:(串符号表示可选字段):v=(协议版本)0=(所有者/创建者和会话标识符)S=(会话名称)i=,Ic(会话信息)U=木(URI描述)e=木(Emaii地址)P=木(电话号码)C=木(连接信息一如果包含在所有媒体中,则不需要该字段)b=木(带宽信息)一个或更多时间描述(如下所示):Z=水(时间区域调整)k=,Ic(加密密钥)a=木(0个或多个会话属性行)O个或多个媒体描述(如下所示)时间描述t=(会话活动时间)r=术(0或多次重复次数)媒体描述m=(媒体名称和传输地址)i=术(媒体标题)(连接信息一如果包含在会话层则该字段可选)(带宽信息)(加密密钥)(0个或多个会话属性行)9水术串宰=Cbka 北京邮电大学硕士学位论文2.3达尔文流媒体服务器在流媒体监控系用中,一个最重要的功能就是从监控设备中得到音视频数据,并根据用户的请求按需将数据分发给用户。流媒体服务器的主要功能就是采用标准流媒体协议将音视频数分发给用户。目前的流媒体领域,主要有三种平台:RealNetworks公司的RealSystem,微软公司的WindOWSMedia,苹果公司的QuickTimdl6】。三大平台都有相应的流服务器作为其应用的核心,其中苹果公司的流服务器是QuickTimeStreamingServer(简称QTSS)。QTSS使用标准的实时传输协议/实时流媒体协议(RTP/RTSP),通过互联网实时传送媒体,同时还支持FreeBSD、Linux、Solaris、WindowsNT和Windows2000等多个操作系统,是当前所有同类产品中支持平台最多的一个。苹果公司作为Internet流媒体联盟(ISMA)的核心成员不但其流媒体的技术与解决方案符合标准,而且QTSS是开放源代码的,其项目名称是DarwinstreamingSel"Ver(下文简称DSS)。DSS的源代码和相关文档可从以下站点获得:http://www.apple.com。DSS源代码完全采用标准C++语言写成,编程风格非常优秀,每个C++类都对应着一对和类同名的.h/.cpp文件。大量采用了面向对象的概念,如继承、多态等等.DSS与其他流媒体服务器相比具有以下优势:1)平台优势:支持Windows、Linux、Solaris等多个当今主流操作系统;2)价格优势:Darwin流媒体服务器的源码完全开放免费;3)接口开放:Darwin流媒体服务器有开放的二次开发接口,用户可根据需求使用DSS提供的编程接口开发自己的QTSS模块,来补充QuickTime流媒体服务器的功能。4)功能强大:支持多种流行的音视频编解码格式,能够实现基本的流媒体中继功能,记录相应中继流的相关信息。2.4本章小结本章介绍了网络实时操作系统中所采用的技术。首先介绍了流媒体概念以及所涉及的主要技术,接着介绍了流媒体传输的相关协议,主要包括RTSP,RTP/RTCP,SDP,最后对达尔文流媒体服务器的功能和特点进行了介绍。lO 北京邮电大学硕士学位论文第三章网络实时监控系统总体设计网络实时监控系统由多个功能各异的节点通过网络互联构成。系统总体设计包含了系统组织结构,系统中各节点的基本功能,所采用的技术,它们间的通信方式,以及系统的基本运行流程。下面分别就这几方面内容进行介绍。3.1系统结构网络实时监控系统由网络摄像头、代理服务器、目录服务器、流媒体服务器、用户终端等节点构成,它们通过网络连接相互通信,协同工作,为用户提供实时监控视频观看服务,系统的网络结构如图3.1所示。手机用尸图3-1网络实时监控系统网络结构图图3.1中,目录服务器与流媒体服务器共同构成系统的核心,他们可以分别位于不同的主机,也可以运行在同一台主机之上。目录服务器与流媒体服务器都位于公网中,以便所有的用户可以对其进行访问,并且可以管理摄像头以及接收摄像头发送的视频音频数据。 T,蔼篓苎兰!竺竺三私有网络或公网。若摄像头位于公网(拥有公网p)则可:差紫警竺蚕统中。若摄像头位于私网删要么菇主≤磊募乏烈絮统中壤鼍在摄像头所在局域网的出口路由器进磊菇爵i篙(Demmil⋯it⋯arizedzone)映射,后面这种方式等同于摄谲¥茹剁M厶赳赫竺警曼苎兰耋蝥兰所需代理的摄像头位于同一局域网,以便控蔷葬转发摄像蓥翌二挈黧苎黔.~般使用便携式代理服务器(便磊;蒜薹纛姜等麓詈冀耋曼譬:,黧他翌登的设备,将摄像头接入到系统。磊磊丢磊磊;二翥主网线与摄像头相连,通过无线网卡与妇锄et连接。一一_h牡川灯≯腑腿烛的二曼三三?’眦苎妻璺坌由摄像头构成,它实现了网络实时监控系统对外部世界慧竺苎矍二竺篓篓篓妻频的采集,告警信息的触发都在由芸部蒜轰!爱。前端部分就是系统的感知器官。⋯~~⋯“。脚。’池0曩全部分妻竺理竺务器构成,它负责将前端部分接入系统,是系统核心与前霎篓黧二:之零:。孳仝部分转发来嗽娜分的控制信三j套需磊纛萎蚕筹堇譬譬彗来宝竺璺曼黧控制。另~方面,它懒娜芬转蒜茹薹聂并某竺竺曼:、兰曼!竺翌譬发何椭息,以何种方式传输运行赢。高孬聂磊孬兰霎竺詈竺鳖三箩端的差异性。前端部分的摄像头来自多个≤备器焉:麓篓紫苎存套差主竺。。贷鳓务器可对不同的摄像头设备进存运磊二云二茹竺提篓竺:竺苎譬耄苎:通过接入部分对设备差异进行;磊吾:-姜怎茹善;夏夏统_竺篓詈磐予上传的信息,并采用相同的方式对前端进行控铜:Jio一“’川4卧队核心部分由目录服务器与流媒体服务器构成,是数据中转,请求处理,用户12 北京邮电大学硕士学位论文访问与管理控制的中心。流媒体服务器一方面处理所有代理服务器数据上传的RTSP请求,接收所有前端摄像头上传的数据,一方面处理所有用户观看RTSP请求,向用户分发他们所需的媒体数据,是RTSP请求处理与数据中转的中心。目录服务器是所有用户访问系统的接口,用户通过登录它才能对摄像头进行选择与观看。同时目录服务器集中了所有前端摄像头与用户的信息,管理员所作的所有管理操作都需通过它来进行,对前端摄像头的控制信息也由目录服务器发出,因此它是系统管理控制的中心。用户部分由用户构成,是媒体数据流向的终点。用户访问目录服务器得到视频URL,与流媒体服务器进行RTSP协商,最终得到所需视频的RTP数据。媒体数据由前端产生,经过接入部分,核心部分,最终到达用户。3.2系统节点网络实时监控系统中所有节点的基本功能以及所采用的技术如下所述:网络摄像头:采集视频与音频,将音视频信号数字化,压缩编码,协议封装与网络传输。网络摄像头实现了RTSP协议,RTP/RTCP协议,能够与其他实现了RTSP协议的对端进行RTSP会话过程,并在协商成功后将处理好的音视频数据封装到RTP数据包发送到对端。功能更高级的网络摄像头还实现了告警触发与告警信息发送等告警功能。系统中网络摄像头采用了市场上已有的设备,它们可以是集上述功能为一体的口摄像头,也可以是模拟视频采集设备,模拟音频采集设备与视频服务器组合而成的网络摄像头。这里视频服务器实现了模拟信号数字化,压缩编码,RTSP协议,RTP协议,告警以及网络传输等功能。流媒体服务器:是系统中转发视频音频数据的核心,摄像头通过网络将所采集的实时影音上传至流媒体服务器,而用户通过访问流媒体服务器获取自己所需的监控视频。对于摄像头侧,流媒体服务器接收摄像头上传的音频视频数据,并进行缓存。同时它在系统中形成唯一的SDP文件对这一路媒体流进行标识。对于用户侧,流媒体服务器接收来自用户的观看请求,并将用户所指定的音频视频数据传送到用户终端。流媒体服务器使用标准协议与外界进行通信:采用RTSP协议进行媒体传输前的协商与传输过程控制,协商成功后使用RTP协议进行媒体数据的传输,并采用RTCP协议对传输进行监控与统计。系统中流媒体服务器采用了节果公司的开源达尔文流媒体服务器,下一节将对流媒体服务器的结构进行详细介绍。目录服务器:为所有用户提供一个访问系统的统一平台,为管理员提供管理用户和摄像头的管理接口。用户对摄像头的监控视频的观看实际上是通过对流媒体服务器上所缓存的视频音频数据进行访问而实现的。但在流媒体服务器上集中13 北京邮电大学硕士学位论文了所有摄像头的视频音频缓存并以SDP文件进行标识,这造成两个问题:首先用户如何得到自己需要观看的摄像头所对应的SDP文件;其次,若用户没有摄像头的观看权限,系统则应阻止该用户访问摄像头所对应的SDP文件。使用目录服务器为用户提供统一的系统访问接口解决了这两个问题。用户通过目录服务器所提供的目录服务可以方便得到所需观看摄像头的URL,同时通过它可对用户的访问进行控制。对于管理员,目录服务器提供了对用户,摄像头以及两者问对应关系的管理接口。代理服务器:代理与其位于同一局域网的所有摄像头,使这些摄像头能够被管理员通过代理服务器进行管理。代理服务器接收来自目录服务器的命令,分别对摄像头与流媒体服务器进行RTSP的协商与控制,并将来自摄像头的RTP数据转发到流媒体服务器。通过代理服务器,管理员可以对需要上传至流媒体服务器的RTP数据进行控制。用户终端:指安装了浏览器与播放程序的终端,为用户提供目录服务的访问与视频观看功能。浏览器只需支持H1]【.P网页与JavaScript即可,包括IE,FireFox,遨游等。最基本的播放程序只需实现RTSP协议,RTP/RTCP协议以及数据解码功能,目前系统可用的播放器包括Real公司的RealPlayer,MicroSoft公司的MediaPlayer,以及Apple公司的QuickTime。3流媒体服务器的设计本系统中流媒体服务器包括两个模块:代理模块与中继服务模块。流媒体服务器结构,以及与其他节点的交互如图3.3所示。代理模块的功能与代理服务器基本相同,可以将它看作运行在流媒体服务器中,中继服务模块前端的内部代理服务器。它的目的是代理所有位于公网的摄像头,使其能够被目录服务器管理,并对其上传的RTP数据进行控制。中继服务模块负责接收并缓存摄像头上传的视频音频数据,同时它负责监听,处理用户的观看请求,将用户请求的摄像头视频转发到对应用户终端。图3-3流媒体服务器外部通信与内部结构14 北京邮电大学硕士学位论文如图3.3所示,代理模块需要与摄像头,目录服务器,中继模块交互。首先,在摄像头至目录服务器方向,代理模块转发摄像头信息。其次,在摄像头,中继服务模块两侧,代理模块分别与他们进行RTSP协商,并在协商成功后,从摄像头至中继服务模块方向转发础哼数据。最后,代理模块接受来自目录服务器的控制信息,通过两侧的RTSP会话,对摄像头至中继服务模块方向的RTP数据转发进行控制。对于代理模块更详细的介绍,请参考论文第五章。中继服务模块需要与代理模块,代理服务器,用户终端,使用标准的RTSP,RTP/RTCP协议进行交互。本系统中,中继服务模块采用了开源达尔文流媒体服务器,下面分别就功能与性能两方面内容对达尔文流媒体服务器进行介绍。3.3.1达尔文服务器对功能要求的满足首先,作为满足用户观看需求的服务器,中继服务模块必须能够接收并处理用户的RTSP请求,并且向客户端分发RTP数据。由于不同的客户端可能要求RTP采用不同的传输方式(uDP或TcP),因此中继服务模块需要实现通过UDP以及TCP两种方式发送RTP数据。其次,中继服务模块必须能够得到摄像头的数据。在媒体数据的上行方向,代理模块与代理服务器(以下简称代理)是中继命令的执行者,并且与摄像头直接进行RTSP协商,而中继服务模块只能被动接收代理向其转发的RTP数据。因此,代理与中继服务模块间采用RTSP的push模式进行RTSP协商:即由作为客户端的代理向作为服务器端的中继服务模块发出ANNOUNCE请求发起RTSP会话。虽然在RTSP协议中ANNOUNCE的实现是可选的,但本系统中,中继服务模块必须实现该方法。同时,代理会根据配置采用不同的RTP传输机制,因此中继服务模块必须实现通过UDP以及TCP两种方式接收RTP数据。Darwin流媒体服务器完全实现了对上述功能的要求。Darwin流媒体服务器核心采用“内核+模块(Module)”的系统结构。服务器内核支持流媒体服务最基本、最核心的功能,内核中实现了对RTSP监听、RTSP会话、RTP会话、RTCP任务的支持【171.(1)RTSP监听支持:在内核初始化时会根据配置参数中的监听端口号列表创建一组RTSP监听对象,但并不立即在这几个TCP套接字上开始接收RTSP请求,而是在内核完成一系列的动作之后再启动任务,通知RTSP监听对象开始接收RTSP请求。(2)RTSP会话支持:RTSP会话对象负责RTSP请求的处理工作。客户端与服务器建立有一条RTSP连接,也即端请求时建立的TCP连接。通过该RTSP连接请求,服务器则向客户端发送RTSP响应。Darwin流媒体服务器实现了RTSP协议中的所有方法。(3)RTP会话支持:RTP会话对象负责流媒体数据的RTP数据包发送工作。15 北京邮电大学硕士学位论文内核中实现了负责RTP会话的UDP套接字的管理,为数据发送作前期准备,并且在Play方法被调用后,RTP会话对象开始通过调用模块进行RTP数据包发送或接收工作,并且支持通过UDP或TCP两种方式接收或发送RTP数据。(4)RTCP任务支持:在内核启动任务时创建一个RTCP任务。在为RTP会话构造UDP套接字时,在接收RTCP数据包的UDP套接字上设置任务为该RTCP任务,使得该UDP套接字上收到RTCP包便运行该RTCP任务。3.3.2达尔文服务器对性能要求的满足所有摄像头上传的RTP数据都集中在中继服务模块,并由该模块分发到有需求的用户,系统中RTP数据流形成了图3_4所示的分布情况.。由图3-4我们可以看到,中继服务模块是整个系统中接收转发视频音频数据的核心。这要求中继服务模块除了可以完成RTSP协商,RTP转发等基本功能外,还需要有较高的实时性,稳定性与可靠性。Darwin流媒体服务器良好的设计,可满足这三方面的性能要求。摄像头用户图3-4RTP数据在系统中的分布Darwin流媒体服务器由四部分组成:1)核心服务器2)服务配置参数3)服务器模块4)客户端会话组成,如图3-5所示。核心服务器的作用是充当网络客户和服务器模块的接口,网络客户使用RTP和RTSP协议来发送请求和接收响应;服务配置参数主要用来保存系统运行所需要的一些参数,如超时时间,最大连接数,是否允许匿名访问等等。而服务器模块主要是负责处理请求和向客户端发送数据包。客户端会话包括RTSPSession和RTPStreams,用来记录会话的状态,每个会话都有唯一的标识符,使得每个客户的会话各不影响。16 北京邮电大学硕士学位论文客户稿金话IRTSP会话lIRTP'瘫I图3-5Darwin流媒体服务器的对象数据模型流媒体服务器在运行的时候由一个父进程构成的,这个父进程分叉出一个子进程,该子进程就是核心服务器。父进程会等待子进程的退出。如果子进程错误退出,则父进程就会分叉出一个新的子进程。核心服务器通过创建四种类型的线程来完成自己的工作,具体如下:1.服务器自己拥有的主线程(MainThread)。这个线程负责检查服务器是否需要关闭,记录状态信息,或者打印统计信息。2.事件线程(EventThread)。事件线程负责侦听套接口事件,比如收到RTSP请求和RTP数据包,然后把事件传递给任务线程。3.一个或者多个任务(Task)线程。任务线程从事件线程中接收RTSP和RTP请求,然后把请求传递到恰当的服务器模块进行处理,把数据包发送给客户端。缺省情况下,核心服务器为每一个处理器创建一个任务线程。4.空闲任务线程(IdleTaskThread)。空闲任务线程管理一个周期性的任务队列。该任务队列有两种类型:超时任务和套接口任务。在这四类线程的共同作用下,流媒体服务器具备了处理多任务、多事件的能力,能够稳定的保证程序运行的同时,完全保证了服务器的功能需求。3.4节点间数据交互与系统基本运行流程系统中网络摄像头,代理服务器,目录服务器,流媒体服务器,用户终端等节点通过网络传输实现相互通信的目的。根据各节点间所传输数据的不同类型,在网络中形成了不同的数据交互。系统中各节点问的数据交互如图3.6所示。用户终端与目录服务器通过HrrP协议交互,获取监控视频的URL,与流媒体服务器进行RTSP协商并接收RTP数据获取监控视频。目录服务器向代理服务器以及流媒体服务器发送控制信息进行中继建立与拆除操作,而代理服务器与流媒体服务器向目录服务器发送摄像头信息帮助其完成摄像头的自动管理功能。代理服务器接收并执行目录服务器的命令,并转发来自摄像头的信息,它一方面与摄像头进行RTSP协商,接收摄像头RTP数据,一方面与流媒体服务器进行RTSP协商,并向其转发摄像头的RTP数据。对于不通过代理服务器,直接接入17 北京邮电大学硕士学位论文到系统的摄像头,它通过流媒体服务器向目录服务器转发自身信息,并直接与流媒体服务器进行RTSP协商与RTP数据传输。流媒体服务器是整个系统RTSP协商与RTP数据转发的中心,它接收所有摄像头上行方向的RTSP协商与RTP数据,同时处理所有通向用户下行方向的RTSP协商与RTP数据转发。对于直接连接到系统的摄像头,流媒体服务器还要负责接收来自目录服务器的命令对其进行控制。网络摄像网络摄像头图3-6系统节点的数据交互系统中最基本的流程为用户获取监控视频的流程,摄像头到流媒体服务器中继的建立流程与拆除流程。基于以上对各节点间数据交互的描述,本文下面分别对这几种基本流程进行介绍。1.用户观看流程:所有用户都通过目录服务器对系统进行访问,并选择自己需要的摄像头进行监控视频观看。系统中用户得到监控视频的过程如图3.7所示(PC用户与手机用户过程相同)。图3-7用户观看流程18]IIlllIJ—J 北京邮电大学硕士学位论文1.).用户登录目录服务器,请求所需监控视频的URL2).目录服务器返回用户所需URL,并将其传递给流媒体播放器。3).播放器根据URL向流媒体服务器发起RTSP请求钔.RTSP协商成功后流媒体服务器向播放器发送RTP数据,.播放器对数据进行拆封与解码处理,最终为用户提供视频播放。2.摄像头中继建立流程:系统中摄像头均受目录服务器的控制进行中继的建立与拆除。若摄像头位于私网,对于目录服务器与流媒体服务器不可见,则对摄像头所在私有网络需部署代理服务器使摄像头变得可控,该情况下摄像头的数据上传流程如图3.8所示。图3-8通过代理的中继建立流程1).代理服务器收到目录服务器建立摄像头中继的命令2).代理服务器向指定摄像头发起RTSP协商3).协商成功后摄像头向代理服务器发送RTP数据铆.代理服务器继而向流媒体服务器发起RTSP协商5).与流媒体服务器协商成功后,代理服务器开始将从摄像头处得到的RTP数据转发到流媒体服务器,至此摄像头到流媒体服务器间的中继建立完成。通过代理服务器进行的中继删除过程如图3—9所示。摄像头流媒体服务器图3-9通过代理的中继拆除流程1).代理服务器收到目录服务器的命令拆除中继2).代理服务器通过与流媒体服务器间的RTSP会话终止数据传输。3).代理服务器通过与摄像头间的RTSP会话终止数据传输,至此摄像头到19 北京邮电大学硕士学位论文流媒体服务器间的中继被拆除。对于不通过代理服务器直接连接到系统的摄像头,他们中继的建立与拆除过程通过流媒体服务器直接进行控制。该情况下,摄像头的中继建立过程如图3一10所示。务器0一飞卜娟3.5本章小结本章介绍了网络实时监控系统的整体设计,包括系统中各节点的功能,部署位置,并对其中流媒体服务器所采用的开源代码,达尔文流媒体服务器进行详细说明。最后对系统中各节点间的数据交互与几种系统基本运行流程做出介绍。20 北京邮电大学硕士学位论文第四章目录服务器的设计与实现目录服务器位于网络实时监控系统的中心位置,是系统的访问与控制中心。作为系统的访问中心,它为用户提供摄像头的URL目录,是所有用户对系统的统一访问接口,另外它还为用户提供告警短信通知功能。作为系统的管理控制中心,目录服务器的作用主要体现在以下三方面:对用户访问权限的管理,摄像头信息的自动管理;摄像头的数据传送的自动控制。下面将对目录服务器的设计与实现进行详细介绍。4.1目录服务器需求分析目录服务器的开发针对企业级应用,为单独的企业提供服务。系统中的用户可分为管理员与用户两种角色,下面分别对这两种角色的功能需求进行说明。4.1.1管理员需求说明管理员通过目录服务器对系统进行管理,其主要职责为管理系统中的摄像头,用户,以及用户对摄像头的访问权限。系统为管理员提供的功能如下:1.摄像头自动注册:新开通的摄像头可自动注册到目录服务器,注册信息包括摄像头名称,IP地址,MAC地址,RTsP端口,Web管理端口等。2.摄像头状态维护:系统实时更新摄像头的在线状态,若摄像头关机或网络连接中断,则将摄像头状态置为离线,若摄像头恢复运行则重新将其状态置为在线。3。摄像头管理:管理员可查看,修改,增加,删除摄像头信息。并对摄像头进行开通/关闭,分配操作。只有当摄像头开通后才能对摄像头进行分配操作。4.用户管理:管理员可查看,删除,修改用户信息。5.按时间自动管理所有用户与摄像头关系:管理员按时间向用户分配可观看的摄像头。系统按用户对摄像头的可观看时间(永久或按天,小时计算)自动管理用户所能观看的摄像头。当用户对某个摄像头的可观看时间到期,系统将把该摄像头丛用户可观看列表中删除。6.中继自动控制:根据当前视频观看情况进行中继的控制。当第某摄像头第一次被用户请求观看时,系统建立相应摄像头到流媒体服务器间的数据传输。当某视频的最后一个用户停止对其的观看时,系统停止相应摄像头到流媒体服务器间的数据传输。7.告警组管理:针对某一群体的用户关心相同的摄像头告警信息,管理员可21 北京邮电大学硕士学位论文将用户或摄像头加入到某个告警组中。在告警组中的所有用户可以接收到本组中所有摄像头的告警短信。管理员也可将用户或摄像头从告警组中删除。8.系统工作日志:对系统中各种操作事件做日志记录,并为管理员提供查看,搜索,删除等功能。4.1.2用户需求说明用户通过注册方式获得系统账号。用户主要功能为,选择摄像头进行观看,但用户需通过系统以外的方式通知管理员需要观看的摄像头,并由管理员进行摄像头的分配。1.摄像头观看:用户通过访问系统可得到自己所能观看的摄像头列表,通过点击列表中的摄像头就可得到该摄像头的监控视频。2.告警短信通知:系统接收各摄像头的告警信息,并通过短信猫可自动发送短信到用户手机进行通知。4.2目录服务器总体设计目录服务器系统基于B/S模式,以web方式为用户和管理员提供访问接口。系统采用分层的模块化结构.在横向上,系统划分为展示层,业务逻辑层,接口层,数据访问层以及数据库等五个层面,每一层负责一种类型的操作,它们相互协作共同完成目录服务器的所有功能.在纵向上,系统分为摄像头管理模块,用户管理模块,告警组管理模块,日志管理模块以及摄像头观看模块。每个模块都实现了一组相对独立的功能,这五个模块共同构成了目录服务器系统。系统结构如图4.1所示。系统中五个层次的功能分别如下:1.展示层:包括所有页面,是系统与用户的接口。用户可进行的操作与系统返回的结果都通过这一层向用户展现。用户通过点击页面的菜单或按钮向逻辑层发出请求。2.业务逻辑层:所有来自页面的用户请求都将被业务逻辑层捕获。业务逻辑层的各个模块根据用户的请求调用不同的处理流程,最终返回结果到展示层。业务逻辑层通过调用数据访问层以及接口层的方法获得需要的数据。3.数据访问层:位于逻辑层与数据库之间,负责数据库记录的增加,删除,修改及查询操作。用户请求中所有与数据库有关的操作都在本层通过Hibernate的数据库连接实现。数据访问层包含一组数据访问对象,这些对象与数据库中的表一一对应,即每张表都对应一个自己的数据访问对象。4.接口层:负责与系统外部设备的交互。这些设备包括代理服务器(包括流媒体服务器的代理模块)以及短信猫(短信发送设备). 北京邮电大学硕士学位论文图4-1目录服务器的系统结构5.数据库;保存系统的所有记录,包括用户资料,摄像头信息,以及操作日志等数据。各层间的基本调用流程为用户通过展示层发出请求,展示层将用户请求提交至业务逻辑层触发处理流程,业务逻辑层调用数据访问层提供的方法修改数据库记录,或者通过接口层操作外部设备。一些接口层的操作也需要通过调用数据访问层的方法修改数据库记录。各层间调用关系如图4.2所示。展示层⋯求曲舡业务逻辑层彳b彳b返回方法调用厣用义』夕.方法调用≈尹返回数筹层匐钏层库连接{£返刨数据库图4-2目录服务器层次调用关系 北京邮电大学硕士学位论文4.3目录服务器模块详细设计目录服务器中各个模块分别实现一组相对独立的功能,其中日志模块比较简单,它仅为其它模块提供添加日志记录到对应数据库表的方法,并为管理员提供查看,搜索,删除日志的功能,在此对日志模块的设计不再作赘述。另外四个模块的设计与实现相对复杂,下面分别对这四个模块的详细设计进行介绍。4.3.1用户管理模块设计用户管理模块负责所有的用户资料管理与向用户分配摄像头。具体功能有用户注册,用户登录,为用户分配摄像头,摄像头期限管理,用户资料查看,用户资料修改,以及密码找回等功能。该模块结构如图4.3所示。展示层用户管理页面__一1qP业务用户管理逻辑l誓墨f逻辑层Hl|趟哆}数据用户相关数访问层据访问/\U数据库用户用户与摄像摄像头分信息表头关系表配记录表—=》方法调用与结果返回<:令数据图4-3用户管理模块结构除了摄像头期限管理功能,其它功能设计相对简单:它们通过在展示层的页面放置按钮或链接,由管理员操作触发业务逻辑层中相应流程,调用数据访问层中相应方法修改数据库中记录,最终将更新后的记录返回到页面。摄像头期限的设计与这些功能不同,它通过用户管理逻辑中的期限管理子模块实现,期限管理子模块是一个在目录服务器中一直运行的定时任务。每当整点与半点,该任务会将用户与摄像头关系表中的持有时间字段递减,同时检测分配到用户的摄像头是否到期(持有时间字段值为O)。若已经到期,该任务将删除摄像头与该用户的关系。并在摄像头操作记录表中增加一条记录。期限管理子模块的运行流程如图4.4所示。 北京邮电大学硕士学位论文no图4-4摄像头期限管理流程如图4—4中所示,任务初始化后便设置一个时长为T(5分钟)的定时器,并进入等待超时状态等待该定时器超时。定时器超时后,任务首先检查当前时间是否为整点或半点。检查方法为当前时间分钟数与30相除取余,若余数小于T/2向下取整,则认为当前时间为整点或半点。检查结果若为真,则调用数据库操作过程。该过程将数据库中用户与摄像头关系表中的所有持有时间字段非负的记录的该字段减1,并检查减l后结果是否为0,若为0则说明用户对摄像头的持有时间已经到期,需删除用户的持有权限;检查结果若为假,则重新启动时长为T分钟的定时器再次进入等待超时状态。4.3.2摄像头管理模块设计摄像头管理模块负责所有摄像头的信息管理。具体功能包括摄像头自动注册,摄像头状态维护与信息修改,摄像头信息修改,摄像头添加/删除等功能。该模块结构如图4-5所示。展示层l摄糌理-■尸__1尸—·』I|II业务逻辑层(..二。摄像头管理:三。)妙0{}{‘一,数据访眼l燮苣。卜维护]如层{E㈡~‘用户与数据库摄像头信息袁日志表关系袁c==令方法调用与结果返目<:令曩据图4-5摄像头管理模块结构 北京邮电大学硕士学位论文该模块中摄像头自动注册,信息自动修改,状态维护等功能都需要接口层中注册维护模块的支持,注册维护模块的结构以及与业务逻辑层,接口层的调用关系如图4—6所示。业务逻辑层(摄像头管理逻辑)厶b添加/删除/修改提供摄像头状态信息摄像头记录注册维护模块Q.夕摄像头表:
此文档下载收益归作者所有