隨著現(xiàn)代企業(yè)的分支機構(gòu)越來越多,應用系統(tǒng)的負載和數(shù)據(jù)量也日趨龐大。應用系統(tǒng)經(jīng)過了主機/終端和客戶/服務器結(jié)構(gòu)的歷程,現(xiàn)在正由客戶/服務器方式轉(zhuǎn)向三層結(jié)構(gòu)方式。所謂三層結(jié)構(gòu)是指在客戶/服務器兩層結(jié)構(gòu)基礎上加入中間層。
以上優(yōu)點,分布式的體系結(jié)構(gòu)目前已被眾多的應用系統(tǒng)所采用。
為了更好地說明應用服務器的功能以及應用和數(shù)據(jù)的分布,需要用一個實例描述,因此我們構(gòu)造了一個虛擬的應用——分布式呼叫中心標準管理系統(tǒng)。與傳統(tǒng)的呼叫中心不同,這是一個全國范圍的呼叫中心,數(shù)據(jù)、應用和座席需要分布在全國各個節(jié)點。各節(jié)點的受理員可受理全國各地的客戶,并且能訪問全網(wǎng)內(nèi)任何節(jié)點的數(shù)據(jù)。
可以看出:我們把數(shù)據(jù)庫建在省受理中心(內(nèi)部數(shù)據(jù)庫)或其他業(yè)務部門(外部數(shù)據(jù)庫),根據(jù)各地的需求,一個應用服務器可對應一個或多個數(shù)據(jù)庫服務器。應用服務器細分為業(yè)務邏輯和數(shù)據(jù)邏輯,業(yè)務邏輯響應客戶端的請求,從客戶端獲得參數(shù),返回結(jié)果,業(yè)務邏輯的組件將整個業(yè)務封裝,業(yè)務邏輯調(diào)用數(shù)據(jù)邏輯,實現(xiàn)對不同地點異構(gòu)數(shù)據(jù)庫的訪問。
受理席可以是中心內(nèi)部的受理席或遠程外包受理席;客戶端為普通Windows應用,瀏覽器為動態(tài)HTML(CGI、ASP、JSP)和Java Applet。它們都是瘦客戶端,僅有用戶界面,可訪問應用服務器的業(yè)務邏輯; 業(yè)務可由插件的方式改變,這些都可通過應用服務器的業(yè)務邏輯改變來實現(xiàn)。整個系統(tǒng)網(wǎng)絡連接由TCP/IP上層協(xié)議CORBA、Http、Socket實現(xiàn)。
分布式呼叫中心系統(tǒng)三層結(jié)構(gòu)有很多優(yōu)點:
(1) 可實現(xiàn)應用級和數(shù)據(jù)庫級的全面分布。應用分為用戶界面和業(yè)務邏輯,業(yè)務邏輯以組件的形式分布在應用服務器上。服務器根據(jù)需要分布在整個網(wǎng)絡的任何節(jié)點上,盡管整個應用在物理上是分布式的,但邏輯上卻是一個整體。當前的分布式數(shù)據(jù)庫技術已經(jīng)非常成熟,能保證分布數(shù)據(jù)的完整性和一致性。
(2) 實現(xiàn)大用戶量、大吞吐量下的負載平衡。隨著Internet的迅速發(fā)展,在Web上需要實現(xiàn)很多關鍵業(yè)務(如網(wǎng)上購物、訂票等),這些應用的最大特點是并發(fā)用戶量大,三層結(jié)構(gòu)比以前的結(jié)構(gòu)更能承擔大業(yè)務量。三層結(jié)構(gòu)將應用縱向均勻分布在客戶端、應用服務器和數(shù)據(jù)庫服務器上,橫向分布在多個應用服務器和數(shù)據(jù)庫服務器上,應用的分布實現(xiàn)了負載的平衡。因此,在大用戶量、大吞吐量情況下,仍能迅速響應每個客戶端的需求。
(3) 如果使用Java技術,可實現(xiàn)應用的跨平臺。Java是一種跨平臺的語言,不論是在客戶端,還是在應用服務器上使用Java技術,都可使應用在一個操作系統(tǒng)上編寫,并能無縫移植到其他操作系統(tǒng)上。
(4) 能實現(xiàn)組件級的開發(fā)。應用服務器的組件既能用于傳統(tǒng)的客戶端,也能應用于Web,提高了代碼的重用率。
(5)中間層的存在,大大提高了數(shù)據(jù)的安全性。Web或其他客戶端不直接訪問數(shù)據(jù)庫,從而加強了數(shù)據(jù)的安全性。