摘 要:電信服務(wù)系統(tǒng)具有業(yè)務(wù)訪問(wèn)量大、業(yè)務(wù)變更頻繁、公眾訪問(wèn)方式多樣等特點(diǎn),本文介紹了該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)采用了先進(jìn)的三層架構(gòu):數(shù)據(jù)庫(kù)采用Informix數(shù)據(jù)庫(kù),中間層的電信服務(wù)業(yè)務(wù)邏輯則用C語(yǔ)言封裝成服務(wù)部署在應(yīng)用服務(wù)器上,前臺(tái)應(yīng)用程序通過(guò)這些服務(wù)的調(diào)用實(shí)現(xiàn)具體的業(yè)務(wù)操作,這種設(shè)計(jì)保證了該系統(tǒng)具有良好的執(zhí)行效率和可擴(kuò)展性。另外,該系統(tǒng)提供了多應(yīng)用接口,對(duì)中間層的服務(wù)調(diào)用包括delphi、VB、VC、Java等多種不同的應(yīng)用程序,這些應(yīng)用程序滿足了客戶對(duì)系統(tǒng)的多種不同訪問(wèn)方式。
關(guān)鍵詞:三層體系結(jié)構(gòu) 客戶機(jī)/服務(wù)器 數(shù)據(jù)庫(kù)
中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2013)01(b)-0020-02
隨著計(jì)算機(jī)技術(shù)的發(fā)展,在實(shí)際應(yīng)用的驅(qū)動(dòng)下,人們?cè)谠O(shè)計(jì)計(jì)算機(jī)相關(guān)的系統(tǒng)時(shí)廣泛采用客戶機(jī)/服務(wù)器(client/server)體系結(jié)構(gòu)。在這種體系結(jié)構(gòu)中,服務(wù)器一般都是文件服務(wù)器或者數(shù)據(jù)庫(kù)服務(wù)器,還包括應(yīng)用服務(wù)器。不過(guò),這時(shí)服務(wù)器一般只能提供數(shù)據(jù),因此客戶端必須完成應(yīng)用所要求的功能。目前,這種體系結(jié)構(gòu)仍然占主導(dǎo)地位。但是,兩層體系結(jié)構(gòu)具有明顯的缺點(diǎn):“胖客戶端”、網(wǎng)絡(luò)負(fù)擔(dān)重、應(yīng)用邏輯不能被重復(fù)使用、管理的改變會(huì)產(chǎn)生巨大的影響等。
三層體系結(jié)構(gòu)則努力解決這一問(wèn)題,辦法就是把應(yīng)用邏輯從客戶端移到服務(wù)器端。三層結(jié)構(gòu)出現(xiàn)于1998年。圖1從原理上給出了3層體系結(jié)構(gòu)的簡(jiǎn)化形式。
在圖1中,各層的功能如下。表示層:負(fù)責(zé)表示數(shù)據(jù)、接受用戶事件、控制用戶接口。表示層可以使用多種方式來(lái)實(shí)現(xiàn),可以使用web形式,也可以使用圖形用戶接口。功能層又叫業(yè)務(wù)邏輯層,實(shí)現(xiàn)業(yè)務(wù)規(guī)則,表示層可以訪問(wèn)該層,該層保護(hù)了數(shù)據(jù),避免了客戶對(duì)數(shù)據(jù)的直接訪問(wèn)。數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)存儲(chǔ),該層使用常見(jiàn)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。必須注意的是,層之間的邊界是邏輯上的。因此,有可能所有的三層都運(yùn)行在同一臺(tái)物理機(jī)器上。這里重要的是系統(tǒng)的結(jié)構(gòu)是清晰的,不同層之間的軟件邊界是事先定義好的。
三層體系結(jié)構(gòu)具有負(fù)載均衡、良好可伸縮性、業(yè)務(wù)修改容易等特點(diǎn),因此目前很多應(yīng)用系統(tǒng)的開(kāi)發(fā)正在由傳統(tǒng)的兩層結(jié)構(gòu)向三層結(jié)構(gòu)過(guò)渡。本文將三層體系結(jié)構(gòu)技術(shù)應(yīng)用于電信服務(wù)系統(tǒng)上,下面介紹該系統(tǒng)的具體設(shè)計(jì)和實(shí)現(xiàn)。
1 電信服務(wù)系統(tǒng)組成
由于電信發(fā)展已經(jīng)較為成熟,這里對(duì)其業(yè)務(wù)需求和特點(diǎn)只進(jìn)行粗略的描述。電信服務(wù)的業(yè)務(wù)需求包括話費(fèi)查詢、投訴申告、業(yè)務(wù)咨詢、業(yè)務(wù)受理等多種業(yè)務(wù)。電信對(duì)社會(huì)公眾提供的服務(wù)具有訪問(wèn)量大、業(yè)務(wù)變更頻繁、客戶訪問(wèn)方式多樣等特點(diǎn)。電信服務(wù)系統(tǒng)在功能上必須滿足業(yè)務(wù)需求,在具體實(shí)現(xiàn)上必須能夠體現(xiàn)自身特點(diǎn)。一個(gè)電信服務(wù)系統(tǒng)的總體結(jié)構(gòu)主要包括如下三個(gè)組成部分。
第一,客戶接口部分,包括語(yǔ)音和web兩種接口。Web接口:客戶可以通過(guò)email進(jìn)入系統(tǒng)的email服務(wù)器,從而使用系統(tǒng)的服務(wù);也可以通過(guò)網(wǎng)站的方式訪問(wèn)系統(tǒng),同時(shí)該網(wǎng)站使用了web協(xié)同的功能,即可以由web坐席對(duì)客戶進(jìn)行服務(wù),因此系統(tǒng)使用了web服務(wù)器和web協(xié)同服務(wù)器以及TrailHead服務(wù)器,共同完成web坐席與客戶的協(xié)同功能;為了保護(hù)系統(tǒng),系統(tǒng)增加了防火墻。語(yǔ)音接口:客戶還可以通過(guò)電話或者傳真的方式接入系統(tǒng),采用我國(guó)的七號(hào)新令接入到系統(tǒng)的pbx交換機(jī)上,即北電的Meridian1交換機(jī)。
第二,系統(tǒng)處理部分。這部分完成對(duì)接入到系統(tǒng)的客戶提供服務(wù)。這部分主要由CTI服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、自動(dòng)語(yǔ)音應(yīng)答系統(tǒng)(IVR)、坐席、網(wǎng)管工作站等組成。圖2中的CTI/ACD PG、IVR PG、Media Blender服務(wù)器用于將電話、web等接入到服務(wù)系統(tǒng)中的客戶進(jìn)行統(tǒng)一的排隊(duì),從而由坐席為隊(duì)列中的客戶提供服務(wù)。
第三,其他業(yè)務(wù)系統(tǒng)的接口。本系統(tǒng)為客戶提供服務(wù)需要其他系統(tǒng)的支持,例如投訴要涉及到投訴的部門(mén),話費(fèi)查詢涉及到計(jì)費(fèi)系統(tǒng)等。該接口通過(guò)路由器連接到其他的業(yè)務(wù)系統(tǒng)。
2 軟件實(shí)現(xiàn)關(guān)鍵
在前面的總體結(jié)構(gòu)基礎(chǔ)上,要對(duì)客戶提供服務(wù),還需要進(jìn)行軟件的開(kāi)發(fā)。本系統(tǒng)的軟件在結(jié)構(gòu)上采用了先進(jìn)的三層架構(gòu)技術(shù),并提供多個(gè)應(yīng)用接口,從而滿足該系統(tǒng)訪問(wèn)方式多樣的需求。下面結(jié)合話費(fèi)查詢介紹本系統(tǒng)軟件實(shí)現(xiàn)的關(guān)鍵技術(shù)。用戶根據(jù)自己的電話號(hào)碼和密碼進(jìn)行月費(fèi)查詢。系統(tǒng)提供三種查詢方式:營(yíng)業(yè)廳查詢、網(wǎng)上查詢、電話客服中心查詢,其中電話客服中心包括語(yǔ)音導(dǎo)航自動(dòng)查詢和客服中心話務(wù)員人工查詢。
如果采用傳統(tǒng)的兩層結(jié)構(gòu)開(kāi)發(fā),那么上面提到的每一種查詢方式都需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),因此對(duì)系統(tǒng)性能、安全性、開(kāi)發(fā)工作量、維護(hù)都帶來(lái)巨大的不方便之處。因此,為了避免這些問(wèn)題,本系統(tǒng)采用了三層結(jié)構(gòu)的技術(shù)來(lái)實(shí)現(xiàn)。
第一,數(shù)據(jù)層:本系統(tǒng)的數(shù)據(jù)庫(kù)服務(wù)器采用了Unix環(huán)境下的informix數(shù)據(jù)庫(kù)。
第二,業(yè)務(wù)邏輯層:本系統(tǒng)件采用了BEA Tuxedo中間件進(jìn)行業(yè)務(wù)邏輯的開(kāi)發(fā)。本系統(tǒng)的業(yè)務(wù)邏輯就是根據(jù)電話號(hào)碼和密碼,訪問(wèn)數(shù)據(jù)庫(kù),得到話費(fèi),然后返回話費(fèi)的值。業(yè)務(wù)邏輯采用Informix數(shù)據(jù)庫(kù)的ESQL語(yǔ)言進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn),Tuxedo的系統(tǒng)調(diào)用形成業(yè)務(wù)邏輯。業(yè)務(wù)邏輯生成后作為服務(wù)部署在服務(wù)器端,系統(tǒng)根據(jù)資源和訪問(wèn)量來(lái)調(diào)整啟動(dòng)的服務(wù)個(gè)數(shù)。如果系統(tǒng)內(nèi)存和CPU處理能力很強(qiáng),而且請(qǐng)求該業(yè)務(wù)邏輯(即服務(wù))的應(yīng)用很多,則在UNIX環(huán)境下啟動(dòng)多個(gè)該服務(wù)。
第三,表示層:本系統(tǒng)要求話費(fèi)查詢以多種方式提供—營(yíng)業(yè)廳、web、客戶服務(wù)中心等,由于歷史的原因,不同的訪問(wèn)方式所采用的開(kāi)發(fā)工具也不同。營(yíng)業(yè)廳系統(tǒng)采用delphi編程,所以必須在delphi中調(diào)用前面的服務(wù)來(lái)實(shí)現(xiàn);對(duì)于網(wǎng)上查詢,系統(tǒng)采用jsp程序?qū)崿F(xiàn),因此要在jsp中調(diào)用該服務(wù);對(duì)于電話自主查詢,則將話費(fèi)查詢封裝成dll在IVR中進(jìn)行調(diào)用;對(duì)于客服中心話務(wù)員人工查詢,由于客服業(yè)務(wù)有多種,且是用VB開(kāi)發(fā),所以在VB中調(diào)用該服務(wù)。圖2是本系統(tǒng)的軟件框架(見(jiàn)圖1)。
下面具體介紹本系統(tǒng)在各層重涉及到的關(guān)鍵技術(shù)。
2.1 服務(wù)器端
服務(wù)器端的實(shí)現(xiàn)包括三個(gè)部分,依次是創(chuàng)建數(shù)據(jù)庫(kù),編寫(xiě)業(yè)務(wù)邏輯即服務(wù),最后是使用UNIX命令部署這些服務(wù)。由于創(chuàng)建數(shù)據(jù)庫(kù)工作非常成熟,因此本文不在對(duì)此進(jìn)行介紹。重點(diǎn)介紹如何創(chuàng)建服務(wù)和部署服務(wù)。
3.1 用EC語(yǔ)言(在C語(yǔ)言重加入Informix的數(shù)據(jù)庫(kù)操作功能)編寫(xiě)服務(wù),例如取話費(fèi)服務(wù)我們定義為服務(wù)M3006。對(duì)于該服務(wù)的實(shí)現(xiàn)描述采取類(lèi)C語(yǔ)言(其他服務(wù)在原理上是一致的),算法實(shí)現(xiàn)描述如下:
2.2 客戶端
(1)通過(guò)客服中心進(jìn)行話費(fèi)查詢。
(2)通過(guò)營(yíng)業(yè)廳進(jìn)行話費(fèi)查詢。
3 結(jié)論
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)正在由兩層結(jié)構(gòu)向三層結(jié)構(gòu)過(guò)渡,本文具體介紹了三層結(jié)構(gòu)在電信服務(wù)系統(tǒng)上的設(shè)計(jì)與實(shí)現(xiàn),本系統(tǒng)具有如下特點(diǎn)。
(1)開(kāi)發(fā)效率高:話費(fèi)查詢等業(yè)務(wù)邏輯只開(kāi)發(fā)了一次,但是在多個(gè)地方使用,使用時(shí)只是簡(jiǎn)單的系統(tǒng)調(diào)用,不涉及到數(shù)據(jù)庫(kù)操作,因此開(kāi)發(fā)效率非常高。
(2)系統(tǒng)性能好:例如話費(fèi)查詢對(duì)電信服務(wù)系統(tǒng)是一個(gè)非常普遍的操作,但是本系統(tǒng)的查詢不是直接訪問(wèn)數(shù)據(jù)庫(kù),因此數(shù)據(jù)庫(kù)的性能不會(huì)因?yàn)樵L問(wèn)量的變大而下降。
(3)系統(tǒng)維護(hù)非常方便:如果數(shù)據(jù)庫(kù)表結(jié)構(gòu)改變了,則只須更改用E C寫(xiě)的業(yè)務(wù)邏輯,而對(duì)于應(yīng)用而言,無(wú)論是delphi開(kāi)發(fā)的營(yíng)業(yè)廳,還是VB開(kāi)發(fā)的客服中心,還是jsp開(kāi)發(fā)的web應(yīng)用,都不需做任何的改動(dòng)。
(4)本系統(tǒng)提供了多應(yīng)用接口,客戶可以使用電話、web、等多種不同的接入方式,從而極大地方便了客戶對(duì)系統(tǒng)的訪問(wèn)。
參考文獻(xiàn)
[1]蔡黃輝,馬文濤.架構(gòu)實(shí)戰(zhàn):軟件架構(gòu)設(shè)計(jì)的過(guò)程[M].機(jī)械工業(yè)出版社,2010,4.
[2]陸川.IBM Informix11.x系統(tǒng)管理與開(kāi)發(fā)指南[M].電子工業(yè)出版社,2012,9.
[3]徐春晶.Tuxedo中間件開(kāi)發(fā)與配置[M].中國(guó)電力出版社,2003,7.