本站小編為你精心準備了ICT融合通信服務器中間件研究參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
《小型微型計算機系統雜志》2016年第一期
摘要:
隨著信息通信技術的興起,融合通信服務器中間件的重要性越來越凸顯.通過“中間件”技術,在融合通信服務器基礎上打造一個對外的中間件平臺即融合通信服務器中間件,不僅屏蔽了融合通信服務器內部的復雜性,還對外提供了一套符合互聯網規范的開放的簡潔的應用程序接口.通過對融合通信服務器中間件的背景研究,提出融合通信服務器中間件的分層架構,闡述了一些重要數據結構及內部模塊的實現,完成外部消息格式的定義.最后通過功能和性能測試,證明了融合通信服務器中間件的可用性.
關鍵詞:
1引言
CTI(ComputerTelephonyIntegration)即計算機電話集成,是傳統的語音通信與數據通信網絡的結合,是連接通信設備和計算機的樞紐[1].大多數企業經過近幾年的信息化建設,已擁有較完善的IT(InformationTechnology)系統,傳統的IT系統以局域網或Internet為載體,需要辦公人員有PC終端并連接上網才能發揮作用.而CT(CommunicationTechnolo-gy)系統雖然可以提供有效的通信方式,但不能與企業的業務緊密關聯.通過對多個企業的IT系統進行分析,我們發現移動信息化的實現過程里很多工作都是共性的,如對基本通信協議的開發、同運營商網絡的連接、通信業務邏輯解析、IT系統對接等,而定制工作主要集中在業務流程的實現.如今的電信網絡和數據通信網絡正在互相滲透融合,ICT(Informa-tionandCommunicationTechnology)代表著這種發展與融合的趨勢.ICT信息通信技術,它是信息技術和通信技術相融合而形成的一個新的范疇[2],ICT平臺的概念全面準確地反映支撐現代信息社會發展的方向.融合開放的ICT綜合業務平臺,吸收了傳統智能網的特點以及軟交換“業務與控制分離”,最終將完全融合CTI平臺[3].ICT融合通信服務器便是一種代表著ICT融合的載體,在其基礎上打造的ICT融合通信服務器中間件提供了一套符合互聯網規范的開放API(ApplicationProgrammingInter-face)接口.ICT融合通信服務器中間件向互聯網開放了ICT融合通信服務器的基礎通信能力,實現互聯網與通信網絡業務的融合與應用的混搭(Mhup).同時,通過建立良好的商業模式,吸引互聯網SP(ServiceProvider)入駐,讓SP自己開發適合市場的“殺手級應用”.
2中間件技術的介紹
中間件(Middleware)是提供系統軟件和應用軟件之間連接的軟件,以便于軟件各部件之間的溝通,特別是應用軟件對于系統軟件的集中的邏輯.在現代信息技術應用框架如Web服務、面向服務的體系結構等中應用比較廣泛[4].早期內部服務器和外部應用客戶端是一種緊耦合的集成模式,內部服務器直接提供對外API,應用客戶端通過這些接口的調用直接操縱內部服務器.在這種集成模式下,存在著許多問題:程序可移植性差、安全性差、穩定性差.可以在內部服務器和外部應用客戶端之間添加連接軟件中間件,通過中間件間接提供給外部應用客戶端統一的規范的簡潔的API,實現異構環境的通訊,屏蔽了異構系統中復雜的操作系統和網絡協議,其總體結構如圖1所示.這樣實現了內服務器專用接口對于上層應用客戶端的透明,在不改變中間件對外API的條件下可隨意更改中間件的具體實現,應用客戶端幾乎不需任何修改還可復用.這樣對于SP而言可以專注于應用客戶端的開發,而不必過于關注內部服務器端的變化,從而保護了企業在應用軟件開發和維護中重大投資成本[5,6].
3ICT融合通信服務器中的中間件
ICT融合通信服務器體系結構設計如圖2所示,采用總線結構,各個組件分別掛在消息隊列總線上,各個服務組件高內聚,低耦合,不會相互調用.所有模塊之間不發生直接的交互,所有消息的收發都通過消息隊列總線,消息隊列總線負責消息的接收以及將該消息推送到對應的目標組件上.這種結構易維護性和易擴展性是顯而易見的,如果要添加新的模塊,不需要考慮它與其他模塊之間交互而要寫眾多的接口,只需要將其掛到總線上即可.ICT融合通信服務器是一個整體系統,里面包含多個服務組件進程,不同的服務組件提供不同的基本服務接口.外部應用客戶端可以使用這些基本服務接口或者多個基本服務接口的組合完成復雜業務.ICT中間融合通信服務器中間件是二者之間的連接軟件,其設計的核心思想就是定義通信服務接口協議標準(見4.3),每種基本服務接口對應的是一種規定好外部消息格式,應用客戶端需要什么服務就向ICT融合通信服務器中間件發送特定外部請求,其作為中間者收到外部請求,按照預先設定路由規則(見4.2.2),適配到不同內部組件解析器完成消息處理,將外部消息轉化成內部組件可識別格式,發送到服務組件并由其提供相應的服務,并將收到響應消息按原路發回給應用客戶端.
4ICT融合通信服務器中間件的設計與實現
ICT融合通信服務器中間件與傳統CTI中間件相比:實現代價小,其主要提供CTI中間件最基本服務,以及其他額外功能會議控制,通信錄設置查詢,業務設置查詢等,整合各種網絡業務能力,采用統一消息調用的方式向應用開放,通過靈活組合各種網絡業務能力開發多樣化業務應用;采用Linux下Epoll方法實現對TCP的Socket端口監控管理,完全可以滿足外部多客戶端的并發、長短連接的需求.內部采用緩沖區鏈表有效緩存大量高并發消息.這樣有效保證性能的穩定性和可靠性;具有一定先進性,ICT融合通信服務器中間件的架構設計有效考慮項目現實應用場景,其主要從分層、模塊化、可擴展等方面考慮組織軟件架構,分成三層:IO抽象層、消息路由層、消息適配層.ICT融合通信服務器中間件的架構如圖3所示.
4.1ICT融合通信中間件的架構設計TCP輸入輸出,對外IO,主要完成對外多應用客戶端的IO,包括消息的接收與發送.MQ輸入輸出,對內IO,主要完成對內消息隊列的IO,包括消息的接收與發送.IO抽象層,對外IO、對內IO的抽象,便于IO接口擴展.消息路由層,根據路由配置信息,將消息分發到不同的解析器上.消息適配層,為上層路由選擇層提供了一個統一的接口,根據收到的消息的類型不同適配到不同解析器.解析器,將收到外部消息處理成內部組件的可識別的消息格式,或者是將收到內部消息處理成外部應用客戶端可識別的消息格式.
4.2實現采用C語言開發實現,并將ICT融合通信服務器中間件實現為一個服務端的應用程序.
4.2.1緩沖區結構ICT融合通信服務器中間件運行過程中需要處理成千上萬的消息,為了達到減少IO開銷、增大并發、臨時存儲的目的,需要在ICT融合通信服務器中間件中定義緩沖區.下面定義了四個消息緩沖區:TCP接收緩沖區、TCP發送緩沖區、MQ輸出緩沖區、MQ輸入緩沖區.TCP接收緩沖區數據結構structTcpRecvData,各字段的定義見下頁表1.T_LIST_ENTRY(TcpRecvBuf)list是一個宏定義,代表本結構的鏈表即TCP接收緩沖區.應用客戶端向ICT融合通信服務器中間件發送請求,ICT融合通信服務器中間件將接收到所有客戶端的請求消息依次放入TCP輸入緩沖區.TCP發送緩沖區、MQ輸出緩沖區、MQ輸入緩沖區實現類同TCP發送緩沖區,不再贅述.TCP發送緩沖區中存放的是ICT融合通信服務器中間件已經處理完成的響應或事件消息,即將要發送到對應的應用客戶端.MQ輸出緩沖區存放的是ICT融合通信服務器中間件解析處理完成的請求消息,即將要發送到消息隊列上,由消息隊列發送到對應組件去處理.MQ輸入緩沖區存放的是ICT融合通信服務器中間件定時從消息隊列接收各個組件的消息.
4.2.2消息路由器這里參考消息隊列總線中路由模式的實現,不同解析器可訂閱自己想要的消息類型,采用靜態配置文件配置,并針對每一種消息類型配置一條消息路由,如圖4所示.對收到一條消息(這條消息既可能來自外部應用客戶端的請求,也可能來自內部的消息隊列總線),根據配置文件可選擇發送到多個解析器,或只選擇發送到一個解析器,或選擇直接丟棄.在配置文件/etc/ict_mid_router.conf中,[INTERPRETER]下定義各解析器在MK串中的固定位置,如IN-TER1:1表示解析器IN-TER1在MK串中第一個位置.[MESSAGE]下定義了每個類型消息關于解析器MK串,0表示發送到該解析器,1表示不發送.例如:MSGTYPE1=>0000000000000000代表MS-GTYPE1類型的消息丟棄;MSGTYPE2=>1100000000000000代表MSGTYPE2類型的消息發送到第一個位置解析器IN-TER1及第二個位置解析器INTER2.路由信息的初始化在ICT融合通信服務器中間件應用程序啟動時將路由表信息以鏈表結構形式加載到內存中,程序運行后,之后會一直保存在內存中.
4.2.3消息適配器不同解析器對應著不同入口函數,將所有解析器入口數再次封裝包裹,這樣為上層路由選擇層提供了一個統一的函數接口,如圖5所示.消息隊列上增加一個與ICT融合通信服務器中間件交互的組件,并且這個組件需要對外開放服務功能,那么只需在ICT融合通信服務器中間件內部增加一個對應的消息解析器即可,這樣便于擴展組件,而不用修改ICT融合通信服務器中間件上層結構.
4.2.4消息解析器因為外部應用客戶端以及掛在消息隊列上各組件需要的消息格式不同,對應了各個不同的語法環境.消息解析器主要是對收到的消息進行處理,將其轉化成特定語法壞境中的可識別的消息格式.這里消息其實就是一連串的字符串,消息的處理其實就是對字符串的處理,將其轉換成特殊格式的字符串.以Agent解析器為例見圖6.Agent解析器是ICT融合通信服務器中間件內部的一個解析器,其對應著掛在消息隊列上的Agent組件.消息由外向內處理過程:Agent解析器將收到外部應用客戶端的請求消息轉換為Agent組件可識別的內部標準命令,最后由消息隊列發送到Agent組件.消息由內向外處理過程:Agent解析器將收到Agent組件響應或事件消息轉換成外部應用客戶端可識別的數據格式,最終發往外部應用客戶端.
4.3外部消息格式的定義外部消息格式描述的是外部應用客戶端與ICT融合通信服務器中間件之間怎樣交互.公開的通訊協議有兩種,一種是基于XML文檔格式的,比較直觀,表現力強,容易擴展,但數據量大,傳輸效率低.另一種是基于二進制格式的,不直觀,但傳輸效率高.客戶端與服務端連接都需要認證,安全性有一定保證.客戶端每發一條消息都有成功或失敗的回應,可靠性比較高.ICT融合通信服務器中間件與外部應用客戶端采用TCP連接下的C/S模式,其基于基于二進制格式的,外部消息格式定義如下頁圖7所示.每條消息數據頭、數據體、數據尾組成.數據頭以0xFE開頭,長度固定為1B,數據尾以0xEE結尾,長度固定為1B.數據體長度不固定,采用類AMI(teriskManagerInterface)的消息格式,由一個或多個字段組成,每個字段包含一個字段名和字段值,字段名和字段值之間以“:”分隔,字段之間以“;”分隔,字段名不區分大小寫.數據體第一個字段的字段名必須是Action、Response、E-vent三者中的一個,不區分大小寫,對應的字段值稱為消息名字.第一個字段名是Action,表示請求消息,外部應用客戶端想要做什么,將該請求消息發往ICT融合通信服務器中間件.第一個字段名是Response,表示響應消息,與請求消息是一一對應的,ICT融合通信服務器中間件收到請求消息的處理后給出處理結果,將該響應消息發往外部應用客戶端.第一個字段名是Event,表示事件消息,ICT融合通信服務器中間件主動上報給外部應用客戶端的消息,例如Media服務器發出分機注冊事件、分機狀態事件等.外部應用客戶端開發只需關心的是其與ICT融合通信服務器中間件交互的外部消息格式.ICT融合通信服務器中間件需要給出一份穩定的、完整的、清晰的外部消息格式說明文檔,包括所有消息以及消息中各字段名與字段值說明.外部應用客戶端按照給定文檔發送請求消息,解析收到的響應消息和事件消息.
5測試
TCP&UDP測試工具:運行于Windows操作系統上的一種網絡協議及數據包測試和調試工具,主要用于在網絡通訊程序開發時,測試TCP或UDP通訊連接和測試數據的接收和發送情況,通過直觀友好的界面實時展示發送和接收的數據.
5.1功能測試ICT中間件應用程序測試完成的功能主要有:①連接登錄類:登錄認證、注銷、超時斷開.②CTI呼叫控制類:發起呼叫、掛機、呼叫搶答、呼叫保持和恢復、肓轉、呼叫轉移、轉移拉回、監聽、強插、廣播、查詢分機狀態、話務員示忙/示閑及狀態查詢.③會議類:召開立即會議、邀請加入會議、禁止成員發言、禁止成員聽、踢出會議、查詢會議、關閉會議.④補充業務查詢、刪除、設置類:呼叫限制、鬧鐘、免打擾、呼叫前轉、黑白名單、語音信箱、振鈴組等等.⑤通訊錄類:查詢通訊錄.
5.2性能測試使用TCP&UDP測試工具模擬應用客戶端,向作為服務端的中間件應用程序發送呼叫請求消息.利用linux中top命令,查看中間件應用程序進程占用資源見表2.TCP&UDP測試工具配置選擇自動發送,發送時間間隔選擇分別為0.01ms、0.1ms、10ms、1ms.發送消息為:(Action:MakeCall;Ext:3002;Caller:3002;Called:3001;)可以看出隨著客戶端發送消息量增多,內存占用量基本不變,但是CPU占用量明顯增多.所以下步工作主要是研究如何解放CPU,減少CPU的使用量.
6結束語
本文通過對融合通信服務器中間件的背景研究,設計了融合通信服務器中間件分層架構,充分考慮了其擴展性,闡述了一些重要數據結構及內部模塊的實現,完成外部消息的格式的定義.最后使用TCP&UDP測試工具模擬應用客戶端,通過功能和性能測試,說明了融合通信服務器中間件的可用性.目前該融合通信服務器中間件組件已在項目中使用,運行良好,可以滿足系統需求.后續還需進一步開發完善融合通信服務器中間件功能,配合消息隊列總線上其它各組件進行聯調測試,以及成千上萬消息高并發處理的性能優化和改進.
參考文獻:
[1]張亮.基于VoiceXML的呼叫中心中間件的研究與設計[D].銀川:寧夏大學,2013.
[3]林曉勇,徐名海,閻鞏平.基于中間件技術的CTI應用平臺研究與實現[J].計算機應用與軟件,2009,26(11):95-97.
[5]呂韶.基于中間件的電話營銷呼叫中心的設計與實現[D].杭州:浙江大學,2006.
[6]余潔.基于MQ的呼叫中心傳輸系統的設計與實現[D].西安:西安電子科技大學,2014.
作者:林滸 牛慶華 楊海波 單位:中國科學院 沈陽計算技術研究所 中國科學院大學