隨著現(xiàn)代企業(yè)的分支機構(gòu)越來越多,應(yīng)用系統(tǒng)的負載和數(shù)據(jù)量也日趨龐大。應(yīng)用系統(tǒng)經(jīng)過了主機/終端和客戶/服務(wù)器結(jié)構(gòu)的歷程,現(xiàn)在正由客戶/服務(wù)器方式轉(zhuǎn)向三層結(jié)構(gòu)方式。所謂三層結(jié)構(gòu)是指在客戶/服務(wù)器兩層結(jié)構(gòu)基礎(chǔ)上加入中間層。


以上優(yōu)點,分布式的體系結(jié)構(gòu)目前已被眾多的應(yīng)用系統(tǒng)所采用。


為了更好地說明應(yīng)用服務(wù)器的功能以及應(yīng)用和數(shù)據(jù)的分布,需要用一個實例描述,因此我們構(gòu)造了一個虛擬的應(yīng)用——分布式呼叫中心標準管理系統(tǒng)。與傳統(tǒng)的呼叫中心不同,這是一個全國范圍的呼叫中心,數(shù)據(jù)、應(yīng)用和座席需要分布在全國各個節(jié)點。各節(jié)點的受理員可受理全國各地的客戶,并且能訪問全網(wǎng)內(nèi)任何節(jié)點的數(shù)據(jù)。


可以看出:我們把數(shù)據(jù)庫建在省受理中心(內(nèi)部數(shù)據(jù)庫)或其他業(yè)務(wù)部門(外部數(shù)據(jù)庫),根據(jù)各地的需求,一個應(yīng)用服務(wù)器可對應(yīng)一個或多個數(shù)據(jù)庫服務(wù)器。應(yīng)用服務(wù)器細分為業(yè)務(wù)邏輯和數(shù)據(jù)邏輯,業(yè)務(wù)邏輯響應(yīng)客戶端的請求,從客戶端獲得參數(shù),返回結(jié)果,業(yè)務(wù)邏輯的組件將整個業(yè)務(wù)封裝,業(yè)務(wù)邏輯調(diào)用數(shù)據(jù)邏輯,實現(xiàn)對不同地點異構(gòu)數(shù)據(jù)庫的訪問。


受理席可以是中心內(nèi)部的受理席或遠程外包受理席;客戶端為普通Windows應(yīng)用,瀏覽器為動態(tài)HTML(CGI、ASP、JSP)和Java Applet。它們都是瘦客戶端,僅有用戶界面,可訪問應(yīng)用服務(wù)器的業(yè)務(wù)邏輯; 業(yè)務(wù)可由插件的方式改變,這些都可通過應(yīng)用服務(wù)器的業(yè)務(wù)邏輯改變來實現(xiàn)。整個系統(tǒng)網(wǎng)絡(luò)連接由TCP/IP上層協(xié)議CORBA、Http、Socket實現(xiàn)。


分布式呼叫中心系統(tǒng)三層結(jié)構(gòu)有很多優(yōu)點:


(1) 可實現(xiàn)應(yīng)用級和數(shù)據(jù)庫級的全面分布。應(yīng)用分為用戶界面和業(yè)務(wù)邏輯,業(yè)務(wù)邏輯以組件的形式分布在應(yīng)用服務(wù)器上。服務(wù)器根據(jù)需要分布在整個網(wǎng)絡(luò)的任何節(jié)點上,盡管整個應(yīng)用在物理上是分布式的,但邏輯上卻是一個整體。當前的分布式數(shù)據(jù)庫技術(shù)已經(jīng)非常成熟,能保證分布數(shù)據(jù)的完整性和一致性。


(2) 實現(xiàn)大用戶量、大吞吐量下的負載平衡。隨著Internet的迅速發(fā)展,在Web上需要實現(xiàn)很多關(guān)鍵業(yè)務(wù)(如網(wǎng)上購物、訂票等),這些應(yīng)用的最大特點是并發(fā)用戶量大,三層結(jié)構(gòu)比以前的結(jié)構(gòu)更能承擔大業(yè)務(wù)量。三層結(jié)構(gòu)將應(yīng)用縱向均勻分布在客戶端、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器上,橫向分布在多個應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器上,應(yīng)用的分布實現(xiàn)了負載的平衡。因此,在大用戶量、大吞吐量情況下,仍能迅速響應(yīng)每個客戶端的需求。


(3) 如果使用Java技術(shù),可實現(xiàn)應(yīng)用的跨平臺。Java是一種跨平臺的語言,不論是在客戶端,還是在應(yīng)用服務(wù)器上使用Java技術(shù),都可使應(yīng)用在一個操作系統(tǒng)上編寫,并能無縫移植到其他操作系統(tǒng)上。


(4) 能實現(xiàn)組件級的開發(fā)。應(yīng)用服務(wù)器的組件既能用于傳統(tǒng)的客戶端,也能應(yīng)用于Web,提高了代碼的重用率。


(5)中間層的存在,大大提高了數(shù)據(jù)的安全性。Web或其他客戶端不直接訪問數(shù)據(jù)庫,從而加強了數(shù)據(jù)的安全性。