APP下载

基于NGOD架构的VOD系统边缘设备接口设计

2014-09-17刘怡俊

电视技术 2014年2期
关键词:端口消息客户端

李 超,刘怡俊

(广东工业大学 计算机学院,广东 广州 510006)

基于NGOD架构的VOD系统边缘设备接口设计

李 超,刘怡俊

(广东工业大学 计算机学院,广东 广州 510006)

为方便数字电视设备商能够开发出满足互动服务中边缘资源管理系统的功能要求,设计并实现了一种基于NGOD架构的对边缘资源注册监控与管理分配的接口。边缘设备通过该接口与ERM交互,使VOD系统中的边缘资源可以得到合理高效的使用。实验结果表明,采用D6,R6接口的EdgeQAM能够顺利挂载在广东省网高清互动平台。

NGOD架构;D6接口;R6接口;EdgeQAM;RTSP

随着中国有线数字电视接入用户和高清互动业务的高速增长,业务运营规模的急剧扩大,使得边缘设备数量不断增加,对边缘设备的使用也日趋复杂[1]。由美国Comcast公司提出的开放式标准化视频架构NGOD(Next Generation on Demand)[2-3]已经被国内越来越多的广电运营商采用,数字电视前端设备支持标准化视频架构成为国内设备商急需解决的问题。国外数字电视设备供应商美国哈雷公司(Harmonic Inc)NSG系列EdgeQAM平台和思科系统公司(Cisco Systems Inc)IPQAM设备都支持NGOD架构[4-5]。国内数字电视业务起步晚,只有数码视讯等少数几家设备商支持NGOD架构。为此,笔者设计并实现了一种基于NGOD架构的D6,R6接口,为设备商的边缘设备接入NGOD平台提供了较高的参考价值。

1NGOD架构

新一代视频点播服务的基本架构NGOD是由有线电视服务商美国康卡斯特电信公司(Comcast Corp.)提出的一种网络框架结构,已经逐渐取代ISA架构。为满足不断更新的视频业务的部署需求,NGOD采用模块化、灵活性、可扩展性的视频架构以支持多种业务。NGOD架构中,采用ERM来实现边缘资源的管理和分配。ERM的逻辑功能分为设备发现功能和资源管理功能,D6接口[6]用于动态发现边缘设备,R6接口[7]用于边缘资源的分配和回收,两者相互独立,同时,R6接口和边缘设备通信前,需要从D6接口来收集自己管理的资源信息。如图1所示为NGOD架构中的边缘组件架构图。

本文的工作重心为NGOD架构下EdgeQAM端D6、R6接口的设计与实现。

2 D6接口的设计与实现

D6接口是基于VREP(Video Registration Protocol)协议(在TRIP协议的基础上进行扩展)实现的。VREP协议基于底层TCP/IP提供可靠传输,包括OPEN消息、UPDATE消息、NOTIFICATION消息和KEEPALIVE消息4种。交互时序图文献[8]已有明确说明,当连接处于已建立状态时,D6客户端通过UPDATE消息向管理自己的唯一ERM注册,主要包括每个QAM通道的属性以及边缘设备相关参数。

2.1 客户端D6接口的功能模块图

D6接口的客户端程序主要包括主流程模块、组包模块、解包模块、定时器模块、状态转换模块、事件模块、与EdgeQAM主板软件NGOD进程的通信模块。D6客户端功能模块如图2所示。

主程序模块主要负责与ERM建立连接,与其交互,并对相关异常进行处理。组包模块负责OPEN消息、UPDATE消息、NOTIFICATION消息、KEEPALIVE消息的组包。解包模块则为除UPDATE之外的其他消息提供解析函数。定时器模块包括重连定时器、保持定时器和心跳连接定时器,定时器的功能各不相同,但一般保持定时器hold time的时间是心跳连接定时器的3倍,也就是连续3次发送KEEPALIVE消息仍收不到回复,那么hold time超时,需要断开连接。状态模块包括空闲、连接、激活、OPEN已发送、OPEN确认和已建立6种状态。事件模块包括起始、终止、TCP异常、定时器超时、收包等12种事件。其中,收到消息、定时器超时等会触发相应事件,事件的发生会导致状态的转换。自定义的通信模块主要是与EdgeQAM的主板软件NGOD进程之间通信。

2.2 客户端D6接口的状态转换图

程序实现采用有限状态机方式编程,如图3所示,VREP会话共有6种状态。在IDLE状态下,当一个开始事件(IE1来自系统或者操作员)出现时,初始化所有的VREP资源,打开重连定时器,初始化到ERM的连接,转换到CONNECT状态,其他事件发生则保持IDLE状态不变。在CONNECT状态下,如果TCP连接成功(IE3),则发送OPEN消息给ERM,设置定时器的值,并转移状态为OPENSENT;若TCP连接建立失败(IE5),则转移到ACTIVE状态,其他事件做相应处理。在ACTIVE状态下,VREP试图与ERM建立TCP连接,如果连接成功则仍可建立连接,否则重连超时(IE7)会退回到CONNECT状态,其他事件做相应处理。在OPENSENT状态下,如果从ERM收到OPEN消息(IE10),检测无误则向ERM发送KEEPALIVE消息状态转移到OPENCONFIRM状态,否则发送NOTIFICATION报错,转到IDLE状态,其他事件做相应处理。在OPENCONFIRM状态下,收到KEEPALIVE消息的回复(IE11),那么最终会转移到ESTABLISHED状态,在已建立状态下D6客户端即可向ERM发送UPDATE消息来实现QAM等详细信息的注册。

