胡 朋,李永濤,王志謙
(北京郵電大學a.網(wǎng)絡(luò)技術(shù)研究院;b.網(wǎng)絡(luò)與教育技術(shù)服務(wù)中心,北京 100876)
隨著時代的進步和社會的發(fā)展,人們對精神文化和信息的需求逐步增長,質(zhì)量要求越來越高,高清電視和數(shù)字電視的交互式服務(wù)正在成為服務(wù)提供商積極開展的業(yè)務(wù)。在HFC(Hybrid Fiber-Coaxial)網(wǎng)絡(luò)中,數(shù)字電視交互業(yè)務(wù)的不斷推廣,業(yè)務(wù)運營規(guī)模不斷擴大,使IPQAM數(shù)量不斷擴大[1];互聯(lián)網(wǎng)業(yè)務(wù)、SDV(Switched Digital Video)業(yè)務(wù)等新型業(yè)務(wù)的出現(xiàn),使IPQAM資源使用日趨復雜。因此邊緣資源管理系統(tǒng)(Eagle Resource Manager,ERM)的開發(fā)及使用勢在必行。
邊緣資源管理系統(tǒng)ERM,作為視頻點播等電視交互業(yè)務(wù)系統(tǒng)中的一個組件,主要用于管理和監(jiān)控每個會話(Session)所需的邊緣資源。它位于資源使用者會話管理系統(tǒng)(Session Manager,SM)和資源提供者IPQAM之間,在SM向ERM發(fā)起會話請求并提供對所需資源帶寬等要求和一系列候選QAM名字后,ERM要根據(jù)一定的算法為該會話分配一個QAM資源。ERM除了要為每個會話分配合適的邊緣資源,還要完成對邊緣設(shè)備的發(fā)現(xiàn)、注冊和統(tǒng)一管理。
整個系統(tǒng)在初始階段,或者在有新的邊緣資源接入系統(tǒng)時,ERM要能發(fā)現(xiàn)進入其控制范圍的邊緣資源,并通過與邊緣設(shè)備的交互接口了解該設(shè)備的能力及狀態(tài)信息,完成對QAM資源的注冊。對邊緣設(shè)備的統(tǒng)一管理主要體現(xiàn)在對資源各項信息的維護和管理,包括邊緣設(shè)備輸入和QAM節(jié)目輸出的對應(yīng)關(guān)系及每個會話的狀態(tài)等信息。邊緣資源管理系統(tǒng)還需要滿足一些必要的性能要求,比如在邊緣設(shè)備注冊完成后,ERM必須隨時監(jiān)控邊緣設(shè)備的狀態(tài),在邊緣設(shè)備出現(xiàn)突發(fā)狀況時應(yīng)及時做出應(yīng)對舉措,在分配資源時通過適當?shù)乃惴ūU线吘壴O(shè)備的負載平衡,以保證在大用戶量的情形下也可以盡可能地傳輸高比特率視頻流。
另外,當在交互系統(tǒng)中IPQAM資源數(shù)量過多時,為提高管理效率,可以設(shè)置ERM路由器(ERM Router),幫助SM選擇不同的ERM為其提供服務(wù)。在這種情況下,ERM還需要完成統(tǒng)計自身管理的所有邊緣資源數(shù)據(jù)并將其轉(zhuǎn)發(fā)給ERMR的工作。
2.1.1 ISA
交互服務(wù)架構(gòu)ISA(Interactive Services Architecture)[2],是美國有線運營商Time Warner Cable為以視頻點播(Video on Demand,VOD)為代表的交互式服務(wù)提出的網(wǎng)絡(luò)框架結(jié)構(gòu),是現(xiàn)行交互服務(wù)使用最廣泛的架構(gòu)。
ISA架構(gòu)中定義的主要模塊是業(yè)務(wù)管理系統(tǒng)BMS(Business Management System)和會話及資源管理系統(tǒng)SRM(Session and Resource Manager)[3],其中 SRM 負責邊緣資源的管理和分配。在會話網(wǎng)關(guān)(Session Gateway)向SRM發(fā)送SARR(Server Add Resource Request)提出資源請求后,SRM會按一定算法為會話分配QAM資源。在大多基于ISA架構(gòu)的交互式服務(wù)系統(tǒng)中,SRM對IPQAM資源的管理采用了靜態(tài)方式,即僅利用自身維護的邊緣資源信息對QAM進行分配和管理,而對被分配資源的實時狀態(tài)等信息不進行監(jiān)控。
2.1.2 NGOD
下一代交互電視架構(gòu)NGOD(Next Generation On Demand)[4]是美國有線運營商COMCAST公司提出的另一種交互式服務(wù)網(wǎng)絡(luò)框架結(jié)構(gòu)。NGOD架構(gòu)中為了更好的管理和分配邊緣資源,特意提出了ERM組件。該組件利用S6接口對SM提出的資源請求進行處理回應(yīng),在與邊緣資源之間借助D6接口發(fā)現(xiàn)注冊QAM資源,借助R6接口對邊緣資源進行動態(tài)分配。另外,NGOD中的ERM還定義了N接口,便于網(wǎng)絡(luò)運營商通過網(wǎng)絡(luò)管理工具對網(wǎng)絡(luò)進行管理。圖1為NGOD架構(gòu)中的邊緣組件架構(gòu)圖[5]。
圖1 NGOD邊緣架構(gòu)
ISA架構(gòu)中對邊緣資源分配的方案,由于放棄了與IPQAM資源的實時交互,在為會話提供資源時更快捷,但也正是由于缺少動態(tài)交互,若邊緣設(shè)備發(fā)生意外情況而SRM未監(jiān)測到,失效資源就可能被分配而導致錯誤。NGOD架構(gòu)標準中對邊緣架構(gòu)的設(shè)計,充分考慮了對邊緣資源的管理和監(jiān)控,并實現(xiàn)了對邊緣資源的動態(tài)分配,使系統(tǒng)中的QAM資源得到更好的管理和使用。
通過對比兩種交互式服務(wù)的架構(gòu),不難得出,NGOD架構(gòu)比ISA架構(gòu)在對邊緣資源管理上有很大的優(yōu)勢。雖然ISA的處理方案比NGOD更加快捷,但是在對邊緣設(shè)備的動態(tài)管理上不及NGOD考慮的周全。因此,在NGOD架構(gòu)的ERM基礎(chǔ)上對邊緣資源管理系統(tǒng)進行開發(fā)設(shè)計。在NGOD架構(gòu)中,ERM通過D6接口[6]完成對邊緣資源的發(fā)現(xiàn)和注冊,獲知邊緣資源的詳細信息,了解邊緣設(shè)備的實際拓撲結(jié)構(gòu),及時發(fā)現(xiàn)失效邊緣設(shè)備。下面主要介紹該接口的設(shè)計實現(xiàn)。
D6接口是基于VREP(Video Registration Protocol)協(xié)議(在TRIP協(xié)議[7]基礎(chǔ)上進行了必要的擴展)實現(xiàn)的。邊緣設(shè)備利用該接口向管理自身的ERM注冊更新各項邊緣資源信息,以方便ERM的管理和分配。D6接口消息的交互過程如圖2。
圖2 D6時序圖
VREP協(xié)議中包含4種消息:OPEN消息,UPDATE消息,KEEPALIVE消息,NOTIFACATION消息。OPEN消息用于初始化ERM和QAM間的TRIP會話;UPDATE消息用于邊緣設(shè)備向ERM報告參數(shù)信息;NOTIFACATION消息用于發(fā)現(xiàn)并報告錯誤;KEEPALIVE消息用于維持連接心跳。整個系統(tǒng)初始化時,每個邊緣設(shè)備都會處于空閑狀態(tài),一直試圖與管理自己的ERM建立TCP連接。ERM啟動后,D6接口在服務(wù)器端等待QAM資源的連接請求,IPQAM主動發(fā)起連接請求,與ERM建立連接,并進入已連接狀態(tài)。之后的消息交互流程如下:
1)處于已連接狀態(tài)的邊緣資源向ERM發(fā)送第一個消息——OPEN消息,消息體內(nèi)為QAM資源與ERM需要協(xié)商的一些參數(shù)信息,比如版本號、超時時間、支持路由類型等。消息發(fā)送后,邊緣設(shè)備等待ERM的回應(yīng)消息。
2)ERM在收到OPEN消息,根據(jù)自身情況,同樣通過D6接口向該QAM資源發(fā)送含協(xié)商參數(shù)信息的OPEN消息。
3)邊緣設(shè)備收到回復的OPEN消息后,發(fā)送KEEPALIVE消息表明協(xié)商信息已經(jīng)收到。通過管理系統(tǒng)和邊緣設(shè)備互發(fā)的OPEN消息,一些需要協(xié)商的參數(shù)得以商定,ERM和IPQAM都會了解并記錄對方的基本信息。
4)雙方協(xié)商結(jié)束后,ERM會等待邊緣設(shè)備向其報告邊緣資源的詳細信息,邊緣設(shè)備中的每個QAM資源,會逐一向ERM發(fā)送UPDATE消息,消息體內(nèi)包含該QAM資源的全部基本信息,這些信息將來會被ERM用來作為分配QAM的依據(jù)。ERM收到UPDATE消息后,會將消息體內(nèi)的信息保存至數(shù)據(jù)庫。
5)每當ERM收到邊緣設(shè)備發(fā)過來的消息(NOTIFACATION消息除外),如果能正確解析消息,并且消息體內(nèi)的參數(shù)沒有問題,它都會以KEEPALIVE消息進行回應(yīng)。在邊緣設(shè)備的所有QAM都向ERM報告完畢自己信息之后,如果沒有其他消息要發(fā)送,邊緣設(shè)備和ERM會在規(guī)定時限內(nèi)互相發(fā)送KEEPALIVE消息來保持心跳,以保證他們之間連接的正常。
當然,在邊緣設(shè)備參數(shù)等信息發(fā)生改變后,IPQAM會利用其與ERM之間維護的連接向邊緣資源管理系統(tǒng)再次發(fā)送UPDATE消息報告改變后的信息。另外,ERM和邊緣設(shè)備在收發(fā)消息過程中當發(fā)現(xiàn)信息有誤時,任何一方都會隨時利用NOTIFACATION消息報告錯誤并斷連?;ハ喟l(fā)送消息的時間間隔限制是雙方在OPEN消息中商定的超時時間HoldTime的1/3,若任何一方在規(guī)定時間內(nèi)沒有收到心跳消息,會再次發(fā)送KEEPALIVE消息,但在重發(fā)3次后還是沒有收到回應(yīng),則可以認定對方設(shè)備出現(xiàn)問題,即刻斷連,回到初始狀態(tài)。
根據(jù)D6接口功能,將其劃分成消息解析模塊、組包模塊和主流程模塊分別實現(xiàn)。
2.3.1 消息解析模塊
該模塊主要負責對邊緣資源發(fā)送來的消息進行解析。通過解析,提取出所收到消息的所有信息,將其放入預(yù)先定義的結(jié)構(gòu)體內(nèi)以供主流程處理。在解析過程中如果遇到消息體錯誤等問題,向主流程匯報錯誤原因,方便主流程做出相應(yīng)處理。
根據(jù)VREP協(xié)議,D6接口可能收到的消息類型有4種:OPEN消息、UPDATE消息、KEEPALIVE消息和NOTIFACATION消息。解析模塊首先根據(jù)消息頭中的Type字段,判斷要解析消息的種類,然后將其交給相應(yīng)的解析函數(shù)處理。OPEN消息體內(nèi)除了包含交互雙方需要協(xié)商的參數(shù)信息,如超時時間HoldTime、協(xié)議版本Version等,還包括邊緣設(shè)備向ERM匯報的設(shè)備信息,如其支持的路由類型Route Types Supported、收發(fā)能力Send Receive Capability等。UPDATE消息體內(nèi)包含邊緣資源的詳細信息(如QAMNames,AvailableBandwidth,QAMParameters,UDPMap 等)。NOTIFACATION消息體內(nèi)包含錯誤代碼、子代碼及錯誤原因描述等信息。KEEPALIVE消息體是一個只有3 byte的短消息。
2.3.2 組包模塊
該模塊主要負責依據(jù)VREP協(xié)議規(guī)定將ERM準備發(fā)送給邊緣QAM的信息組織成合法的消息體。D6接口需要發(fā)送的消息類型可能有3種:OPEN消息、KEEPALIVE消息和NOTIFACATION消息。組包模塊根據(jù)要打包消息的不同種類分別調(diào)用相應(yīng)的組包函數(shù)。具體打包過程依據(jù)協(xié)議規(guī)定操作。
2.3.3 主流程模塊
該模塊主要負責與邊緣設(shè)備建立連接,實現(xiàn)上文提到的消息交互流程,合理應(yīng)對可能出現(xiàn)的錯誤:
1)啟動TCP服務(wù)端,等待邊緣設(shè)備的連接。
2)接收邊緣設(shè)備連接請求,派生線程與該邊緣設(shè)備進行交互(先生成子進程,子進程再派生線程,具體策略不作介紹),主進程繼續(xù)監(jiān)聽。
3)接收發(fā)自邊緣QAM的消息,調(diào)用消息解析模塊對其進行解析。連接建立后的第一個消息應(yīng)該是OPEN消息,解析結(jié)果若有問題,斷開連接。
4)根據(jù)解析的OPEN消息體內(nèi)的信息與ERM自身的情況,決定協(xié)商參數(shù),調(diào)用組包模塊打包一個OPEN消息,發(fā)送給邊緣設(shè)備。
5)收到回復的KEEPALIVE消息后,同樣以KEEPALIVE消息回應(yīng)。
6)循環(huán)等待接收邊緣設(shè)備向ERM發(fā)送的UPDATE消息,調(diào)用解析模塊將攜帶信息解出,同時組包KEEPALIVE消息進行回應(yīng)。
7)若解析到的消息為KEEPALIVE消息,同樣組包KEEPALIVE消息進行回應(yīng)(保持心跳)。
8)無論何時,一旦發(fā)現(xiàn)解析的消息有誤,即刻組包NOTIFACATION消息(由錯誤原因確定錯誤代碼)發(fā)送給邊緣設(shè)備,并斷開連接。如果收到邊緣設(shè)備發(fā)送的NOTIFACATION消息,同樣斷開連接,查看錯誤原因。
NGOD架構(gòu)中ERM在管理邊緣資源方面的實現(xiàn)方案最大的缺陷在于,由于考慮到邊緣資源管理系統(tǒng)要對邊緣資源實施動態(tài)管理和分配,NGOD規(guī)定ERM和邊緣設(shè)備之間要保持長連接。因此,ERM不但要維護各類會話信息,記錄邊緣設(shè)備輸入和QAM節(jié)目輸出的對應(yīng)關(guān)系,還要負責維護管理與眾多邊緣設(shè)備之間的連接,維護這些長連接的巨大開銷使服務(wù)器壓力很大,導致一個ERM設(shè)備支持的QAM管理數(shù)量有限。
ERM與邊緣設(shè)備保持長連接主要有兩個用途:其一,兩者保持心跳可以保證及時發(fā)現(xiàn)錯誤的存在。假設(shè)有一個邊緣設(shè)備突然失效,ERM會通過心跳停止來判斷該設(shè)備或與該設(shè)備連接的網(wǎng)絡(luò)出現(xiàn)了致命的問題,立即做出為使用該邊緣設(shè)備的會話更改資源的補救措施,同時在數(shù)據(jù)庫里做好記錄,防止再將其分配給其他會話。實際工程中,ERM還會根據(jù)長連接的斷開及時定位出現(xiàn)問題的邊緣設(shè)備,以方便工作人員整修。其二,兩者保持長連接,在邊緣資源參數(shù)發(fā)生改變時,邊緣設(shè)備可以更方便快捷地使用該連接向ERM匯報,使ERM維護的邊緣資源信息及時可靠。若為了減輕ERM壓力而不使用長連接,同時又要盡量實現(xiàn)以上兩個功能,可以考慮邊緣設(shè)備向ERM定時報告和修改時報告相結(jié)合的機制。
所謂定時報告,即邊緣設(shè)備定時向ERM發(fā)送消息。因為要放棄長連接,為了保證ERM管理的QAM資源都是在線的,邊緣設(shè)備需要每隔一定時間向ERM發(fā)送KEEPALIVE消息,此時間間隔的選擇可以根據(jù)開銷最優(yōu)化計算得出。為了減少頻繁建立關(guān)閉連接的開銷,定時報告消息可選擇利用UDP協(xié)議傳輸。修改時報告是指在邊緣設(shè)備注冊結(jié)束后,TCP連接可以斷開。當邊緣設(shè)備參數(shù)信息改動后需要再次發(fā)送UPDATE消息時,重新與ERM建立連接。
要實現(xiàn)以上機制,需要對D6接口和VREP協(xié)議做適當?shù)男薷?。首先,VREP協(xié)議的消息流程有一定改動:在邊緣設(shè)備匯報完更新信息后(即發(fā)完UPDATE消息后),不需要持續(xù)發(fā)送KEEPALIVE消息保持心跳,而是斷開連接。在此機制下,TCP服務(wù)器在與邊緣QAM建立連接后,收到的第一個消息不一定是OPEN消息,所以服務(wù)器的主流程模塊需要做適當修改:收到第一個消息后,若解析為OPEN消息,則打包OPEN消息回應(yīng),若為其他消息(NOTIFACATION消息除外),則回應(yīng)KEEPALIVE消息。因為定時報告消息采用UDP協(xié)議傳輸,ERM可以啟動一個UDP服務(wù)器接收消息。由于ERM端采用了TCP服務(wù)器和UDP服務(wù)器分別管理邊緣設(shè)備的注冊更新和在線維護,這就帶來了對設(shè)備超時時間的管理問題??梢圆捎脙蓚€服務(wù)器共同維護一個超時時間表的方法來解決該問題。ERM中建立一張包含所有其管理的QAM的表用來記錄超時時間,每個邊緣設(shè)備表項都擁有一個定時器。在邊緣設(shè)備向ERM注冊第一次建立連接時,TCP服務(wù)器將該設(shè)備加入到邊緣設(shè)備表,并啟動定時器。每次TCP服務(wù)器或者UDP服務(wù)器接收到一個邊緣設(shè)備發(fā)來的消息時,都要將設(shè)備表中該邊緣資源的定時器清零。如果設(shè)備表中有表項的定時器到了規(guī)定的超時時間,即認定該設(shè)備連接出現(xiàn)錯誤。
以上修改方案適用于邊緣設(shè)備出錯概率相對較低的系統(tǒng)中應(yīng)用。該方案的缺陷是一旦邊緣設(shè)備或者網(wǎng)絡(luò)出現(xiàn)異常,用戶受到的影響時間可能會比NGOD架構(gòu)規(guī)定的方案長,而它的優(yōu)勢在于很大程度上減輕了ERM的管理壓力,增加了ERM管理QAM資源的數(shù)量,使邊緣系統(tǒng)更加輕便。
數(shù)字電視互動服務(wù)中,由于ERM的引入,大量的邊緣資源得到了更好的管理和利用,這使整個邊緣系統(tǒng)運行更有序、更方便。基于NGOD架構(gòu)的ERM設(shè)計實現(xiàn)方案,尤其是在邊緣資源管理方面,相比于ISA架構(gòu)來說,提高了對邊緣資源管理的準確性和有效性,為將來不斷擴展的數(shù)字電視互動服務(wù)提供了邊緣設(shè)備方面的支持。
[1]甘育裕,商彬,陳銘灝.視頻點播系統(tǒng)核心設(shè)備研究與設(shè)計[J].電視技術(shù),2007,31(8):63 -64.
[2]Time Warner Cable.Pegasus interactive services architecture:Version 1.4[EB/OL].[2010 -10 -30].http://www.interactiveservices.org.
[3]Time Warner Cable.Pegasus Overall Flow:Movie Delivery:Version 1.0[EB/OL].[2010 -10 -30].http://www.interactiveservices.org.
[4]Comcast.NGOD:overall architecture:version 2.0[S].2006.
[5]Comcast.NGOD:edge architecture:version 2.0[S].2006.
[6]Comcast.NGOD:service discovery & registration interface:version 2.0[S].2006.
[7]ROSENBERG J,SALAMA H,SQUIRE M.Telephony routing over IP[EB/OL].[2010 -10 -30].http://www.ietf.org/rfc/rfc3219.txt.