第五部分中間件與JSP 5.1中間件技術 隨著企業的IT環境越益復雜,企業中可能會擁有多種操作系統、不同的數據庫、異構的網絡環境以及若干應用等,那么如何把它們結合成一個有機的協同工作整體,真正實現企業跨平臺分布式應用呢?中間件便是解決之道,它用自己的復雜換取了企業應用的簡單。那么,復雜的中間件到底包含哪些種類?分別完成什么功能呢? 九十年代初客戶機/服務器計算模式開始成為主流技術,將數據統一存儲在數據服務器上,而有關的業務邏輯都在客戶端實現,即所謂胖終端的解決方案,這種兩層結構的模式大大阻礙著系統的發展,單一的服務器結構緊密地依賴供應商;數據存取受到限制;難以擴展到大企業廣域網或國際互聯網;也難以管理客戶端的機群。隨著用戶業務需求的增長及Internet/Intranet的普及,將以三層或四層體系結構取代。三層結構就是把用戶端的業務邏輯獨立出來,并與數據庫服務器中存儲過程合并在一起,構成應用層,以提高計算能力,實現靈活性。在這種結構中用戶端僅僅是處理圖形用戶界面(GUI),而目前趨勢是采用具有交互功能的瀏覽器,即形成瘦終端的工作方式,為此,中間又增加了一層,稱為Web服務器層,形成了四層體系結構。 這類多層結構的分布系統,各服務器和終端機之間都是通過網絡連接起來的,并有大量信息和數據進行傳遞。對每個應用系統而言,在設計和實現時需要開發的,僅是在應用服務器上的業務邏輯部分的軟件,除此之外,還必須要設計處理分布系統所特有的功能的軟件,而目前的系統軟件(操作系統和支撐軟件)都不支持。為此出現了中間件,它是處于系統軟件和應用軟件之間的一批軟件。使設計者集中設計與應用有關的部分,大大簡化了設計和維護工作。通過五、六年的大量應用和實踐,中間件已有一批成熟的產品,并成為設計分布系統時不可缺少的軟件。僅僅幾年時間,中間件迅猛發展,每年的市場銷售額均是成倍地增長。
5.1.1什么是中間件
中間件是處于操作系統和應用程序之間的軟件,也有人認為它應該屬于操作系統中的一部分。人們在使用中間件時,往往是一組中間件集成在一起,構成一個平臺(包括開發平臺和運行平臺),但在這組中間件中必需要有一個通信中間件,因此, 中間件=平臺+通信 這個定義也限定了只有用于分布式系統中才能稱為中間件,同時還可以把它與支撐軟件和實用軟件區分開來。
5.5.2中間件的作用和分類
要說清這個問題我們用一個生活中的實例來比喻。把分布式系統看作北京市區的交通系統,網絡看作市區馬路,通過交通工具(汽車)實現通信,每分鐘將有幾萬輛車在馬路上行駛,如果沒有相應的交通設施和管理規劃,北京市將會亂成一團,發生各種交通事故。 1. 通信處理(消息)中間件 首先要修好馬路,安裝紅綠燈,設立交通管理機構,制定出交通規則,也就是我們要建網和制定出通信協議,能在不同平臺之間通信,實現分布式系統中可靠的、高效的、實時的跨平臺數據傳輸(如TongLINK、BEA eLink 、IBM的MQSeries等),稱為消息中間件。這是中間件中唯一不可缺少的,是需求量最大的中間件產品,目前在Windows 2000操作系統中已包含了其部分功能。 2. 事務處理(交易)中間件 在分布式事務處理系統中要處理大量事務,常常在系統中要同時進行上萬筆事務。例如在北京市就要設置各種運載汽車,完成日常的運載,同時要隨時監視汽車運行,出現故障時,要有排除措施,發生堵塞時要進行調度。在聯機事務處理系統(OLTP)中,每筆事務常常要多臺服務器上的程序順序地協調完成,一旦中間發生某種故障時,不但要完成恢復工作,而且要自動切換系統,達到系統永不停機,實現高可靠性運行;同時要使大量事務在多臺應用服務器能實時并發運行,并進行負載平衡地調度,實現昂貴的可靠性機和大型計算機系統同等的功能,為了實現這個目標,要求系統具有監視和調度整個系統的功能。BEA的 Tuxedo由此而著名,它成為增長率最高的廠商。一個事務處理平臺,根據X/OPEN的參數模型規定,應由事務處理中間件、通信處理中間件以及數據存取管理中間件三部分組成。東方通科技公司的TongLINK 和TongEASY實現了這個參考模型規定。 3. 數據存取管理中間件 在分布式系統中,重要的數據都集中存放在數據服務器中,它們可以是關系型的、復合文檔型、具有各種存放格式的多媒體型,或者是經過加密或壓縮存放的,該中間件將為在網絡上虛擬緩存、格式轉換、解壓等帶來方便。 4. Web服務器中間件 瀏覽器圖形用戶界面已成為公認規范,然而它的會話能力差、不能作數據寫入、受HTTP協議的限制等,就必需進行修改和擴充,形成了 Web服務器中間件,如 SilverStream公司的產品。 5. 安全中間件 一些軍事、政府和商務部門上網的最大障礙是安全保密問題,而且不能使用國外提供的安全措施(如防火墻、加密、認證等),必需用國產的產品。產生不安全因素是由操作系統引起的,但必需要用中間件去解決,以適應靈活多變的要求。 6. 跨平臺和構架的中間件 當前開發大型應用軟件通常采用基于構架和構件技術,在分布系統中,還需要集成各節點上的不同系統平臺上的構件或新老版本的構件,由此產生了構架中間件,功能最強的是CORBA,可以跨任意平臺,但是太龐大;JavaBeans較靈活簡單,很適合于做瀏覽器,但運行效率差;DCOM模型主要適合 Windows平臺,已廣泛使用。實際上國內新建系統主要是UNIX(包括LINUX)和 Windows,因此針對這兩個平臺建立相應的中間件要實用得多。 7. 專用平臺中間件 為特定應用領域設計參考模式,建立相應構架,配置相應的構件庫和中間件,為應用服務器開發和運行特定領域的關鍵任務(如電子商務、網站等)。 8. 網絡中間件 它包括網管、接入、網絡測試、虛擬社區、虛擬緩沖等,也是當前最熱門的研發項目。
5.5.3 中間件模型和形態
中間件從誕生起,僅僅是五年時間,但發展極其迅速,但在技術上還處于成長階段,還沒有統一的標準和模型,通常都是用C++語言以面向對象的技術來實現的,但是它的特性已超出面向對象的表達能力,由于它屬于可重用構件,目前趨向于用構件技術來實現。然而中間件要涉及軟件的所有標準、規范和技術,它含有更多的內涵,因為它包括平臺功能,自身具有自治性、自主性、隔離性、社會化、激發性、主動性、并發性、認識能力等特性,是近似于Agent(代理)的結構,采用Agent的概念和技術更合適一些,建立模型和規范是促進技術發展的核心措施。
|