3 R6接口的设计与实现

R6接口的消息交互是基于RTSP(Real Time Streaming Protocol)[9]实时流传输协议,RTSP 文本消息的传输既可以建立于TCP/IP,也可以建立在UDP之上,鉴于文本消息的数据有限,采用TCP传输更为可靠。主要包括 Setup,Teardown,Announce,Get_Parameter,Session Keepalive信令。当SM发送一个资源请求,要求ERM建立一个点播会话时,ERM作为客户端将向EdgeQAM服务端发送一个会话建立请求消息,EdgeQAM根据分配请求的参数,建立UDP+节目号+QAM的映射关系,也可以要求EdgeQAM向TS流中注入带内标记,或停止注入、检查等功能。当用户撤销点播时,SM发送撤销请求给ERM,ERM通过R6接口的Teardown信令通知EdgeQAM,回收资源。

3.1 R6接口的流程图

程序首先创建RTSP服务器,监听554端口,ERM客户端根据D6接口注册的IP地址访问该端口。由于RTSP协议不同于HTTP协议,其交互是双向的,信令可以由客户端发起,服务端应答,也可反过来。如果已分配的QAM在会话过程中发生异常时,可主动发送Announce消息通知ERM。所以收到的消息可能是Announce请求的应答消息,也可能是其他信令请求消息中的一种。若是请求应答,则调用应答处理函数。若是请求消息,则根据请求首部的命令字段判断消息类型,如Setup消息,且含有ProvisionPort字段,此消息就是预分配请求,R6接口服务端收到该请求,调用rtsp_r6_setup_parse函数进行解析,需要服务器随机产生一个不重复的Session ID,并将该Session添加到一个会话链表,然后把Transport字段的参数传递给EdgeQAM的主板软件做相应底层配置,最后给出回复消息。Teardown消息请求则需要将会话从链表中撤销,完成资源的回收工作。若为其他请求消息,则共同维护一个Session ID。R6服务端流程图如图4所示。

3.2 R6接口端口状态转换机

在该状态机中,端口状态可以从Not Configured或Provisioned任一个状态开始。如果EdgeQAM支持动态端口映射,那么端口起始状态是Not Configured,如果EdgeQAM支持其他方式(如固件映射或配置文件)的静态配置端口,则端口可选择从Provisioned状态开始。当EdgeQAM收到ERM的预分配请求后,端口从Not Configured状态转换为Provisioned状态。端口在Not Configured状态,没有数据被传输到QAM输出,然而在Provisioned状态,所有数据被映射到QAM输出,如果可能,ERM请求EdgeQAM在输入流带内标记发生变化时通知它,这会导致流在无带内标记到有带内标记之间互相转换。当EdgeQAM收到ERM的StartChecking消息后,端口从Provisioned状态进入到In Session状态,其又分为两个子状态,Markers Match和Markers Mismatch。在Markers Match状态,带内标记必须检查,如果带内标记不匹配,数据流不会被输出到QAM,也不会注入任何数据;若匹配,则可以注入一些带内标记。当收到StopChecking消息后,会退回到Provisioned状态。当收到Teardown消息后,端口进入Not Configured状态。如图5所示为R6接口的端口状态机。

4 D6,R6与主板软件的通信机制

EdgeQAM的主板是整个设备的控制中心,主板软件中的NGOD进程负责与D6,R6接口通信,该通信协议标准中并未定义。进程间通信可采用管道、信号量、共享内存、套接字、消息队列等。此处采用消息队列比较合适,Linux下的消息队列中的消息体字符数组最大支持8 192 byte,如果消息的长度大于8 192 byte,应该按8 192为单元划分成若干条消息。为了实现双方交互,可以在两个进程中都开启一个发送和接收队列。NGOD进程与D6,R6进程通信协议如图6所示。

命令头中的第1个字节Type为D6或R6,表示通信对象。第2个字节Ret为返回值取0、1或2,分别表示消息返回状态是默认、失败和成功。Total Length表示消息的总长度包括命令头的长度。All Frame num表示消息的总帧数,Current Frame表示当前帧数,接收端根据这两个值判断消息是否接收完成,后面保留4 byte长度。参数头则包括4 byte的参数类型和2 byte的参数长度。由于EdgeQAM输入端口参数和QAM子板各通道的参数比较多,所以为了区分不同类型的参数采用基地址加偏移量的方式表示。

5 实验与测试结果

