天天看點

J2EE、CORBA、DNA三種主流中間件平台比較(1)

一、概述

  1.中間件的概念

  

  随着計算機技術的飛速發展,各種各樣的應用軟體需要在各種平台之間進行移植,或者一個平台需要支援多種應用軟體和管理多種應用系統,軟、硬體平台和應用系統之間需要可靠和高效的資料傳遞或轉換,使系統的協同性得以保證。這些,都需要一種構築于軟、硬體平台之上,同時對更上層的應用軟體提供支援的軟體系統,而中間件正是在這個環境下應孕而生。

  

  由于中間件技術正處于發展過程之中,是以目前尚不能對它進行精确的定義。

  

  比較流行的定義是:中間件是一種獨立的系統軟體或服務程式,分布式應用軟體借助這種軟體在不同的技術之間共享資源。中間件位于客戶機/伺服器的作業系統之上,管理計算資源和網絡通訊。

  

  從中間件的定義可以看出,中間件是一類軟體,而非一種軟體;中間件不僅僅實作互連,還要實作應用之間的互操作;中間件是基于分布式處理的軟體,定義中特别強調了其網絡通訊功能。

  

  2.中間件特點及優勢

  

  通常意義下,中間件應具有以下的一些特點:滿足大量應用的需要;運作于多種硬體和OS平台;支援分布式計算,提供跨網絡、硬體和OS平台的透明性的應用或服務的互動功能;支援标準的協定;支援标準的接口。

  

  程式員通過調用中間件提供的大量API,實作異構環境的通訊,進而屏蔽異構系統中複雜的作業系統和網絡協定。

  

  中間件提供客戶機與伺服器之間的連接配接服務,這些服務具有标準的程式接口和協定。針對不同的作業系統和硬體平台,它們可以有符合接口和協定規範的多種實作。

  

  由于标準接口對于可移植性和标準協定對于互操作性的重要性,中間件已成為許多标準化工作的主要部分。對于應用軟體開發,中間件遠比作業系統和網絡服務更為重要,中間件提供的程式接口定義了一個相對穩定的高層應用環境,不管底層的計算機硬體和系統軟體怎樣更新換代,隻要将中間件更新更新,并保持中間件對外的接口定義不變,應用軟體幾乎不需任何修改,進而保護了企業在應用軟體開發和維護中的重大投資。

  

  中間件是一種獨立的系統軟體或服務程式,分布式應用軟體借助這種軟體在不同的技術之間共享資源。中間件軟體管理着用戶端程式和資料庫或者早期應用軟體之間的通訊。

  

  中間件在分布式的客戶和服務之間扮演着承上啟下的角色,如事務管理、負載均衡以及基于Web的計算等。

  

  利用這些技術有助于減輕應用軟體開發者的負擔,使他們利用現有的硬體裝置、作業系統、網絡、資料庫管理系統以及對象模型建立分布式應用軟體時更加得心應手。由于中間件能夠保護企業的投資,保證應用軟體的相對穩定,實作應用軟體的功能擴充;同時中間件産品在很大程度上簡化了一個由不同硬體構成的分布式處理環境的複雜性,是以它的出現正日益引起使用者的關注。

  

  世界著名的咨詢機構The Standish Group在一份研究報告中歸納了中間件的十大優越性:

  

  (1)應用開發:The Standish Group 分析了100個關鍵應用系統中的業務邏輯程式、應用邏輯程式及基礎程式所占的比例;業務邏輯程式和應用邏輯程式僅占總程式量的30%,而基礎程式占了70%,使用傳統意義上的中間件一項就可以節省25%~60%的應用開發費用。如是以新一代的中間件系列産品來組合應用,同時配合以可複用的商務對象構件,則應用開發費用可節省至80%。

  

  (2)系統運作:沒有使用中間件的應用系統,其初期的資金及運作費用的投入要比同規模的使用中間件的應用系統多一倍。

  

  (3)開發周期:基礎軟體的開發是一件耗時的工作,若使用标準商業中間件則可縮短開發周期50%~75%。

  

  (4)減少項目開發風險:研究表明,沒有使用标準商業中間件的關鍵應用系統開發項目的失敗率高于90%。企業自己開發内置的基礎(中間件)軟體是得不償失的,項目總的開支至少要翻一倍,甚至會十幾倍。

  

  (5)合理運用資金:借助标準的商業中間件,企業可以很容易地在現有或遺留系統之上或之外增加新的功能子產品,并将它們與原有統無縫集合。依靠标準的中間件,可以将老的系統改頭換面成新潮的Internet/Intranet 應用系統。

  

  (6)應用集合:依靠标準的中間件可以将現有的應用、新的應用和購買的商務構件融合在一起進行應用集合。

  

  (7)系統維護:需要一提的是,基礎(中間件)軟體的自我開發是要付出很高代價的,此外,每年維護自我開發的基礎(中間件)軟體的開支則需要當初開發費用的15%~25%,每年應用程式的維護開支也還需要當初項目總費用的10%~20%左右。而在一般情況下,購買标準商業中間件每年隻需付出産品價格的15%~20%的維護費,當然,中間件産品的具體價格要依據産品購買數量及哪一家廠商而定。

  

  (8)品質:基于企業自我建造的基礎(中間件)軟體平台上的應用系統,每增加一個新的子產品,就要相應地在基礎(中間件)軟體之上進行改動。而标準的中間件在接口方面都是清晰和規範的。标準中間件的規範化子產品可以有效地保證應用系統品質及減少新舊系統維護開支。

  (9)技術革新:企業對自我建造的基礎(中間件)軟體平台的頻繁革新是極不容易實作的(不實際的)。而購買标準的商業中間件,則對技術的發展與變化可以放心,中間件廠商會責無旁貸地把握技術方向和進行技術革新。

  

  (10)增加産品吸引力:不同的商業中間件提供不同的功能模型,合理使用,可以讓你的應用更容易增添新的表現形式與新的服務項目。從另一個角度看,可靠的商業中間件也使得企業的應用系統更完善,更出衆。

  

  具體地說,中間件屏蔽了低層作業系統的複雜性,使程式開發人員面對一個簡單而統一的開發環境,減少程式設計的複雜性,将注意力集中在自己的業務上,不必再為程式在不同系統軟體上的移植而重複工作,進而大大減少了技術上的負擔。

  

  中間件帶給應用系統的不隻是開發的簡單、開發周期的縮短,也減少了系統的維護、運作和管理的工作量,還減少了計算機總體費用的投入。The Standish Group的調查報告顯示,由于采用了中間件技術,應用系統的總建設費用可以減少50%左右。在網絡經濟大發展、電子商務大發展的今天,從中間件獲得利益的不隻是IT廠商,IT使用者同樣是赢家,并且是更有把握的赢家。

  

  中間件作為新層次的基礎軟體,其重要作用是将不同時期、在不同作業系統上開發應用軟體內建起來,彼此像一個天衣無縫的整體協調工作,這是作業系統、資料庫管理系統本身做不了的。中間件的這一作用,在技術不斷發展之後,使以往在應用軟體上的勞動成果仍然物有所用,節約了大量的人力、财力投入。

  

  3.中間件的應用領域與分類

  

  随着計算機軟體技術的發展,中間件技術也已經日漸成熟,并且出現了不同層次、不同類型的中間件産品。按照IDC 的分類方法,中間件可分為六類。分别是資料通路中間件、遠端過程調用中間件、消息中間件、交易中間件、對象中間件等。

  

  資料通路中間件:是為了建立資料應用資源互操作的模式,對異構環境下的資料庫實作聯接或檔案系統實作聯接的中間件;

  

  遠端過程調用中間件:通過這種遠端過程調用機制,程式員編寫客戶方的應用,需要時可以調用位于遠端伺服器上的過程;

  

  消息中間件:用來屏蔽掉各種平台及協定之間的特性,進行互相通信,實作應用程式之間的協同;

  

  交易中間件:是在分布、異構環境下提供保證交易完整性和資料完整性的一種環境平台;

  

  對象中間件:在分布、異構的網絡計算環境中,可以将各種分布對象有機地結合在一起,完成系統的快速內建,實作對象重用。

  

  目前國内外有不少廠商都開發出自己的中間件産品,其中有全球最大的獨立中間件廠商BEA公司,還有像IBM、Oracl e和Microsoft、HP、Sun等大廠商也早已涉足電子商務中間件。

  

  面向對象的中間件是對象技術和分布式計算發展的産物,業界普遍認為面向對象是今後中間件發展的主流方向,它提供一種通訊機制,透明地在異構的分布計算環境中傳遞對象請求,而這些對象可以位于本地或者遠端機器。

  

  面向對象标準原本隻有一個,即CORBA(公共對象請求代理體系結構),該标準由包括BEA、IBM、Oracle、Sun和Sybas e等公司在内的衆多廠商一起制定,進而形成了一個龐大的CORBA聯盟勢力。後來,Sun推出了企業級JavaBeans(EJB),用自己易使用的程式模型來對CORBA做出了改進。微軟COM(Component Object Model,元件對象模型)的出現,使面向對象中間件市場裡又多了一個标準,這樣,面向對象中間件産品實際上形成了兩大标準,一是微軟的COM,一是JavaBeans。

  

  從宏觀上看,中間件可以分為3大類:

  

  資料類:用于資料的存取、利用和增值,此類中間件用于建構以資料為中心的應用。

  

  處理類:把分布在網絡結點上的各個應用或處理連接配接在一起,形成一個統一的分布式應用。

  

  分布式構件類:支援構件式應用,未來應用的發展方向,目前競争激烈。

繼續閱讀