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

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