官术网_书友最值得收藏!

3.3.3 三層C/S系統的結構

在傳統的兩層C/S結構中,開發工作主要集中在客戶方,客戶端軟件不但要完成用戶交互和數據顯示的工作,而且還要完成對應用邏輯的處理工作,即使用戶界面與應用邏輯位于同一平臺上。這樣就帶來了兩個突出的問題,即系統的可伸縮性較差和安裝維護較為困難。

因為在一個系統中,并不是所有的客戶機要求都一樣,所以它們要求程序的功能也不盡相同。使用兩層C/S結構應用軟件時,開發人員提供的所有程序都是相同的,除非開發人員根據不同用戶的需求將大的軟件裁剪成不同的小軟件分發給不同的用戶。

另外,在系統開發完畢后,整個系統的安裝也非常繁雜。在每一臺客戶機上不但要安裝應用程序,而且還必須安裝相應的數據庫連接程序,以及完成大量的系統配置工作。所有的客戶端都要配置好幾層軟件,因而變得很龐大,被稱為“肥客戶機”。這樣一來,如果系統有大量的用戶,并且用戶是分布的和流動的(如廣域網環境下的應用系統),則整個系統的安裝和維護將非常困難。在系統進行修改后,所有客戶機上的軟件都要受到影響。

為了解決兩層C/S結構應用軟件中所存在的問題,人們又提出了三層C/S結構應用軟件。在三層C/S結構應用軟件中,整個系統由三個部分組成,即客戶機、應用服務器和數據庫服務器??蛻魴C上只需安裝應用程序,負責處理與用戶的交互和與應用程序的交互。應用服務器負責處理應用邏輯,即接受客戶機方應用程序的請求,然后根據應用邏輯將這個請求轉化為數據庫請求后與數據庫服務器進行交互,并將與數據庫服務器交互的結果傳送給客戶機方的應用程序。數據庫服務器軟件根據應用服務器發送的請求進行數據庫操作,并將操作結果傳送給應用服務器。三層C/S結構如圖3.3所示。

圖3.3 三層C/S結構

從圖3.3中可以看出,三層C/S結構應用軟件的特點是用戶界面與應用邏輯位于不同的平臺上,并且應用邏輯被所有的用戶共享。由于用戶界面和應用邏輯位于不同的平臺上,所以系統應提供用戶界面與應用邏輯之間的連接,兩者之間的通信協議是由系統自行定義的。

應用邏輯被所有的用戶共享是兩層C/S結構應用軟件與三層C/S結構應用軟件之間最大的區別。中間層(即應用服務器)是整個C/S系統的核心,它必須具有處理系統的具體應用的能力,并提供事務處理、安全控制以及滿足不同數量客戶機的請求而進行性能調整的能力。應用服務器軟件可以根據應用邏輯的不同被劃分為不同的模塊,從而使客戶機方應用程序在需要某種應用服務時只與應用服務器上處理這個應用邏輯的模塊通信,并且一個模塊能夠同時響應多個客戶機方應用程序的請求。

使用三層C/S結構應用軟件開發系統的優點是非常明顯的,主要有以下幾點。

(1)整個系統被分為不同的邏輯塊,層次非常清晰。

(2)能夠使“肥客戶機”變成“瘦客戶機”。

(3)開發和管理的工作向服務器方轉移,使得分布數據處理成為可能。

(4)管理和維護變得相對簡單。

另外,引進三層C/S結構體系后,客戶機便可省去與數據庫系統直接互動的麻煩。客戶機直接調用服務器上的應用邏輯,應用邏輯則代表客戶機對數據庫進行存取,這樣就可以減少向服務器發出的SQL查詢和更新要求,從而使其性能比兩層C/S結構更優。此外,由于客戶機不直接連接數據庫系統,而服務器能夠實現更細致的授權定義,因此,三層C/S結構能加強整個系統的安全。

主站蜘蛛池模板: 普安县| 吉首市| 习水县| 华容县| 灯塔市| 湟中县| 西平县| 四川省| 荥经县| 夏河县| 莱芜市| 越西县| 保靖县| 巫山县| 远安县| 资源县| 集安市| 萨嘎县| 屏东县| 全州县| 陈巴尔虎旗| 利津县| 东山县| 岚皋县| 青神县| 苍溪县| 手机| 松桃| 菏泽市| 渭源县| 松潘县| 莒南县| 巧家县| 日土县| 铜山县| 横峰县| 湾仔区| 石首市| 康乐县| 大余县| 莆田市|