萬(wàn)暢 李劍鋒 金晶
(1.廣東科學(xué)技術(shù)職業(yè)學(xué)院 廣東省珠海市 519090 2.廣工揭陽(yáng)理工學(xué)院(籌) 廣東省揭陽(yáng)市 522000)
(3.珠海市斗門區(qū)文化廣電旅游體育局旅游促進(jìn)室 廣東省珠海市 519090)
隨著網(wǎng)絡(luò)、多媒體技術(shù)的飛速發(fā)展,人們對(duì)音視頻指揮調(diào)度系統(tǒng)不斷提出新的功能需求,甚至提出新的部署設(shè)想,從而導(dǎo)致音視頻指揮調(diào)度系統(tǒng)的業(yè)務(wù)功能、媒體處理方式和系統(tǒng)部署形式不斷發(fā)生變化,傳統(tǒng)的業(yè)務(wù)、控制、媒體面集中處理的模式早已不能跟上新業(yè)務(wù)的發(fā)展速度和需求,因此很多音視頻指揮調(diào)度系統(tǒng)也在不斷地學(xué)習(xí)軟交換甚至IMS(IP Multimedia Subsystem)的架構(gòu)模式,功能網(wǎng)元不斷實(shí)體化、網(wǎng)元不斷分布化,將業(yè)務(wù)、控制、媒體徹底分離,以達(dá)到最大的架構(gòu)靈活性。
本項(xiàng)目中的音視頻指揮調(diào)度系統(tǒng)正是一個(gè)基于IMS 架構(gòu)形式的音視頻綜合指揮調(diào)度系統(tǒng),將上層業(yè)務(wù)分解為很多功能內(nèi)聚的應(yīng)用服務(wù)器AS(Application Server),底層媒體由統(tǒng)一的媒體處理服務(wù)器MRS(Media Resource Server)處理,其中MRS 內(nèi)部又按控制與媒體分離進(jìn)一步細(xì)化為MRFC(Multimedia Resource Function Control) 網(wǎng)元和多個(gè)分布的MRFP(Multimedia Resource Function Processor)網(wǎng)元。為了將來(lái)業(yè)務(wù)的統(tǒng)一拓展,抽象定義了MRS 和AS 間的業(yè)務(wù)控制接口,使所有AS 都可按統(tǒng)一的接口訪問(wèn)和使用媒體資源,并向AS 屏蔽了底層具體媒體處理的細(xì)節(jié),將媒體處理與業(yè)務(wù)控制徹底解耦,最大可能適應(yīng)上層業(yè)務(wù)、或底層媒體處理硬件設(shè)備(或板卡)的變化。然而在該分層架構(gòu)設(shè)計(jì)中,MRFC 作為一個(gè)中間子網(wǎng)元,不僅要適應(yīng)上層業(yè)務(wù)(AS)的快速發(fā)展變化,也要不斷適應(yīng)底層媒體處理設(shè)備(MRFP)快速發(fā)展變化,因此對(duì)MRFC 網(wǎng)元的設(shè)計(jì)和實(shí)現(xiàn)都提出了極高可擴(kuò)展的要求。本文檔主要描述該項(xiàng)目中如何在MRFC 網(wǎng)元上設(shè)計(jì)靈活的業(yè)務(wù)框架,以滿足整個(gè)音視頻指揮調(diào)度系統(tǒng)對(duì)上述擴(kuò)展性的需求。
本系統(tǒng)中主要參考業(yè)界已成熟應(yīng)用的X/Open DTP 分布式事務(wù)模型,以及當(dāng)前軟件業(yè)界流行的微服務(wù)架構(gòu)、智適應(yīng)和組件化思想,結(jié)合本項(xiàng)目特點(diǎn),對(duì)分布式事務(wù)模型進(jìn)行適度的改進(jìn),提出了一套具有一定智適應(yīng)的媒體處理框架,并使用面向?qū)ο蟮姆椒ㄟM(jìn)行實(shí)現(xiàn),在項(xiàng)目實(shí)施中取得了滿意的效果。
本系統(tǒng)中主要參考業(yè)界已成熟應(yīng)用的X/Open DTP 分布式事務(wù)模型,以及當(dāng)前軟件業(yè)界流行的微服務(wù)架構(gòu)、智適應(yīng)和組件化思想,結(jié)合本項(xiàng)目特點(diǎn),對(duì)分布式事務(wù)模型進(jìn)行了適度的改進(jìn)。