本接口是基于Linux(内核版本3.5)进行验证的,采用的芯片是Xilinx公司的基于ARM cortex-A9处理器平台的Zynq-7030。EdgeQAM的Flash最小为32 Mbyte,DDR容量为256 Mbyte。由于测试内容比较多,主要分别对D6,R6接口建立过程和部分消息进行测试。测试结果在下文介绍。

5.1 D6接口与ERM的通信验证

D6接口的实现包括与ERM连接的建立,以及各种消息的交互,ERM的IP地址通过Web端由用户设置为192.168.0.160,端口号为8888。图7为D6接口与ERM的连接建立过程以及OPEN消息的详细信息。程序启动之后会采用EdgeQAM主板软件传递过来ERM的IP地址和端口号等参数尝试连接ERM,地址正确则可以连接上,主动发送OPEN消息,收到的OPEN消息如图7所示,最终处于已建立状态,保持心跳连接等待UPDATE消息和其他消息的交互。由图中运行结果与预期一致,可以证明D6接口与ERM交互正确。

5.2 R6接口与ERM的通信验证

R6接口的实现包括与ERM连接的建立,以及各种请求消息和应答消息的交互,R6接口启动之后在本地的554端口监听,ERM通过D6接口注册的IP地址及固定端口与R6建立连接。如图8所示为R6接口收到ERM的端口预分配请求,CSeq为314,Transport头包括请求分配的QAM信息和UDP信息,InbandMaker头包括请求注入带内标记信息等。R6通过解析该请求,发现请求正确并且底层成功处理完成,回复该请求如图9所示,Session为随机产生的不重复的ID,该结果与预期的结果一致。除此之外,还通过大量的测试,如带宽请求过大等,R6接口皆能识别并能正确回复请求应答或是发送异常请求,由此证明R6与ERM的交互是正确的。

6 小结

广东省新一代数字电视交互平台NGOD采用Comcast的标准实现,大部分接口严格按照标准执行。采用本方案实现的D6,R6接口能够可靠地运行在边缘设备上,设备功能和性能指标得到广泛的认可,并且能与ERM有效配合实现边缘资源的管理和使用,最终完成NGOD点播业务的应用。

[1] 甘育裕,商彬,陈铭灏.视频点播系统核心设备研究与设计[J].电视技术,2007,31(8):63-64.

[2] Comcast Corp.NGOD overall version 2.0[M].[S.l]:Comcast Corp,2006.

[3] Comcast Corp.NGOD edge architecture 2.0[M].[S.l]:Comcast Corp,2006.

[4] Harmonic Inc.NSG 9000-6G universal software user’s guide[EB/OL].[2013-07-10].2010.http://www.Harmonicinc./sites/default/files/datasheets/NSG9000-6G_Datasheet.pdf.

[5] Cisco Systems Inc.End-of-sale and end-life announcement for the Edge QAM modulator power supplies(XDQA24)[EB/OL].[2013-07-10].2012.http://www.cisco.com/en/US/Prod/collateral/video/ps9159/ps9195/ps9248/product_data_sheet0900aecd806d19 3d.pdf.

[6] Comcast Corp.NGOD service discovery registration interface version 2.0[M].[S.l]:Comcast Corp,2006.

[7] Comcast Corp.NGOD edge resource interface-r6 version 2.0[M].[S.l]:Comcast Corp,2006.

[8] 胡朋,李永涛,王志谦,等.数字电视互动服务中ERM对边缘资源的管理[J].电视技术,2011,35(20):17-20.

[9] Comcast Corp.NGOD RTSP usage specification version 2.0[M].[S.l]:Comcast Corp,2006.

[10] 李永涛,胡朋,王志谦.基于NGOD架构的VOD系统边缘资源会话管理方案[J].电视技术,2011,35(19):1-3.

Design of Edge Device Interface in NGOD-based VOD System

LI Chao,LIU Yijun

(School of Computer,Guangdong University of Technology,Guangzhou 510006,China)

In this paper,an edge device interface based on NGOD and used for edge resources discovering,registering,managing and monitoring is designed and implemented,which helps digital TV equipment suppliers to develop the function requirement of edge resource management system in the interactive services.Edge equipment interacts with the ERM through the interface,and making the edge resources of the VOD system can be used reasonably and efficiently.The experimental results show that the EdgeQAM is mounted in Guangdong province network high-definition interactive platform successful.

NGOD framework;D6 interface;R6 interface;EdgeQAM;RTSP

TN949.197;TP37

A

【本文献信息】李超,刘怡俊.基于NGOD架构的VOD系统边缘设备接口设计[J].电视技术,2014,38(2).

广东省“省部产学研结合”项目(2012B091100363)

李 超(1987—),硕士生,主研计算机体系结构、计算机网络;

刘怡俊(1977—),硕士生导师,主研计算机体系结构、物联网等。

责任编辑:薛 京

2013-09-11

猜你喜欢

端口消息客户端
一种端口故障的解决方案
一张图看5G消息
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
端口阻塞与优先级
8端口IO-Link参考设计套件加快开发速度
消息
消息