金乃辰,王晶
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876; 2 東信北郵信息技術(shù)有限公司,北京 100191)
IIP系統(tǒng)中動(dòng)態(tài)協(xié)議模塊的設(shè)計(jì)與實(shí)現(xiàn)*
金乃辰1,2,王晶1,2
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876; 2 東信北郵信息技術(shù)有限公司,北京 100191)
給出了一種有效的改進(jìn)方案,通過(guò)將現(xiàn)有協(xié)議相關(guān)的實(shí)現(xiàn)從主程序中獨(dú)立,放到動(dòng)態(tài)連接庫(kù)中實(shí)現(xiàn)。該方案中,每個(gè)協(xié)議的動(dòng)態(tài)連接庫(kù)只需要實(shí)現(xiàn)與自身協(xié)議相關(guān)的處理部分即可,通過(guò)協(xié)議管理類(lèi)對(duì)各協(xié)議的操作進(jìn)行調(diào)度,大大增強(qiáng)了IIP系統(tǒng)的可維護(hù)性、可擴(kuò)展性及安全性,降低了系統(tǒng)研發(fā)和設(shè)計(jì)的難度。
IIP; 智能網(wǎng); 協(xié)議; C++
IIP(Independent Intelligent Peripheral,獨(dú)立智能外設(shè))是智能網(wǎng)中重要的功能實(shí)體之一,完成SRF(Special Resource Function,專(zhuān)用資源功能),向智能網(wǎng)的終端用戶(hù)提供各種的專(zhuān)用資源服務(wù),例如,向用戶(hù)發(fā)布提示音,接收用戶(hù)撥號(hào)等等。在智能網(wǎng)發(fā)展初期,由于智能業(yè)務(wù)對(duì)專(zhuān)用資源功能的需求比較簡(jiǎn)單,SRF的功能往往被集成在SSP(Service Switch Point,業(yè)務(wù)交換點(diǎn))之中,由交換機(jī)向網(wǎng)絡(luò)提供提示音和收集用戶(hù)信息的設(shè)備。目前市場(chǎng)上常見(jiàn)的各種SSP產(chǎn)品一般均有SRF功能[1]。
現(xiàn)代通信網(wǎng)絡(luò)已經(jīng)越來(lái)越多的依靠于IP網(wǎng)絡(luò),其應(yīng)用的協(xié)議也逐漸體現(xiàn)了IP網(wǎng)絡(luò)協(xié)議的如下幾大特征:
基于框架:協(xié)議規(guī)范定義了基本框架,協(xié)議的設(shè)計(jì)具有可重用性和系統(tǒng)可擴(kuò)充性, 縮短了協(xié)議的設(shè)計(jì)周期,提高了開(kāi)發(fā)質(zhì)量。
易讀性:協(xié)議使用文本方式傳輸,其特點(diǎn)是便于開(kāi)發(fā)人員閱讀、修改和調(diào)試,大大增強(qiáng)了可維護(hù)性。但是同時(shí)相應(yīng)的程序解碼變得更加復(fù)雜了。
當(dāng)前的CMIN02-IIP系統(tǒng)的控制節(jié)點(diǎn)(CN)架構(gòu)和協(xié)議耦合程度較高,采用這種設(shè)計(jì)是因?yàn)樗婕暗膮f(xié)議比較穩(wěn)定,版本變化很小,七號(hào)信令網(wǎng)絡(luò)中一個(gè)實(shí)體要實(shí)現(xiàn)的協(xié)議的數(shù)量也不多。但是在目前這種環(huán)境下,這個(gè)架構(gòu)的缺陷逐漸涌現(xiàn):協(xié)議的實(shí)現(xiàn)分散在程序各個(gè)部分中,每增加一個(gè)協(xié)議,需對(duì)整個(gè)程序進(jìn)行一次較大改動(dòng)。IIP系統(tǒng)的CN模塊對(duì)協(xié)議擴(kuò)展性方面的嚴(yán)重缺陷,導(dǎo)致了系統(tǒng)存在潛在的安全性和可維護(hù)性的問(wèn)題,不利于軟件的開(kāi)發(fā)和維護(hù)。
通過(guò)改進(jìn)將現(xiàn)有協(xié)議相關(guān)的實(shí)現(xiàn)從主程序中獨(dú)立出來(lái)放到動(dòng)態(tài)連接庫(kù)中實(shí)現(xiàn),每個(gè)協(xié)議的動(dòng)態(tài)連接庫(kù)只需要實(shí)現(xiàn)與自身協(xié)議相關(guān)的處理部分即可,通過(guò)協(xié)議管理類(lèi)對(duì)各協(xié)議的操作進(jìn)行調(diào)度,這樣后續(xù)如果添加新的協(xié)議時(shí),不需要進(jìn)行程序主體的調(diào)整,僅需要修改相關(guān)的動(dòng)態(tài)鏈接庫(kù)即可。
2.1 系統(tǒng)架構(gòu)
CMIN02-IIP系統(tǒng)具有完整的信令接口,支持多種組網(wǎng)方式,采用的是集中控制的分布處理方式,從功能角度看,本系統(tǒng)主要由CN(Control Node,控制節(jié)點(diǎn))、RN(Resource Node,資源節(jié)點(diǎn))、信令節(jié)點(diǎn)和維護(hù)系統(tǒng)組成。對(duì)應(yīng)到各節(jié)點(diǎn)的硬件平臺(tái),系統(tǒng)由高性能計(jì)算機(jī)服務(wù)器和若干工業(yè)控制機(jī)以及各類(lèi)資源板卡組成[2]。系統(tǒng)各個(gè)節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)相連,通信協(xié)議采用TCP/IP協(xié)議。目前網(wǎng)絡(luò)采用100 Mbit/s高速局域網(wǎng),也可以采用主備用雙網(wǎng)絡(luò)方案。高性能計(jì)算機(jī)服務(wù)器是系統(tǒng)的控制節(jié)點(diǎn),它控制并管理所有資源,對(duì)消息進(jìn)行實(shí)時(shí)、并發(fā)處理,維護(hù)與其它功能實(shí)體的通信接口。工業(yè)控制機(jī)(各種資源板卡插在其中)構(gòu)成資源節(jié)點(diǎn)。資源節(jié)點(diǎn)的功能包括語(yǔ)音播放,DTMF信號(hào)接受,播送信號(hào)音、文—語(yǔ)轉(zhuǎn)換等。同時(shí)也可以用高性能的電信級(jí)交換機(jī)作為資源節(jié)點(diǎn),和信令節(jié)點(diǎn)合設(shè)。提供更高的維護(hù)性和穩(wěn)定性。維護(hù)系統(tǒng)包括維護(hù)管理服務(wù)器及維護(hù)終端,共同完成對(duì)系統(tǒng)的維護(hù)管理功能[3]。現(xiàn)階段,管理服務(wù)器與維護(hù)終端合設(shè)在一起,在將來(lái)的版本,此維護(hù)功能可集成在SMP、SMAP中實(shí)現(xiàn),使系統(tǒng)維護(hù)更加方便快捷。其中,維護(hù)終端是系統(tǒng)的操作維護(hù)臺(tái),由若干臺(tái)微機(jī)構(gòu)成,通過(guò)與維護(hù)管理服務(wù)器的通信,分別完成對(duì)RN節(jié)點(diǎn)語(yǔ)音文件的管理、CN節(jié)點(diǎn)中TCAP、ISUP信令消息的管理統(tǒng)計(jì)功能。
控制節(jié)點(diǎn):CN是系統(tǒng)的控制節(jié)點(diǎn),由高性能計(jì)算機(jī)服務(wù)器構(gòu)成,它集中控制并管理所有資源,是整個(gè)獨(dú)立智能外設(shè)的靈魂。同時(shí)提供與SMP和網(wǎng)管等的接口。
圖1 大容量版本CN結(jié)構(gòu)
資源節(jié)點(diǎn):資源節(jié)點(diǎn)是資源-功能單元對(duì)和資源功能單元的集合,包含語(yǔ)音提示、語(yǔ)音錄制等功能。
那句話(huà)同時(shí)把我和父親變成了另外一個(gè)人。父親成了我心目中的無(wú)名英雄,我永遠(yuǎn)忘不了,那天晚上,他為了避過(guò)校門(mén)口警衛(wèi)的詢(xún)問(wèn),索性爬墻離開(kāi)的那一幕。在淡藍(lán)色的月光映照下,他奮力攀上圍墻,騎在墻頂上向我揮手,并且很誠(chéng)懇地將手掌劃向眉梢,向我行了一個(gè)軍禮,然后才縱身跳落校外的小路上。我站在墻內(nèi),聽(tīng)到父親落地的一聲輕響,頓時(shí)熱淚盈眶。我緊握雙拳,叮囑自己永遠(yuǎn)不可再有想死的念頭。
維護(hù)系統(tǒng):本地具備一個(gè)管理維護(hù)系統(tǒng),可以實(shí)現(xiàn)語(yǔ)音資源的在線(xiàn)維護(hù)和加載;可以監(jiān)控并維護(hù)系統(tǒng)性能,可以實(shí)現(xiàn)系統(tǒng)的在線(xiàn)擴(kuò)容。
信令節(jié)點(diǎn):信令節(jié)點(diǎn)IN7Server是獨(dú)立IP與NO.7信令網(wǎng)的接口,包括N7Server和I7Server,分別負(fù)責(zé)處理TCAP消息和ISUP消息。
2.2 CN模塊功能和結(jié)構(gòu)
如圖1所示,Manager為一個(gè)消息轉(zhuǎn)發(fā)實(shí)體,同時(shí)具備在線(xiàn)升級(jí)系統(tǒng)的功能和控制節(jié)點(diǎn)守護(hù)的功能,它負(fù)責(zé)消息的路由,通過(guò)套接字將外部消息加上內(nèi)部路由數(shù)據(jù)轉(zhuǎn)發(fā)到對(duì)應(yīng)的SRF,此模塊涉及路由數(shù)據(jù)的保存,鏈接的管理和維護(hù)等多項(xiàng)功能。SRF為特殊資源功能,負(fù)責(zé)對(duì)自動(dòng)機(jī)、業(yè)務(wù)進(jìn)行管理,實(shí)時(shí)處理消息的編解碼和消息的分發(fā),為業(yè)務(wù)提供功能接口SLP(Service Logic Program,業(yè)務(wù)邏輯程序)。
3.1 設(shè)計(jì)目標(biāo)
由圖1可見(jiàn)協(xié)議的處理分散在SRF模塊的各個(gè)部分之中,一旦協(xié)議的某個(gè)部分發(fā)生改動(dòng)或變化就需要對(duì)整個(gè)程序進(jìn)行一次改動(dòng),其設(shè)計(jì)難度大大增加,并且安全性、代碼可讀性都顯著降低了,這對(duì)于軟件的維護(hù)成本和人力資源的投入都是一種巨大的浪費(fèi)。如果能設(shè)計(jì)一種方法使得協(xié)議模塊與程序主體分離,在有協(xié)議需要改動(dòng)或者有新協(xié)議增加時(shí)不需要修改主程序,僅修改協(xié)議模塊的話(huà),軟件的維護(hù)及開(kāi)發(fā)將會(huì)更加容易。那么如何設(shè)計(jì)和實(shí)現(xiàn)Manager中協(xié)議和功能的分離,SRF中的協(xié)議和功能的分離,以及功能分離后的軟件架構(gòu)將成為本文的主要研究?jī)?nèi)容。通過(guò)本次設(shè)計(jì)與實(shí)現(xiàn)將達(dá)到如下研究目標(biāo):
(1)實(shí)現(xiàn)Manager模塊中協(xié)議與功能的分離,協(xié)議的編譯和程序主體編譯的分離,協(xié)議可以靈活的加載和刪除。
(2)實(shí)現(xiàn)SRF模塊中協(xié)議和功能的分離,協(xié)議的編譯和主體程序的編譯分離,協(xié)議可以靈活的加載和刪除。
3.2 對(duì)SRF模塊的改造
如圖2所示TProtocolManager、TProtocol、協(xié)議動(dòng)態(tài)鏈接庫(kù)為本次改造新增模塊,SRF模塊各部分功能如下:
Copart,通用消息底層包,負(fù)責(zé)通用消息的socket維護(hù),消息收發(fā)和進(jìn)程維護(hù)。
TFEAM, 負(fù)責(zé)SRF消息的收發(fā)和初步處理,收到消息并處理后TSCMECtrl類(lèi)放到消息隊(duì)列中。
圖2 SRF模塊改造圖
TSCMECtrl, SRF進(jìn)程主控類(lèi),進(jìn)程的主循環(huán)mainloop函數(shù)就在這個(gè)類(lèi)中。同時(shí)這個(gè)類(lèi)負(fù)責(zé)消息的分發(fā)和消息隊(duì)列,自動(dòng)機(jī)隊(duì)列和計(jì)時(shí)器隊(duì)列的管理。負(fù)責(zé)將消息隊(duì)列里的消息分發(fā)到對(duì)應(yīng)的自動(dòng)機(jī)處理。
TScheduleTable, 定時(shí)任務(wù)的管理,由TSCMECtrl類(lèi)觸發(fā)。
TDataBase, 封裝數(shù)據(jù)庫(kù)操作,向業(yè)務(wù)的動(dòng)態(tài)鏈接庫(kù)提供接口。
TMSGQueue、TFSMQueue與TTIMEQueue,消息隊(duì)列、自動(dòng)機(jī)和計(jì)時(shí)器隊(duì)列。
TPotocolManager,此模塊為本次設(shè)計(jì)的重點(diǎn),由協(xié)議管理類(lèi)單獨(dú)調(diào)用動(dòng)態(tài)鏈接庫(kù)來(lái)加載相關(guān)協(xié)議的實(shí)現(xiàn)。
XjoinService,業(yè)務(wù)管理類(lèi),負(fù)責(zé)對(duì)業(yè)務(wù)流程文件進(jìn)行解析,每一個(gè)流程文件對(duì)應(yīng)一個(gè)Application類(lèi)。
SRF的協(xié)議處理包括消息的路由、編解碼,以及為業(yè)務(wù)解析數(shù)據(jù)(通過(guò)自動(dòng)機(jī))和接收自動(dòng)機(jī)管理等。同時(shí),SRF還具有自動(dòng)機(jī)面向協(xié)議的接口和自動(dòng)機(jī)面向業(yè)務(wù)的接口。
3.3 對(duì)Manager模塊的改造
如圖3所示,TProtoManager是本次設(shè)計(jì)的主要部分,各部分功能如下。
圖3 Manager模塊改造圖
TProtoManager, 協(xié)議管理類(lèi),單鍵模式對(duì)外提供協(xié)議調(diào)用接口。負(fù)責(zé)動(dòng)態(tài)鏈接庫(kù)的初始化,動(dòng)態(tài)鏈接庫(kù) 內(nèi)函數(shù)的提取以及對(duì)Manager提供通過(guò)關(guān)鍵字調(diào)用相應(yīng)的庫(kù)能力的接口。
動(dòng)態(tài)鏈接庫(kù),每個(gè)動(dòng)態(tài)鏈接庫(kù)為獨(dú)立的一份協(xié)議實(shí)現(xiàn),實(shí)現(xiàn)的內(nèi)容為從原有的Manager中剝離出協(xié)相關(guān)部分。每個(gè)動(dòng)態(tài)鏈接庫(kù)需要實(shí)現(xiàn)定義好的接口函數(shù)以供Manager調(diào)用。
TSOCKET, socket服務(wù)端口類(lèi),負(fù)責(zé)端口的綁定和鏈接上來(lái)的socket鏈接的維護(hù)。
Manager的協(xié)議處理包括路由功能和路由數(shù)據(jù)管理,其中屬于Manager功能的部分包括協(xié)議管理(通過(guò)配置文件實(shí)現(xiàn))和socket鏈路管理。
本次動(dòng)態(tài)協(xié)議庫(kù)設(shè)計(jì)與實(shí)現(xiàn)均在實(shí)驗(yàn)室環(huán)境下完成,改造與實(shí)現(xiàn)符合預(yù)期結(jié)果。實(shí)驗(yàn)室環(huán)境搭建于Red Hat Enterprise Linux 64bit系統(tǒng)中。以CMIN02-IIP產(chǎn)品作為依托,在媒體業(yè)務(wù)平臺(tái)框架內(nèi)進(jìn)行創(chuàng)新改造,使用標(biāo)準(zhǔn)C++作為程序開(kāi)發(fā)語(yǔ)言,使用Infomix數(shù)據(jù)庫(kù)。
本方案的最大特色是將現(xiàn)有協(xié)議相關(guān)的實(shí)現(xiàn)從主程序中獨(dú)立出來(lái)放到動(dòng)態(tài)連接庫(kù)中實(shí)現(xiàn),每個(gè)協(xié)議的動(dòng)態(tài)連接庫(kù)只需要實(shí)現(xiàn)與自身協(xié)議相關(guān)的處理部分即可,通過(guò)協(xié)議管理類(lèi)對(duì)各協(xié)議的操作進(jìn)行調(diào)度,后續(xù)添加新的協(xié)議時(shí),無(wú)需修改程序主體,僅需要在動(dòng)態(tài)庫(kù)中添加新協(xié)議的實(shí)現(xiàn)即可。媒體業(yè)務(wù)平臺(tái)繼承4.0版本的系統(tǒng)總體結(jié)構(gòu),采用對(duì)Manager及SRF模塊改造的方式實(shí)現(xiàn),SRF的協(xié)議動(dòng)態(tài)鏈接庫(kù)負(fù)責(zé)對(duì)收到的消息進(jìn)行編解碼處理,保留并處理消息的路由信息,對(duì)需要?jiǎng)?chuàng)建自動(dòng)機(jī)的消息創(chuàng)建自動(dòng)機(jī),對(duì)不需要業(yè)務(wù)處理的消息有協(xié)議自己進(jìn)行處理。其主要架構(gòu)沒(méi)有較大的改動(dòng),既保持了原系統(tǒng)的性能優(yōu)勢(shì),又增強(qiáng)了其功能的延伸。
正如我們所了解的,CMIN02-IIP系統(tǒng)提供了一套完整的移動(dòng)智能網(wǎng)解決方案,作為IIP系統(tǒng)的核心功能,控制節(jié)點(diǎn)(CN)集中控制并管理所有資源,是整個(gè)獨(dú)立智能外設(shè)的靈魂,同時(shí)提供與SMP和網(wǎng)管等的接口,代碼量龐大。傳統(tǒng)設(shè)計(jì)是把所有協(xié)議的處理都放在CN核心代碼中,如果后續(xù)有新的協(xié)議添加進(jìn)來(lái),其修改工作將會(huì)十分費(fèi)時(shí)并且出現(xiàn)錯(cuò)誤的概率會(huì)增高,而如果把不同功能的代碼分別放在數(shù)個(gè)動(dòng)態(tài)鏈接庫(kù)中,就無(wú)需重新生成或安裝整個(gè)程序就可以應(yīng)用更新。
通過(guò)本文對(duì)CMIN02-IIP系統(tǒng)部分模塊的設(shè)計(jì)與改造實(shí)現(xiàn)了對(duì)原有智能網(wǎng)系統(tǒng)安全性、可維護(hù)性的提升,大大降低了IIP系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)難度,極大地節(jié)約了人力資源和開(kāi)發(fā)成本,后續(xù)的協(xié)議擴(kuò)充僅需要在動(dòng)態(tài)鏈接庫(kù)中添加新協(xié)議的實(shí)現(xiàn)即可做到軟件功能的擴(kuò)展。
[1] 廖建新. 移動(dòng)智能網(wǎng)[M]. 北京:北京郵電大學(xué)出版社,2000.
[2] ITU-TQ.1221 Introduction to Intelligent Network Capability Set 2[S].1997.
[3] ETSI TS 129.078 CAMEL CAMEL Application Part (CAP) Specification v5.2.0[S]. 2002.
Design and implementation of dynamic protocol module in IIP system
JIN Nai-chen1,2, WANG Jing1,2
(1 Beijing University of Posts and Telecommunications Networking and Switching Technology, State Key Laboratory, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)
This paper presents a kind of measures by making the existing protocols independent from the major program and put them in the dynamic link library. So it only need to implement new protocol of the dynamic link library, by this method we greatly enhanced IIP system maintainability, scalability and security, reducing the system development and design diff culty.
IIP; intelligent network; protocol; C++
TN929.5
A
1008-5599(2014)11-0082-04
2014-10-08
國(guó)家973計(jì)劃項(xiàng)目(編號(hào):2013CB329102);國(guó)家自然科學(xué)基金資助項(xiàng)目(No. 61471063, 61372120, 61271019, 61101119, 61121001);長(zhǎng)江學(xué)者和創(chuàng)新團(tuán)隊(duì)發(fā)展計(jì)劃資助(編號(hào):IRT1049);教育部科學(xué)技術(shù)研究重點(diǎn)(重大)項(xiàng)目資助(編號(hào):MCM20130310);北京高等學(xué)校青年英才計(jì)劃項(xiàng)目(編號(hào):YETP0473)。
電信工程技術(shù)與標(biāo)準(zhǔn)化2014年11期