李新乐,李书琴,蔚继承,李伟男,魏 露
(西北农林科技大学 信息工程学院,陕西 杨凌712100)
由于农业视频服务系统长期缺乏统一的规划和标准,不同地区的视频系统都以小范围区域部署为主,并且呈现出显著差异性,即使结构形式相同,构成系统的具体模块和控制协议存在深层次的异构性[1,2]。
针对目前各个地区视频服务系统遵循不同协议,彼此异构而不能互通服务的现状,研究设计异构农业视频服务系统互联互通方案,使不同地区的异构视频系统可以彼此为对方地区用户服务,是当前农业视频服务领域亟需解决的问题。针对异构视频服务系统互联问题,目前国内外有以下几种解决方法:针对基于H.323协议的视频服务系统,多通过协议转换中间件完成系统间的信令转换[4,5,9];针对流媒体视频服务系统,目前多采用基于Web Service技术实现系统集成[2,7],但是上述方法实现比较复杂、通信效率低,且较少有人研究遵循标准协议视频系统与流媒体视频系统互联问题。
本文针对当前主流的流媒体视频服务系统只需交换彼此系统的控制消息即可实现系统间互联互通的特点,提出了在不改变原有视频服务系统功能前提下,通过增加控制信息代理方式完成异构视频服务系统互联互通的技术方案。通过设计和实现互联互通协议和视频服务系统,完成了对该方案的验证,构建了基于该协议的分布式视频服务系统。
对于当前大多数流媒体视频服务系统,只需要知道其它视频服务系统的培训室列表信息,每个培训室内的成员信息以及成员的流媒体播放地址,以及其它视频服务系统的主要控制命令等,连接到本服务器的用户即可接入到其它服务器的培训室中完成视频培训过程,实现互联互通过程。
对于遵循H.323协议的软件视频服务系统或硬件视频会议终端需要接入流媒体视频服务系统时,不仅需要完成上述的培训室和培训室成员等通信实体信息和控制信息的交换,还需要完成H.323音视频流到流媒体音视频流的转换。
基于以上分析,为了不影响已构建好的视频服务系统当前的工作模式,本文采用引入中间视频控制代理的互联互通方案。已有视频服务系统只需要增加与视频控制代理通信模块,即可实现与其它系统的互联互通。这样可以保证已有视频服务系统按照原有模式工作运转,即节点自治性。以杨凌三农视频服务系统与宁夏三农呼叫中心为例,其互联方案如图1所示。
图1 视频互联互通
其中,代理服务器遵循相同的协议,主要完成异构服务器之间的控制信息的转换和转发。当杨凌站点上的用户1需要参与宁夏站点提供的远程服务培训时,杨凌站点通过代理服务器1向宁夏站点的代理服务器2发送请求培训室列表及进入培训室等指令,代理服务器2需要将指令转换成宁夏站点服务器可以识别与处理的指令,处理完成后将结果通过代理服务器2发给代理服务器1,处理完成后给杨凌站点。在该方案下,各自站点完成本服务器用户身份认证和视频服务控制等功能,互联双方交换彼此信任的培训室列表、用户列表和用户视频播放地址等信息。杨凌用户1加入到宁夏站点的培训室后即可加入到宁夏培训室的用户列表中,与宁夏用户一样接受宁夏站点的控制和调度,控制信息经过视频控制代理转发到杨凌站点,最终转发给用户1。控制服务器及代理对消息控制的流程如图2所示。
图2 消息控制流程
基于以上互联互通模型以及分布式农业视频服务业务流程分析,自定义互联互通协议需要规定站点、培训室、培训室成员等通信实体信息以及登陆验证、请求站点列表、培训室列表和成员列表等控制命令。
本文自定义的视频互联互通协议 (video interconnection protocol,VICP)工作于TCP/IP之上的应用层,消息传递是服务器端与客户端通信的主要方式。VICP协议中定义了请求消息和响应消息,前者用于客户端向服务器请求资源,后者用于服务器向客户端发送处理请求后的响应。
为了保证VICP协议的高效性,采用持久连接工作方式,每个会话周期从客户端发送请求至服务器端连接建立开始,到客户端正常或异常退出连接中断结束。在一个会话过程中,客户端与服务器端可以进行多次交互。
协议结构设计主要规定了通信过程规则,即消息的格式。发送双方根据协议规则发送、接收和处理数据[3]。根据以上设计方案VICP协议消息分为两类,即客户端请求消息 (SNCMessage)和服务器响应消息 (SNSMessage)。VICP协议将登录验证、请求站点列表等通信过程定义为命令,用于指示消息接收方如何处理数据,同时定义了培训成员、站点和培训室等通信实体的信息结构。SNCMessage和SNSMessage都由消息头部和消息体构成,其中SNCMessage消息头部定义了命令类型和接收命令的服务器地址,SNSMessage头部只需要包含命令类型即可。SNCMessage消息体包含可选的成员信息、培训室信息以及发言请求信息等,SNSMessage消息体包含可选的服务器列表、培训室列表以及成员列表等信息。由于消息长度不确定性,所以VICP协议数据单元第一个字段为4字节的标识客户端消息或服务器端消息的长度,第二字段为消息本身,第三字段为4字节CRC32校验位,以校验通信数据的完整性。VICP协议帧格式如图3所示,其中消息长度即客户端消息和服务器端消息长度。
图3 VICP协议帧格式
异构视频服务系统正确工作依赖于双方按照协议规定进行工作。发送方帧结构中的命令字部分代表了一个请求或者对于一个请求的响应。接收方根据接收到的命令字对接收到的数据进行处理,同时将不同的响应消息给发送方,直到通信双方有一个退出系统或者通信线路中断时通信过程结束。
考虑到待互联互通流媒体视频服务系统大部分由C++或Java等主流开发语言编写,为了保证互联方案的可行性和可扩展性,协议设计采用Google公司的Protocol Buf-fers(简称protobuf)技术完成。与通用数据交换格式XML相比,protobuf具有数据量小,效率高,使用简单并且歧义性小的优势。使用protobuf完成协议设计过程如下:首先根据上述协议结构设计结果参照protobuf语法格式制定协议文件,然后利用protobuf工具将协议文件转换为Java或C++等语言下的类,这些类提供了简单的方法访问每个字段,从而使协议实现变得更为简捷。protobuf技术的应用保证了VICP协议的易用性和高效性。
为了测试VICP协议在异构流媒体视频系统互联互通方面的可行性,设计和实现了基于该协议的视频控制服务器和代理服务器,同时利用开源的Red5作为流媒体服务器做集群部署,完成了流媒体视频系统的建设工作。
视频控制服务器主要完成系统站点信息、培训室和成员信息等的管理,同时也负责通过代理服务器完成与其它系统进行信息交互。为了保证控制服务器的高效性和稳定性,服务器采用Apache Mina网络应用程序开发框架[8],结合protobuf完成协议包解析,采用跨平台的Java语言完成控制服务器的实现。
(1)视频控制服务器架构设计
视频控制服务器采用Apache Mina网络开发框架,其架构分为网络接口层、过滤器链层、业务处理层、数据接口层和数据库层。其中网络接口层负责打开监听端口,发起建立连接以及连接断开,过滤器链层主要有日志过滤器和编解码过滤器等构成,主要负责数据的转换工作,业务处理层主要完成数据接收处理和发送,数据接口层为业务层的数据库访问提供支持。数据库层主要完成数据存储功能,其架构如图4所示。
图4 视频控制服务器架构
(2)视频控制服务器实现
采用上述协议及架构实现视频服务控制系统时,A-pache Mina可以根据解码器自动判断接收缓冲是否已有完整消息,如果消息完整则交给业务处理器处理该消息。因此需要根据上述的协议数据单元实现自定义的编解码器。在编码器中,需要将消息对象序列化为二进制流,并且在头部附加消息长度,尾部添加消息校验和。在解码器中需要判断当缓冲区数据长度大于消息长度与校验位长度之和时,则认为已接收到完整的消息。由于Apache Mina数据包一般较小,VICP协议的数据帧有可能分到多个Apache Mina数据包中传送,因此需要考虑分包问题,即在接收时将多个mina数据包中数据合成一个完整的VICP数据包。其处理逻辑如图5所示。
视频控制代理服务器主要作为已构建视频系统代理完成与其它异构系统的信息交互功能,引入代理服务器主要目的是减少对原有系统改动,这符合软件设计开闭原则。与视频控制服务器相同,控制代理服务器遵循上述VICP协议,并且采用Apache Mina网络开发框架与其它的视频服务系统交互,同时根据不同的异构系统完成与自身视频控制系统信息交互。
图5 数据包接收处理流程
为了解决流媒体视频服务系统与农业科技推广领域现有的基于H.323协议的标准视频会议系统互联互通问题,采用改造传统H.323体系中MCU的技术方案实现两者互联。基本思路如下:在传统MCU基础上,通过LIBRTMP组件完成H.323音视频流和RTMP流媒体视频流之间的转换,同时添加VICP协议支持,使MCU作为H.323视频系统中其它终端代理,完成视频系统控制信息的转发,即将本系统的成员及培训室信息等转发给异构的流媒体视频系统,同时将流媒体视频系统的相关信息转发给本系统成员,这样即可完成H.323视频系统与流媒体系统的互联互通。
为了验证上述异构视频服务系统互联互通方案的可行性、有效性和正确性,本研究设计并实现三农视频服务系统控制服务器以及视频终端软件,并且作为不同地区站点部署在不同的服务器上,完成了同构视频系统测试。同时利用该系统与成都金虎科技开发的宁夏三农呼叫中心进行互联互通测试。上述两个系统无论控制协议还是数据库内部结构都有显著差异,因此是一个典型的异构视频服务系统互联问题。在互联过程中,三农呼叫中心作为已有视频系统,增加了代理服务器与三农视频服务系统联合开展培训服务。两者之间控制信息通过Apache Mina套接字进行通信,音视频通信仍然采用本身的RTMP协议进行。互联互通后两个系统的用户可以彼此可以进入对方培训室并且进行视频咨询。用户登录一个服务器站点即可看到其它站点的培训室列表。用户登录一个服务站点即可看到其它站点的培训室列表,其效果如图6所示。用户可进入到其它地区站点的培训室并与主讲专家音视频交互,效果如图7所示。
图6 不同服务器培训室列表
图7 不同系统用户音视频交互
实验结果表明,采用基于自定义协议和Apache Mina的视频服务系统集成方案与基于Web Service的视频系统集成方案相比,具有实现简单,传输数据量小的优点,以下是采用自定义协议的视频互联互通控制通信以及采用Web Service方式通信在传输相同指令信息时的数据量对比,结果见表1。
表1 不同互联方式传输数据流量对比
由表1可以看出自定义协议下采用二进制传输信息不仅可以节省流量,而且结合protobuf具有较高的解析速度。
本文在分析当前主流农业视频系统特点现状基础上,提出了采用自定义协议及控制代理完成异构视频系统互联互通的技术方案,设计并实现了三农视频服务系统,并且对上述的互联互通模型进行了验证。实验结果表明,该方案实现简单,可靠性较强,并且保证了原有系统的自治性。但是可以看出每个子系统需要维护对与其互联的其它视频系统列表,造成了一定的操作不便,以后可以考虑在模型中增加信息控制节点完成子系统信息的管理功能和权限控制功能。
[1]QIAN Qiuping,ZHENG Kefeng,XU Zhifu,et al.Design and implementation of remote intelligent video monitoring system for agricultural product [J].Agriculture Network Information,2009 (5):25-29 (in Chinese). [钱秋平,郑可锋,徐志福,等.智能农业远程视频服务系统的设计与实现 [J].农业网络信息,2009 (5):25-29.]
[2]LI Yang,CHEN Feiling,FEI Zhangjun,et al.Integration method and model based on node autonomy for heterogeneous video surveillance systems [J].Mechanical & Electrical Engineering Magazine,2011,28 (2):212-216 (in Chinese).[李阳,陈飞凌,费章君,等.基于节点自治的异构视频监控系统集成技术和模型研究[J].机电工程,2011,28 (2):212-216.]
[3]CHEN Li,ZHANG Jing.Transmission document design based on serial port definition agreement [J].Computer Technology and Development,2012,22 (2):45-48 (in Chinese). [陈荔,张菁.基于串口自定义协议传输文件的设计 [J].计算机技术与发展,2012,22 (2):45-48.]
[4]QIN Yong,PENG Huaijun,ZHU Lingxi,et al.The engineering practice of Qinghai-Tibet railway region video node interconnection platform [J].Chinese Railways,2012 (2):66-69(in Chinese).[秦勇,彭怀军,祝凌曦,等.青藏铁路视频区域节点互联互通平台的工程实践 [J].中国铁路,2012(2):66-69.]
[5]YI Zhongwei.Research and implementation on key technologies for integration between isomerous video monitoring systems[D].Dalian:Dalian Maritime University,2011 (in Chinese).[易忠伟.异构视频监控系统集成关键技术研究与实现 [D].大连:大连海事大学,2011.]
[6]ZHOU Lizhu,LIN Ling.The framework’s research on an integrated communication system for monitoring command and video conference [D].Xi’an:Xidian University,2010 (in Chinese).[周立柱,林玲.监控、指挥和视频会议为一体的综合通信系统的架构研究 [D].西安:西安电子科技大学,2010.]
[7]ZHAO Hong,SHEN Chao.Integration and uniform schedule on heterogeneous video service systems [C]//System Simulation Technology & Application (Volume 13),2011:188-190(in Chinese).[赵宏,申超.异构视频服务系统集成与调度策略研究 [C]//第13届中国系统仿真技术及其应用学术年会论文集,2011:188-190.]
[8]HAN Dongdong.Design and implementation of RTSP mobile streaming proxy based on MINA framework [J].Computer Knowledge and Technology,2011,7 (10):2380-2389 (in Chinese).[韩东东.基于MINA框架的RTSP移动流媒体代理服务器设计与实现 [J].电脑知识与技术,2011,7 (10):2380-2389.]
[9]XIAO Xingquan,LI Fuxiang.Discussion on the interconnection of Sichuan power video monitoring system platforms [J].Telecommunications for Electric Power System,2010,34(7):30-35 (in Chinese). [肖行诠,李富祥.频监控系统平台互联互通的建设思路 [J].电力系统通信,2010,34(7):30-35.]
[10]DU Ruofei,XU Yajing,XU Huimin.Architecture design of interconnective video surveillance system [J].Journal of Computer Applications,2011,31 (Suppl.2):197-199 (in Chinese). [杜若飞,徐雅静,徐惠民.互联互通视频监控系统架构的设计[J].计算机应用,2011,31 (Suppl.2):197-199.]