1、中間件的概念
隨著計算機技術的飛速發展,各種各樣的應用軟件需要在各種平臺
由于中間件技術正處于發展過程之中,因此目前尚不能對它進行精確的定義。
從中間件的定義可以看出,中間件是一類軟件,而非一種軟件 ;中間件不僅僅實現互連,還要實現應用之間的互操作 ;中間件是基于分布式處理的軟件,定義中特別強調了其網絡通訊功能。
2、中間件特點及優勢
程序員通過調用中間件提供的大量API,實現異構環境的通訊,從而屏蔽異構系統中復雜的操作系統和網絡協議。
中間件提供客戶機與服務器之間的連接服務,這些服務具有標準的程序接口和協議。針對不同的操作系統和硬件平臺,它們可以有符合接口和協議規范的多種實現。
中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源。中間件軟件管理著客戶端程序和數據庫或者早期應用軟件之間的通訊。
中間件在分布式的客戶和服務之間扮演著承上啟下的角色,如事務管理、負載均衡以及基于Web的計算等。
利用這些技術有助于減輕應用軟件開發者的負擔,使他們利用現有的硬件設備、操作系統、網絡、數據庫管理系統以及對象模型創建分布式應用軟件時更加得心應手。由于中間件能夠保護企業的投資,保證應用軟件的相對穩定,實現應用軟件的功能擴展 ;同時中間件產品在很大程度上簡化了一個由不同硬件構成的分布式處理環境的復雜性,所以它的出現正日益引起用戶的關注。
世界著名的咨詢機構The Standish Group 在一份研究報告中歸納了中間件的十大優越性:
?。?) 系統運行:沒有使用中間件的應用系統,其初期的資金及運行費用的投入要比同規模的使用中間件的應用系統多一倍。
?。?) 開發周期:基礎軟件的開發是一件耗時的工作,若使用標準商業中間件則可縮短開發周期50%~75%。
?。?) 減少項目開發風險:研究表明,沒有使用標準商業中間件的關鍵應用系統開發項目的失敗率高于90%。企業自己開發內置的基礎(中間件)軟件是得不償失的,項目總的開支至少要翻一倍,甚至會十幾倍。
?。?) 合理運用資金:借助標準的商業中間件,企業可以很容易地在現有或遺留系統之上或之外增加新的功能模塊,并將它們與原有統無縫集合。依靠標準的中間件,可以將老的系統改頭換面成新潮的Internet/Intranet 應用系統。
?。?) 應用集合:依靠標準的中間件可以將現有的應用、新的應用和購買的商務構件融合在一起進行應用集合。
?。?) 系統維護:需要一提的是,基礎(中間件)軟件的自我開發是要付出很高代價的,此外,每年維護自我開發的基礎(中間件)軟件的開支則需要當初開發費用的15%~25%,每年應用程序的維護開支也還需要當初項目總費用的10%~20%左右。而在一般情況下,購買標準商業中間件每年只需付出產品價格的15%~20%的維護費,當然,中間件產品的具體價格要依據產品購買數量及哪一家廠商而定。
?。?) 質量:基于企業自我建造的基礎(中間件)軟件平臺上的應用系統,每增加一個新的模塊,就要相應地在基礎(中間件)軟件之上進行改動。而標準的中間件在接口方面都是清晰和規范的。標準中間件的規范化模塊可以有效地保證應用系統質量及減少新舊系統維護開支。
?。?) 技術革新:企業對自我建造的基礎(中間件)軟件平臺的頻繁革新是極不容易實現的(不實際的)。而購買標準的商業中間件,則對技術的發展與變化可以放心,中間件廠商會責無旁貸地把握技術方向和進行技術革新。
?。?0) 增加產品吸引力:不同的商業中間件提供不同的功能模型,合理使用,可以讓你的應用更容易增添新的表現形式與新的服務項目。從另一個角度看,可靠的商業中間件也使得企業的應用系統更完善,更出眾。
具體地說,中間件屏蔽了低層操作系統的復雜性,使程序開發人員面對一個簡單而統一的開發環境,減少程序設計的復雜性,將注意力集中在自己的業務上,不必再為程序在不同系統軟件上的移植而重復工作,從而大大減少了技術上的負擔。
中間件帶給應用系統的不只是開發的簡單、開發周期的縮短,也減少了系統的維護、運行和管理的工作量,還減少了計算機總體費用的投入。The Standish Group 的調查報告顯示,由于采用了中間件技術,應用系統的總建設費用可以減少50%左右。在網絡經濟大發展、電子商務大發展的今天,從中間件獲得利益的不只是IT廠商,IT用戶同樣是贏家,并且是更有把握的贏家。
中間件作為新層次的基礎軟件,其重要作用是將不同時期、在不同操作系統上開發應用軟件集成起來,彼此像一個天衣無縫的整體協調工作,這是操作系統、數據庫管理系統本身做不了的。中間件的這一作用,在技術不斷發展之后,使以往在應用軟件上的勞動成果仍然物有所用,節約了大量的人力、財力投入。
3、中間件的應用領域與分類
隨著計算機軟件技術的發展,中間件技術也已經日漸成熟,并且出現了不同層次、不同類型的中間件產品。按照IDC的分類方法,中間件可分為六類。分別是數據訪問中間件、遠程過程調用中間件、消息中間件、交易中間件、對象中間件等。
數據訪問中間件:是為了建立數據應用資源互操作的模式,對異構環境下的數據庫實現聯接或文件系統實現聯接的中間件;
遠程過程調用中間件:通過這種遠程過程調用機制,程序員編寫客戶方的應用,需要時可以調用位于遠端服務器上的過程;
消息中間件:用來屏蔽掉各種平臺及協議之間的特性,進行相互通信,實現應用程序之間的協同;
交易中間件:是在分布、異構環境下提供保證交易完整性和數據完整性的一種環境平臺;
對象中間件:在分布、異構的網絡計算環境中,可以將各種分布對象有機地結合在一起,完成系統的快速集成,實現對象重用。
面向對象的中間件是對象技術和分布式計算發展的產物,業界普遍認為面向對象是今后中間件發展的主流方向,它提供一種通訊機制,透明地在異構的分布計算環境中傳遞對象請求,而這些對象可以位于本地或者遠程機器。
面向對象標準原本只有一個,即CORBA(公共對象請求代理體系結構),該標準由包括BEA、IBM、Oracle、Sun和Sybase等公司在內的眾多廠商一起制定,從而形成了一個龐大的CORBA聯盟勢力。后來,Sun推出了企業級JavaBeans(EJB),用自己易使用的程序模型來對CORBA做出了改進。微軟COM(Component Object Model,組件對象模型)的出現,使面向對象中間件市場里又多了一個標準,這樣,面向對象中間件產品實際上形成了兩大標準,一是微軟的COM,一是JavaBeans。
從宏觀上看,中間件可以分為3大類:
數據類:用于數據的存取、利用和增值,此類中間件用于構建以數據為中心的應用
處理類:把分布在網絡結點上的各個應用或處理連接在一起,形成一個統一的分布式應用。
分布式構件類:支持構件式應用,未來應用的發展方向,目前競爭激烈。
為了更加清晰起見,我們把中間件細分為12種,如下表:
序號 | 種類 | 優劣 | 產品 |
1 | 數據庫系統的產品 管理數據庫連接,抽象網絡協議。一般由數據庫廠商或支持多數據庫的中間件提供 | 數據庫廠商的產品功能較強、性能較好。而獨立于數據庫廠商的產品在用于多數據庫環境時效率有所降低 | Oracle Net8Sybase Netlib,Protocol services Intersolv SequeLink client |
2 | 數據庫存取APIs 支持對數據庫存取的編程,可以使用存儲過程。OO數據庫常為OO編程語言,如Java/C++提供適應ODMG的接口 |
數據庫廠商的APIs可支持對數據庫所有功能的存取,因而適合編寫OLTP的應用。而ODBC或JDBC更適合多數據庫的環境 |
IBM DB2 CLIOracle Net8,Call InterfaceMicrosoft ODBC,OLE DBODI’s PSE |
3 | 數據遷移、轉換 用于數據部署、轉換、信息增值。常作為數據倉庫解決方案的一部分 |
使完全不同的數據包和遺留的應用能協同工作,但需要建立諸如時間、數據優選和整合、以及資源等要素 | IBM Data PropagatorSybase Replication ServerPlatinum InfoPumpD2K Tapestry |
4 | 底層的同步服務(RPC) 使調用遠端的過程和在本地一樣。在被調用的處理未完以前,調用進程處于阻塞狀態 | 點但的代碼抽象,只有在所有的Server 都是在線的情形才能工作。不適合移動或Internet應用 | DCE-RPC (微軟把它用在DOM中)Borland EnteraNoblenet RPC |
5 | 對需要高性能的異步通訊的應用非常有用。但需要所有的Server 都在線 | Peerlogic PipesMomentum XIPC東方通科技TongLINK | |
6 | 應用級的消息隊列 是簡單的消息中間件的擴展,增加了隊列、脫機處理能力、可靠投遞和發布訂閱等功能 |
TIBCO RendenousIBM MQ SeriesMS Message QueueLevel8 FalconMQ東方通科技 TongLINK/Q清華北美 TH - MT | |
7 | 應用協調器 通常是應用級消息隊列的擴展,增加了許多工具用于建立適合事件服務的集成應用 |
有效地節約集成的時間特別是針對應用包或工作流產品 |
Vitria VelocitiActive Software,ActiveWebOberon ProsperpNEON NEONetTSI Mercator |
8 | COM+/DNA 微軟的分布式構件平臺,使企業應用更加可擴充和可管理 | 從COM發展而來,是構件市場上的主流產品。尚需要增加針對企業應用的可靠性 | MS,COM,DCOM,COM+MS MTSMessage Queue ServerActiveDirectory(future) |
9 | CORBA 平臺 OMG 標準,通過ORB 把分布的對象連接成一個邏輯上統一的整體 | 工業組織的標準,可用不同的方式實現,以提高互操作能力 | Iona OrbixBorland/Visigenic,VisibrokerIBM ComponentBrokerBEA Iceberg東方通科技 TongBroker |
10 | 交易監控器 用于開發實時的OLTP應用的服務器和API,用于管理交易,共享資源 |
已證明是建造OLTP應用的有效手段。通常是非面向對象的,帶有特有和復雜的API | BEA TUXEDOIBM TX 系列東方通科技 TongEASY清華北美 JavaST |
11 | 應用服務器 針對Internet、Intranet和其他分布式構件應用,提供服務方構件的完整環境 | 與交易監控器類似,只不過是面向對象的、支持構件、具有標準API | NetDynamicsIBM Compont – BrokerNetscape KivaOracle App. Ser東方通科技 TongWEB清華北美 WebFirst |
12 | 工作流/應用集成 大雜燴,把工作流和應用開發技術如消息及分布式構件結合在一起 | 使處理能方便自動地和構件、Script 應用、工作流行為結合在一起,同時集成文檔和電子郵件 | LSS FlowmanIBM FlowmarkAction,Technologies,ActionWorksVitria Business Agiliti |
原文轉自:http://www.anti-gravitydesign.com