摘 要: 一種利用中間件Tuxedo實現(xiàn)電信觸摸屏多媒體查詢系統(tǒng)的體系結(jié)構(gòu)及其相關(guān)組件的實現(xiàn)。
關(guān)鍵詞: 多層分布式體系技術(shù) 中間件 Tuxedo系統(tǒng)
傳統(tǒng)的應用系統(tǒng)模式是主機/終端或客戶機/服務器模式??蛻魴C/服務器系統(tǒng)(Client/Server System)的結(jié)構(gòu)是指把一個大型的計算機應用系統(tǒng)劃分為多個能互為獨立的子系統(tǒng),而服務器便是整個應用系統(tǒng)資源的存儲與管理中心,多臺客戶機則各自處理相應的功能,共同實現(xiàn)完整的應用。隨著Internet的發(fā)展壯大,這些傳統(tǒng)模式已經(jīng)不能適應新的環(huán)境,于是就產(chǎn)生了新的分布式應用系統(tǒng),即瀏覽器/服務器結(jié)構(gòu)、瘦客戶機模式。
在Client/Server結(jié)構(gòu)模式中,客戶端直接連接到數(shù)據(jù)庫服務器,由二者分擔業(yè)務處理,這樣的體系存在以下缺點:
(1)Client與Server直接連接,安全性低。非法用戶容易通過Client直接闖入中心數(shù)據(jù)庫,造成數(shù)據(jù)損失。
(2)Client程序龐大,并且隨著業(yè)務規(guī)則的變化需要隨時更新。這使得維護量大大增加,造成維護工作困難。
(3)每個Client都要直接連到數(shù)據(jù)庫服務器,使服務器為此消耗大量本就緊張的服務器資源。
(4)大量的數(shù)據(jù)直接在Client/Server端傳送,在業(yè)務高峰期容易造成網(wǎng)絡流量暴增,網(wǎng)絡阻塞。
隨著業(yè)務量的增加,Client/Server模式的這些先天不足導致越來越多的問題。因此有必要對這種二層體系進行改革,將業(yè)務處理與客戶交互分開,實現(xiàn)瘦客戶/業(yè)務服務/數(shù)據(jù)服務的多層分布式應用體系結(jié)構(gòu)。
1 多層分布式應用體系
隨著中間件與Web技術(shù)的發(fā)展,三層或多層分布式應用體系應用越來越廣泛。在這種體系結(jié)構(gòu)中,客戶機只存放表示層軟件,應用邏輯包括事務處理、監(jiān)控、信息排隊、Web服務等采用專門的中間件服務器,后臺是數(shù)據(jù)庫。在多層分布式體系中,系統(tǒng)資源被統(tǒng)一管理和使用,用戶可以通過網(wǎng)格門戶(portal)透明地使用所有網(wǎng)絡資源。
在多層體系中,各層次按照以下方式實現(xiàn)明確分工:瘦客戶提供簡潔的人機交互界面,完成數(shù)據(jù)的輸入/輸出;業(yè)務服務完成業(yè)務邏輯,實現(xiàn)客戶與數(shù)據(jù)庫對話的橋梁。同時,在這一層中,還應實現(xiàn)分布式管理、負載均衡、Fail/Recover、安全隔離等;數(shù)據(jù)服務提供數(shù)據(jù)的存儲服務。
多層分布式體系具有以下主要特點:
(1)安全性:中間層隔離了客戶直接對數(shù)據(jù)服務器的訪問,保護了數(shù)據(jù)庫的安全。
(2)穩(wěn)定性:中間層緩沖Client與數(shù)據(jù)庫的實際連接,使數(shù)據(jù)庫的實際連接數(shù)量遠小于Client應用數(shù)量。當然,連接數(shù)越少,數(shù)據(jù)庫系統(tǒng)就越穩(wěn)定。Fail/Recover機制能夠在1臺服務器當機的情況下,透明地把客戶端工作轉(zhuǎn)移到其他具有同樣業(yè)務功能的服務上。
(3)易維護:由于業(yè)務邏輯在中間服務器,當業(yè)務規(guī)則變化后,客戶端程序基本不做改動。
(4)快速響應:通過負載均衡以及中間層緩存數(shù)據(jù)能力,可以提高對客戶端的響應速度。
(5)系統(tǒng)擴展靈活:基于多層分布體系,當業(yè)務增大時,可以在中間層部署更多的應用服務器,提高對客戶端的響應,而所有變化對客戶端透明。
目前,多層分布應用開發(fā)中有二種比較重要的規(guī)范,即COM+和CORBA。其中COM+主要用于Windows平臺,CORBA則提供跨平臺的能力。同時,隨著分布式應用的發(fā)展,舊的硬件/軟件平臺的不斷更新,跨硬件平臺、網(wǎng)絡環(huán)境、操作系統(tǒng)以及跨不同數(shù)據(jù)庫的應用系統(tǒng)不斷出現(xiàn),使傳統(tǒng)的開發(fā)工具越來越不能適應,因此中間件應運而生。
2 中間件與Tuxedo
中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶機與服務器的操作系統(tǒng)之上管理計算機資源和網(wǎng)絡通信??梢赃@樣理解:中間件也是一類軟件,它的首要任務是實現(xiàn)應用與平臺無關(guān)的互操作,其次能夠合理地管理網(wǎng)絡通信資源。按照IDC的分類方法,中間件可分為6類,第1類是終端仿真/屏幕轉(zhuǎn)換中間件;第2類是數(shù)據(jù)庫訪問中間件;第3類是遠程過程調(diào)用中間件;第4類是消息中間件;第5類是交易中間件;第6類是對象中間件。
Tuxedo是BEA公司的交易中間件產(chǎn)品,經(jīng)過十多年的不斷更新和完善,Tuxedo已經(jīng)發(fā)展成為交易中間件領(lǐng)域事實上的標準。Tuxedo可以有效地整合企業(yè)異構(gòu)C/S系統(tǒng),實現(xiàn)大規(guī)模的關(guān)鍵業(yè)務處理和分布式事務管理,從而為企業(yè)提供一個可靠的、高性能的、易維護的三層分布式計算機環(huán)境。圖1展示了一個基本Tuxedo系統(tǒng)的組成和工作原理。

