背景
客戶機/伺服器(C/S)是一種傳統的套用系統模式。在Client/Server結構模式中,客戶端直接連線到
資料庫伺服器,由二者分擔業務處理,這樣的體系結構存在以下的缺點:
(1) 客戶機與伺服器直接連線,安全性低,非法用戶容易通過客戶機直接闖入中心資料庫,造成數據的損失;
(2) 客戶機程式肥大,並且隨著業務規則的變化,需要隨時更新客戶機端程式,大大增加系統的維護量,造成維護工作的困難;
(3) 每個客戶機都要直接連線到資料庫伺服器,使伺服器為每個客戶機建立連線,從而消耗大量原本就緊張的伺服器資源;
(4) 大量的數據通過客戶機端和伺服器端直接傳送,在業務高峰期容易造成網路流量暴增,網路出現阻塞。
因此,Client/Server模式的這些先天不足,隨著業務量的變化,將出現越來越多的問題,所以有必要對這種兩層體系進行改革,將業務處理與客戶互動分開,以實現瘦客戶/業務服務/數據服務的多層分散式套用體系結構。
多層分布系統的簡介
隨著中間件與Web技術的發展,三層或多層分散式套用體系的套用越來越廣泛。典型的多層分散式系統可劃分為3個層次,分別為客戶端、套用伺服器和數據服務層。在這種體系結構中,客戶機只存放表示層軟體,套用邏輯包括事務處理、監控、信息排隊、
Web服務等採用專門的中間件伺服器,後台是資料庫,系統資源被統一管理和使用,客戶程式與資料庫的連線被中間層禁止,客戶程式只能通過中間層間接地訪問資料庫。中間層可能運行在不同於客戶機的其他機器上,經過合理的任務劃分與物理部署後,可使得整個系統的工作負載更趨均衡,從而提高整個系統的運行效率。這些位於中間層的中間件又稱套用服務程式,因為它們實際上表達了一個企業處理信息的主要業務邏輯,即企業的系統模型與功能模型,而客戶程式僅實現
圖形用戶界面,完成終端用戶與業務邏輯之間的互動。
多層分散式系統的主要層次
多層分散式系統在邏輯上劃分成實現各層功能的多個部分,分別運行在通過區域網路或Intemet相互連線的多台計算機上。典型的多層分散式系統可劃分為3個層次(如圖1所示),各層次按照以下方式進行劃分,並實現明確分工:
![多層分散式系統 多層分散式系統](/img/b/3d4/QO3UWMxMTO3MzYmFmNzQmZ4kzMwEWMjZDN2IWYkVmYmJmZiRjZwUTYvMWaw9SbvNmLz9mYlNmYu4GZj5yZtl2ai9yL6MHc0RHa.jpg)
圖1 多層分散式系統示意圖
(1) 瘦客戶層(客戶端):實現用戶界面的表示邏輯,提供簡潔的人機互動界面,完成數據的輸入/輸出;
(2) 業務服務層(套用伺服器):完成業務邏輯,實現客戶與資料庫對話的橋樑。同時,在這一層中,還應實現分散式管理、負載均衡、Fail/Recover、安全隔離等;
(3) 數據服務層:提供數據的存儲服務,一般就是資料庫系統。
多層分散式系統的主要特點
多層分散式系統克服了傳統的兩層Client/Server模式的許多缺點,其主要特點如下:
(1) 安全性:中間層隔離了客戶直接對數據伺服器的訪問,保護了資料庫的安全;
(2) 穩定性:中間層緩衝Client與資料庫的實際連線,使資料庫的實際連線數量遠小於Client套用數量,能夠在一台伺服器故障的情況下,透明地把Client工作轉移到其他具有同樣業務功能的服務上;
(3) 易維護:由於業務邏輯在中間伺服器,當業務規則變化後,客戶端程式基本不做改動;
(4) 快速回響:通過負載均衡以及中間層快取數據能力,可以提高對客戶端的回響速度;
(5) 系統擴展靈活:基於多層分布體系,當業務增大時,可以在中間層部署更多的套用伺服器,提高對客戶端的回響,而所有變化對客戶端透明。
多層分散式系統的開發
分散式多層系統的開發主要考慮三方面的技術:
(1) 開發環境:開發人員需要一種創建新組件、並將已有組件加以集成的開發環境;
(2) 應用程式的集成:開發人員需要集成各種應用程式,以創建出更強大的套用;
(3) 應用程式的配置:分散式多層體系的開發需要配置平台的支持,以便在用戶劇增時能有效地擴展,並保持系統的穩定。
多層分散式系統的開發規範
多層分散式系統的開發,比較重要的有兩種規範,即CORBA和DCOM。其中,CORBA提供跨平台的能力,DCOM主要用於Windows平台。同時,隨著分散式套用的發展,舊的硬體/軟體平台的不斷更新,跨硬體平台、網路環境、作業系統以及跨不同資料庫的套用系統不斷出現,使傳統的開發工具越來越陷入尷尬境地,因此中間件應運而生。
CORBA
在各種
分散式體系結構中,由OMG採納的公共對象請求代理結構CORBA模型具有較完善的規範標準,並且嚴格地區分了CORBA規範與CORBA產品。CORBA保證應用程式的可互操作性以及對於硬體平台、作業系統、程式語言以及網路與通信協定的無關性。CORBA規範中包含一系列單獨的規範,例如OMG接口定義語言IDL、網路通信協定GIOP和IIOP、可移植對象適配器POA,、CORBA組件模型CCM等。
CORBA建立在OMG的對象模型基礎之上,主要有三個關鍵部分:接口定義語言IDL、
對象請求代理ORB和標準通信協定IIOP。對象請求代理(ORB)是OMA的核心基礎設施,CORBA規範規定了ORB的標準體系結構。ORB負責完成查找請求的對象實現、讓對象實現準備好接收請求、傳遞構成請求的數據等任務所需的全部機制。客戶程式所看到的對象接口完全獨立於對象所處的位置、實現對象的程式設計語言以及對象接口中未反映的其他特性。
DCOM
微軟公司的分散式COM (DCOM)擴展了
組件對象模型技術(COM),使其能夠支持在區域網路、廣域網甚至Internet上不同計算機的對象之間的通訊。使用DCOM,其應用程式就可以在位置上達到分布性,從而滿足客戶和套用的需求。當在做分散式計算時,DCOM處理網路協定的低層次的細節問題,從而能夠集中精力解決用戶所要求的問題。
DCOM的技術特點在於每個程式模組無需存儲各客戶端,更無需下載程式本身在客戶端運行。唯一要做的事是在伺服器記憶體放一份DCOM部件,不同地方的用戶即可通過網路來訪問這一DCOM部件。當然DCOM技不只是節省了存儲空間。而且,使用DCOM部件構成的大型程式,可以把處理相同工作的部分分割開來交給一個專門的軟體模組完成。而其他程式或其他DCOM部件只需對其進行調用,即可獲得所需信息。當程式流程發生變化時,程式設計師只要對變更的部分進行修改,即可同時對其他單位的程式更新,有效地提高了整個系統的靈活性。
中間件
中間件(middleware)是一種獨立的系統軟體或服務程式,是套用系統中介於套用層和網路層之間的一個功能層次,它能使套用系統獨立於由異構的作業系統、硬體平台與通信協定組成的底層環境。圖2是兩種軟體結構的比較。
![多層分散式系統 多層分散式系統](/img/0/c68/gY1ADZlBjM3IjM4kjM1EWOmljM4UTMzUGNhBjMhRjZ0IjMkZjNxIDNvMWaw9SbvNmLz9mYlNmYu4GZj5yZtl2ai9yL6MHc0RHa.jpg)
圖2 兩種軟體結構的比較
中間件位於客戶機伺服器的
作業系統之上,管理計算機資源和
網路通信,它擴展了客戶/伺服器結構,形成了一個包括客戶、中間件和伺服器在內的三層結構及多層次結構,為開發可靠的、可擴展的、複雜的事務密集型套用系統提供了有力的支持。
中間件也是一類軟體,它的首要任務是實現套用與平台無關的互操作,其次能夠合理的管理
網路通信資源。按照idc的分類方法,中間件可分為六類,第一類是終端仿真/螢幕轉換中間件,第二類是
資料庫訪問中間件,第三類是遠程過程調用中間件,第四類是訊息中間件,第五類是交易中間件,第六類是對象中間件。