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