周冰 侯位昭 李飛 焦立彬
摘要:介紹了在企業級應用中融合、模塊化和動態熱部署的重要性,研究了OSGi服務組件模型,基于OSGi的高度模塊化和動態化的優點,結合支持網頁瀏覽器進行實時音視頻通話的網頁實時通信(WebRTC)技術,將傳統通信技術與現代信息技術相融合,設計實現了集語音、視頻、會議、位置及通知(即時消息、短數據和短報文)等5大類基礎支撐服務為一體的融合通信平臺。
關鍵詞:OSGi;融合通信;模塊化;WebRTC
中圖分類號:TP312文獻標志碼:A文章編號:1008-1739(2019)09-58-4
0引言
目前,在政府、公安、人防和電力等眾多行業領域的信息系統建設過程中,對通信和信息技術的混合應用成為了一個基本需求[1]。而傳統的基礎通信能力的建設涉及到電信設備采購、公網電信接入和交換業務處理等眾多專業領域,絕大多數行業信息化軟件企業精通的是行業業務,對于通信能力建設并不擅長。隨著融合通信技術的發展,以SDK/API的方式將基礎通信能力對外開放,使得專注于行業業務開發的軟件企業以最快速度、最低成本實現自身業務的電信級通信能力。另外,鑒于上述行業對穩定性的特殊要求,上線系統不間斷運行也是一個必備條件。而隨著行業業務的快速發展以及信息化的快速更迭,用戶系統不可避免地需要升級換代,有些系統更新相當頻繁,這與系統不間斷運行產生了必然矛盾。因此,在業務系統的設計過程中,對可擴展性、可維護性、熱部署和熱更新等提出了更高的要求。
1基本概念
1.1面向Java的動態模塊化系統OSGi
OSGi是一個基于Java的服務平臺規范,其目標是被需要長時間運行、動態更新、對運行環境破壞最小化的系統所使用。OSGi技術提供允許應用程序使用精煉、可重用以及可協作的組件構建的標準化原語,這些組件能夠組裝進一個應用和部署中。OSGi規范的核心組件(Bundle)是OSGi框架,為應用程序(組件)提供了一個標準環境。
遵循OSGi規范的平臺核心可動態更改運行狀態和行為。在OSGi框架中,每一個Bundle實際上都是可熱插拔的,因此,對一個特定的Bundle進行修改不會影響到容器中的所有應用,運行的大部分應用還是可以照常工作。基于OSGi框架的系統可分可合,其結構的優勢使得具體的Bundle不影響全局,不會因為局部的錯誤導致全局系統崩潰。同時OSGi框架本身可復用性極強,很容易構建真正面向接口的程序架構,每一個Bundle都是一個獨立可復用的單元。OSGi層次結構[2]如圖1所示。
1.2網頁實時通信WebRTC
WebRTC是在Web瀏覽器里面引入實時通信,包括音視頻通話等,實現了基于網頁的語音/視頻通話,目的是無插件實現Web端的實時通信能力。WebRTC提供了視頻會議的核心技術,主要包括視頻的采集、編解碼、網絡傳輸和展示等功能,并且支持跨平臺(包括Linux,Windows,Mac,Android等)。
WebRTC技術的主要優點有:①WebRTC核心模塊內置于Chrome和以Chrome為內核的瀏覽器中,用戶不需要使用任何插件就可以通過瀏覽器實現音視頻通話;②強大的NAT穿越能力[3],包含了使用STUN[4],ICE[5],TURN,RTP-over-TCP的關鍵NAT和防火墻穿透技術,并支持代理。
2平臺設計
2.1平臺架構
基于OSGi架構的融合通信平臺作為一種支撐型業務平臺,采用分層、模塊化設計思路進行總體架構設計,如圖2所示。
2.1.1 SDK層
以SDK的形式對上層業務應用系統暴露平臺的通信和信息能力,供業務系統嵌入調用。平臺SDK開發包支持多種平臺(Android,IOS,Windows等)。
2.1.2接口層
通過集成開源框架Jersey RESTful,實現了JAX-RS(JSR311&JSR339)規范。提供RESTful風格[6]的調用API和基于WebSocket的推送API[7],以API的形式為SDK層和上層應用系統提供融合通信能力。
2.1.3核心層
基于模塊化技術,將平臺功能組件化,實現功能插件的定制組合和熱插拔能力。通過定義插件開發規范與標準接口,平臺核心層可以加載運行所有滿足規范的插件,插件通過事件與服務總線進行平臺內部的服務發布與事件訂閱,功能間交互完全采用SOA的方式,保證系統的低耦合性。
2.1.4業務層
將統一通信子系統的音視頻功能、會議控制功能以及統一信息系統的位置、短數據類功能封裝成多個業務邏輯插件,通過平臺核心模塊提供的插件化加載能力,將業務邏輯插件掛接在平臺核心模塊的事件與服務總線上,提供業務邏輯能力給接口層。
2.1.5接入層
支撐層和業務層之間的一個紐帶,對下兼容支撐層多種多樣的服務協議(UDP/TCP,WebService,HTTP接口,SIP協議等),對上以標準插件的形式掛接到平臺核心模塊的事件與服務總線上,通過標準OSGi插件接口的方式與業務層進行業務交互,有效保證了對支撐層豐富的支撐服務的兼容性和擴展性。
2.1.6支撐層
平臺運行的基礎,為平臺業務提供支持能力,由一系列的服務設備組成,通過平臺核心層的支撐服務配置管理接入模塊,將每個支撐服務的服務運行狀態、日志、告警、配置接口和業務能力暴露在總線上,由相應的管理模塊和業務模塊獲取相應的信息進行處理和調用。
2.2功能設計
融合通信平臺對外提供的主要功能包括以下幾個。
①語音類:面向普通電話、PDT終端、SIP軟終端等通信終端發起語音呼叫、接聽語音呼叫、拒絕接聽語音呼叫、掛斷已經接聽的語音呼叫、呼叫轉移、呼叫等待和三方通話等。
②視頻類:面向視頻話機、SIP視頻終端、視頻監控終端等終端設備發起視頻呼叫、接聽視頻呼叫、拒絕視頻呼叫、掛斷已經接聽的視頻呼叫和視頻轉語音呼叫等功能。
③會議類:語音會議、視頻會議、會議管理、獲取(釋放)控制權限和會場控制能力等。
④位置類:北斗定位、GPS定位以及電子圍欄、虛擬圍欄等位置類應用。
⑤通知類:即時消息、短信、北斗短報文、PDT短消息、TTS文本轉語音和錄音等文本類操作功能。
3主要子系統實現
3.1平臺核心子系統
采用基于OSGi規范的插件式架構Apache Filex,實現微內核和插件架構,以允許在運行時刻獲得好的模塊化和動態組裝特性。平臺核心子系統由內核、公共基礎服務模塊和管理模塊組成,如圖3所示。
①平臺內核:采用OSGi標準的插件加載控制核心,提供功能插件的動態加載發布能力、功能插件的生命周期管理以及事件與服務總線能力,為平臺加載的插件提供信息交互、服務能力暴露、事件注冊與訂閱等功能。平臺內核的動態加載發布能力使系統具備了運行中熱更新的能力,保證了系統的不間斷運行。
②平臺公共基礎服務模塊:提供公用的基礎服務,主要包括統一的Web容器和集中存儲服務。其中Web容器基于Apache Felix HTTP Service解決方案,通過Felix發布Web容器能力;集中存儲提供平臺內部業務需要的業務數據存儲查詢能力,為平臺各模塊提供數據結構定義,并在總線上提供相應的數據操作服務,對數據庫集中管控。
③管理模塊:為平臺提供統一運維、狀態監測、功能配置、日志管理、告警管理、用戶管理、安全管理和許可管理的功能。所有的管理模塊均為平臺管理插件,依托平臺核心啟動運行。通過平臺提供的事件與服務總線與各個業務插件、接入插件進行數據提取與交互操作。
3.2統一通信子系統
主要提供視頻、音頻、會議3大類通信功能以及有線、無線、視頻監控等多種制式通信系統的融合能力,以插件的模式掛接到平臺核心子系統的事件與服務總線上。其中插件包括接口層的統一REST接口插件和統一WebSocket推送接口插件,業務層中的呼叫控制插件、會議控制插件、視頻監控插件、接入層的軟綜通接入插件、28181網關接入插件、H5-VoIP接入插件等。統一通信子系統的SDK層封裝了以WebRTC技術和SIP協議為核心的H5-VoIP,用于直接處理音視頻流媒體傳輸、控制協議以及實現用戶媒體視窗功能;封裝了接口層中REST接口和WebSocket接口中的音視頻以及會議控制功能。統一通信子系統如圖4所示。
3.3統一信息子系統
主要提供即時消息、短信、北斗短報文、PDT短消息和北斗/GPS/PDT位置應用等信息類功能。整體以插件模式掛接到平臺核心子系統的事件與服務總線上,其中插件包括接口層的統一REST接口插件和統一WebSocket推送接口插件、業務層中的通信錄插件、位置插件、短數據插件、即時消息群組插件、接入層的即時消息接入插件、短信接入插件、GPS/北斗接入插件等。統一信息子系統的SDK層封裝了以WebSocket技術和XMPP協議為核心的即時消息客戶端,用于直接處理即時消息的傳輸、控制協議;封裝了接口層中REST接口和WebSocket接口中的位置、短數據等功能。統一信息子系統如圖5所示。
行業應用軟件開發用戶通過統一通信子系統和統一信息子系統獲取基礎通信信息能力只需以下幾步。
①在用戶系統中引入融合通信平臺對外提供統一地址,系統將自動加載SDK包;
②用戶系統提供融合通信平臺授權,通過后即可獲取相應能力列表,例如:音視頻通話能力、多媒體會議能力、即時消息能力、位置推送能力和短數據收發能力等;
③用戶系統根據API文檔,調用能力列表中的能力接口,配合終端的音視頻輸入設備(耳機、麥克等)即可實現音視頻通話、多媒體會議、即時消息聊天、位置查詢/接收、短數據(北斗短報文、運營商短信和專網集群短信等)等融合通信能力。
通過上述簡單3步,行業應用用戶即可實現音頻、視頻、會議、位置和通知等5大類專業功能,無需關心電信通信設備部署、復雜通信協議兼容、海量數據處理和多種通信終端融合等問題。
4結束語
基于OSGi架構的融合通信平臺通過采用瀏覽器端全WebRTC架構、OSGi的插件式核心架構以及二次開發的全SDK架構,有效解決了融合通信產品終端操作繁瑣、系統停機運維可用性差及定制化能力弱等問題,通過提供良好的二次開發SDK,契合了PAAS(Platform As a Service)的設計理念,實現了新一代融合通信平臺。該平臺已經在地鐵、電力等行業廣泛應用,取得了良好的應用效果。
未來平臺考慮將通用行業業務應用進行凝練,以插件化集成的方式融入到系統中,形成功能更加豐富、業務更加多樣、使用更加便捷的綜合性支撐服務平臺。
參考文獻
[1]熊琦.下一代企業級統一通信平臺的研究與實現[D].北京:北京郵電大學,2009.
[2]林昊,曾憲杰.OSGI原理與最佳實踐[M].北京:電子工業出版社,2009:131-145.
[3]高揚,肖繼民.NAT穿越技術研究[J].江蘇通信技術,2005,21(5):1-6.
[4]李毅.利用STUN協議實現SIP穿越NAT[D].上海:華東師范大學,2006:15-18.
[5]劉勝輝,周野.對ICE穿越Symmetric NAT技術的一種改進[J].計算機工程與應用,2010,46(3):109-111.
[6]徐涵,李紅軍,胡偉.Restful Web Services(中文版)[M].北京:電子工業出版社,2008.
[7]龍奇.下一代Web通信技術HTML5 WebSocket的研究[J].科技信息,2011,11(36):273.