圖1中,①表示Client向System/T發(fā)出查詢請求,以找到Server消息隊列的地址;②表示Client根據(jù)找到的入口地址將請求發(fā)送到Server的消息隊列中;③表示Server處理請求,并將結(jié)果返回給Client的消息隊列。System/T是Tuxedo系統(tǒng)的核心,它實現(xiàn)了Tuxedo的所有功能和特征,如C/S數(shù)據(jù)流管理、服務請求的負載均衡、全局事務管理以保證交易的完整性、同步/異步服務請求、二階段提交以確保消息的發(fā)送等。BEA Tuxedo提供多種API接口,可供用戶靈活選用并進行靈活的組合,同時也提供各種推薦的組合模式,由用戶直接使用。
3 中間件Tuxedo在電信觸摸屏多媒體查詢系統(tǒng)中的應用
近年來,電信市場競爭日趨激烈。在各個業(yè)務領(lǐng)域內(nèi)已初步形成多元化的競爭局面。同時,隨著中國加入WTO,國外的電信公司也會進入中國市場。在這樣的形勢下,如何提高服務質(zhì)量是企業(yè)生存與發(fā)展最重要的環(huán)節(jié),這就是近年來觸摸屏多媒體查詢系統(tǒng)在電信行業(yè)紛紛出現(xiàn)的主要原因。
針對此類系統(tǒng)用戶多、維護量大及需要不斷擴展等特點,系統(tǒng)采用四層體系結(jié)構(gòu),如圖2所示。

客戶端采用基于Web的瘦客戶機結(jié)構(gòu),用戶通過瀏覽器可以查詢所需的信息。當用戶需要進行數(shù)據(jù)交換時,不允許直接訪問數(shù)據(jù)庫服務器的,而是要通過Web服務器上的一個組件來訪問中間件提供的接口。這樣保證了后臺數(shù)據(jù)的安全性,同時實現(xiàn)了真正意義上的瘦客戶。
Web服務器層采用IIS,利用ASP技術(shù),通過一個組件將信息的展示與實際的業(yè)務邏輯隔離開,使得網(wǎng)頁制作人員不必了解復雜的業(yè)務邏輯與中間件知識,而且非常便于維護。在此服務器安裝了Tuxedo客戶端。
中間件層采用了BEA Tuxedo,負責對輸入/輸出的數(shù)據(jù)按照業(yè)務邏輯進行加工處理,并實現(xiàn)對數(shù)據(jù)庫服務器的訪問。該層對它的上級和下級分別提供了Servive Interface和DBAgent。
采用以上技術(shù)就解決了客戶/服務器模式中面臨的最嚴峻問題即:由于客戶機增多,導致數(shù)據(jù)庫連接增多,使得服務器不斷擴容,造成服務器當機。在多層體系中,由于客戶機不是直接訪問數(shù)據(jù)庫,而是通過業(yè)務邏輯服務層,因此可通過業(yè)務層有效地實現(xiàn)各連接共用數(shù)據(jù)庫連接。如果說,100個客戶端同時在線,可能只有10個實際連接到數(shù)據(jù)庫。
4 用戶話費信息查詢組件的實現(xiàn)
由于采用的是Web方式,所以與中間件的通信通過1個組件完成。在ASP中不直接與中間件發(fā)生聯(lián)系,而是調(diào)用此組件來實現(xiàn)信息的查詢。
三層體系中客戶端與服務端的通信由Tuxedo的API函數(shù)實現(xiàn),客戶端由函數(shù)Tpinit與服務器建立連接,由函數(shù)Tpcall申請Service服務,再由相關(guān)的Tuxedo函數(shù)對數(shù)據(jù)解包。數(shù)據(jù)傳輸采用Tuxedo提供的非常靈活的FML方式實現(xiàn)客戶端與服務端的數(shù)據(jù)交換。
該組件接收1個一維數(shù)組作為入?yún)?。根?jù)入?yún)⒋_定要調(diào)用的服務,把所得結(jié)果以數(shù)組形式返回。
本系統(tǒng)主要用到Tuxedo的話費查詢服務中的7種API函數(shù),該組件的設(shè)計思想如圖3所示。

在ASP頁面中組件的使用方法如下所示:
……
Set newObj=Server.createobject(″GetDataSrv.GetData″)
retArrayStr=newobj.Req(″3;8276658;123456;0;0″)
if retArrayStr[0]=′0′then showMessage(′執(zhí)行成功′)
else
showMessage(′用戶不存在′)
end if
……
5 結(jié)束語
隨著基于Web的瘦客戶機結(jié)構(gòu)的發(fā)展,基于多層分布體系的應用將會越來越廣泛。而中間件作為分布體系應用的關(guān)鍵技術(shù),以其獨特的優(yōu)勢為各種分布式應用的開發(fā)注入了強大動力,極大地推動了應用系統(tǒng)集成的發(fā)展。