圖1
X/Open DTP(X/Open Distributed Transaction Processing Reference)是X/Open 組織織 (即現(xiàn)在的 OpenGroup)定義的一套被廣泛接受的分布式事務(wù)處理模型,在X/Open DTP 模型中定義了如下三類角色:
AP(Application Program):應(yīng)用程序,主要是定義事務(wù)邊界以及那些組成事務(wù)的特定于應(yīng)用程序的操作。RM(Resouces Manager):資源管理器,管理一些共享資源的自治域,如提供對(duì)諸如數(shù)據(jù)庫(kù)之類的共享資源的訪問(wèn)。TM(Transaction Manager):事務(wù)管理器,管理全局事務(wù),協(xié)調(diào)事務(wù)的提交或者回滾,并協(xié)調(diào)故障恢復(fù)。其中AP 通過(guò)TX 接口與TM 交互,開始或提交全局事務(wù),TM給事務(wù)分配標(biāo)識(shí)符,與RM 間使用XA 規(guī)范(X/Open 提出的分布式事務(wù)處理規(guī)范,分布事務(wù)處理的工業(yè)標(biāo)準(zhǔn)),通過(guò)兩階段提交協(xié)議(2PCP,two Phase Commit Protocol)來(lái)完成一個(gè)全局事務(wù)。2PCP由兩個(gè)階段組成,準(zhǔn)備階段和提交階段,其基本思想是:當(dāng)且僅當(dāng)全部子事務(wù)均提交時(shí),全局事務(wù)才能提交,如果有任何一個(gè)子事務(wù)不能正常提交,則全部子事務(wù)都要終止。
微服務(wù)是一種新型架構(gòu)風(fēng)格,受到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注。微服務(wù)提倡將應(yīng)用程序劃分為一組細(xì)粒度的服務(wù),以實(shí)現(xiàn)對(duì)解決方案的解耦,服務(wù)間采用輕量級(jí)的通信機(jī)制進(jìn)行交互,通常,這些細(xì)粒度的微服務(wù)是具有單一職責(zé)的小程序,能夠被獨(dú)立地開發(fā)、測(cè)試、部署和擴(kuò)展。
與傳統(tǒng)單體架構(gòu)相比,微服務(wù)架構(gòu)具有高維護(hù)性、高擴(kuò)展性、高適應(yīng)性、去中心化、容器化的運(yùn)行環(huán)境等特征,能滿足大規(guī)模分布式應(yīng)用對(duì)可擴(kuò)展性、去耦合的需求,近年來(lái)得到了越來(lái)越廣泛的應(yīng)用。
本質(zhì)上,微服務(wù)架構(gòu)思想來(lái)源于面向服務(wù)的架構(gòu)(Service Oriented Architecture, SOA)[6],是對(duì)SOA 架構(gòu)的二次迭代,其目的是去除SOA 中不必要的復(fù)雜程度,進(jìn)一步專注于實(shí)現(xiàn)單一功能的細(xì)粒度服務(wù)。SOA 將服務(wù)端應(yīng)用視為多個(gè)粗粒度服務(wù)的組合,各個(gè)服務(wù)可以分布部署在不同地理位置的容器中,服務(wù)間通過(guò)企業(yè)服務(wù)總線進(jìn)行通信組合并共享同一個(gè)數(shù)據(jù)庫(kù);微服務(wù)架構(gòu)則服務(wù)端應(yīng)用視為多個(gè)細(xì)粒度微服務(wù)的組合,每個(gè)微服務(wù)是高內(nèi)聚的小程序,可擁有自己私有的數(shù)據(jù)庫(kù)并在其獨(dú)立的容器中運(yùn)行,微服務(wù)間通過(guò)輕量級(jí)協(xié)議進(jìn)行通信。
組件化是一種高效的處理復(fù)雜應(yīng)用系統(tǒng),更好地明確各功能模塊的作用的設(shè)計(jì)、開發(fā)方式,其目的也是為了更好地進(jìn)行功能解耦,把復(fù)雜系統(tǒng)拆分成多個(gè)功能內(nèi)聚的組件,分離組件責(zé)任和邊界,便于獨(dú)立升級(jí)和維護(hù)。單體架構(gòu)的組件化是通過(guò)模塊來(lái)實(shí)現(xiàn),而微服務(wù)架構(gòu)的組件化通過(guò)高度解耦的細(xì)粒度微服務(wù)來(lái)實(shí)現(xiàn)。
本項(xiàng)目中,MRFC 網(wǎng)元以X/Open DTP 事務(wù)模型為基礎(chǔ),將該模型中的事務(wù)管理器(TM)和資源管理器(RM)抽象化為處理框架,并進(jìn)一步將微服務(wù)和組件化思想應(yīng)用于資源管理器部分,把各種媒體處理功能組件化。分布式事務(wù)處理部分分為4 層,資源和組件管理層包括資源管理器、媒體組件代理工廠、媒體組件代理;事務(wù)管理層即分布式事務(wù)管理包括事務(wù)管理工廠、事務(wù)管理器、事務(wù)存儲(chǔ)器;協(xié)議層用于處理分布式通信協(xié)議,包括業(yè)務(wù)接口自解析容器、媒體組件接口自解析、XML 通用協(xié)議、JSON 通用協(xié)議;網(wǎng)絡(luò)層包括TCP、UDP 協(xié)議等。
為最大可能地實(shí)現(xiàn)框架的可擴(kuò)展性,滿足不同AS(應(yīng)用服務(wù)器)、不同媒體組件的擴(kuò)展或更新,框架中“業(yè)務(wù)接口自解析容器”、“媒體組件接口自解析容器”、“媒體組件代理工廠”、“媒體組件代理”功能支持通過(guò)注冊(cè)方式進(jìn)行擴(kuò)展,通過(guò)這幾個(gè)模塊的配合,既能滿足AS 網(wǎng)元和媒體組件的擴(kuò)展,也能滿足其上接口功能的擴(kuò)展。其中事務(wù)管理器完成事務(wù)子任務(wù)的分解,按兩階段提交協(xié)議的思想提交任務(wù):首先將子任務(wù)提交給合適的媒體組件代理進(jìn)行預(yù)處理,媒體組件代理能夠根據(jù)媒體組件具體實(shí)現(xiàn)方式,將子任務(wù)進(jìn)一步分解為一個(gè)或多個(gè)動(dòng)作,并將這些動(dòng)作反向登記到事務(wù)存儲(chǔ)中;每個(gè)子任務(wù)登記成功后,事務(wù)管理器正式通知對(duì)應(yīng)的媒體組件代理執(zhí)行該子任務(wù),此時(shí)媒體組件代理會(huì)將此子任務(wù)分解的動(dòng)作轉(zhuǎn)的為合適的媒體組件接口協(xié)議向各媒體組件發(fā)送動(dòng)作請(qǐng)求,并將各動(dòng)作執(zhí)行結(jié)果反饋給事務(wù)管理器,由事務(wù)管理器根據(jù)事務(wù)規(guī)則判斷事務(wù)執(zhí)行結(jié)果。
在此項(xiàng)目中,考慮到項(xiàng)目業(yè)務(wù)方的實(shí)際需求和設(shè)計(jì)要求,對(duì)X/Open DTP 模型進(jìn)行了如下改進(jìn):
(1)對(duì)事務(wù)管理按層級(jí)進(jìn)行細(xì)化[6],擴(kuò)展出Task(子任務(wù))、Action(動(dòng)作)概念,以Task(子任務(wù))為單位進(jìn)行兩階段提交,同時(shí)允許同一個(gè)Action 歸屬于不同的Task(子任務(wù)),以便于外部媒體組件靈活處理,極大地增加了媒體處理設(shè)備(板卡)的接口靈活性,減少耦合,提高可擴(kuò)展性。
在圖1 中,動(dòng)作(Action)1、動(dòng)作(Action)2、動(dòng)作(Action)3 同時(shí)歸屬在不同的子任務(wù)(Task)1、子任務(wù)(Task)2、子任務(wù)(Task)3 中。
(2)對(duì)事務(wù)失敗結(jié)果的判定規(guī)則進(jìn)行改進(jìn)[5]。根據(jù)項(xiàng)目的需要,以及AS 業(yè)務(wù)接口協(xié)議的設(shè)計(jì)要求,將事務(wù)(Transaction)中各子任務(wù)(Task)間的關(guān)聯(lián)關(guān)系適度進(jìn)行弱化,保留各子任務(wù)(Task)間的順序依賴性,但去除整個(gè)事務(wù)(Transaction)的原子性要求,即允許事務(wù)中的前面部分子任務(wù)執(zhí)行成功,MRFC 網(wǎng)元向上層AS 網(wǎng)元返回執(zhí)行成功的子任務(wù)個(gè)數(shù)。這種改進(jìn)可以給上層AS 提供更靈活的子任務(wù)組織方式,也給上層AS 提供更大的失敗處理策略。
(3)將X/Open DTP 模型中的AP(Application Program)應(yīng)用程序部分向上層AS 網(wǎng)元遷移,同時(shí)將MRFC 網(wǎng)元與這些AS 網(wǎng)元間的接口抽象化、容器化,最大地提供框架的擴(kuò)展性。后續(xù)可以根據(jù)與AS 網(wǎng)元間的協(xié)議擴(kuò)展,在此容器部分增加或修改對(duì)應(yīng)的事務(wù)(Transaction)、子任務(wù)(Task)定義和協(xié)議自解析功能代碼,即能提供新的業(yè)務(wù)接口功能。
(4)結(jié)合微服務(wù)和組件化思想,將媒體處理設(shè)備(板卡)組件化,框架中只提供抽象的資源管理處理框架,具體的媒體處理設(shè)備可以通過(guò)相應(yīng)的組件工廠和組件代理注冊(cè)到資源管理部分中,以實(shí)現(xiàn)資源組件的擴(kuò)展。
(5)智適應(yīng):本框架通過(guò)“業(yè)務(wù)接口自解析容器”、“媒體組件自解析容器”、“媒體組件代理工廠”、“媒體組件代理”等模塊結(jié)合,一起提供一套抽象的事務(wù)、子任務(wù)、動(dòng)作處理流程,使本框架能夠透明地處理媒體事務(wù),也即使框架能夠具備一定的智適應(yīng)能力,能夠適配各種具體的業(yè)務(wù)接口和媒體組件接口,達(dá)到上下接口的智適應(yīng)和自擴(kuò)展效果。
X/Open DTP 分布式事務(wù)模型、微服務(wù)和組件化等思想都是業(yè)界比較成熟的軟件思想和技術(shù),通過(guò)將這些成熟的思想和技術(shù)應(yīng)用于項(xiàng)目中,并針對(duì)項(xiàng)目的實(shí)際需求進(jìn)行合理的優(yōu)化、改進(jìn),實(shí)現(xiàn)了一套具有一定智適應(yīng)能力的媒體事務(wù)處理框架,并在實(shí)際項(xiàng)目應(yīng)用中取得了很好的效果,極大地提高了系統(tǒng)的靈活性和可擴(kuò)展性,為項(xiàng)目的持續(xù)發(fā)展作出了極大的貢獻(xiàn),也達(dá)到了一定的經(jīng)濟(jì)效果,值得進(jìn)一步在實(shí)際應(yīng)用中研究探索;當(dāng)然,在實(shí)施過(guò)程中也發(fā)現(xiàn)了一些問(wèn)題,需要我們繼續(xù)不斷地加以完善改進(jìn)。