天天看點

Middleware【中間件】簡介

Middleware【中間件】

        什麼是中間件?一句話:中間件是一種計算機軟體連接配接了軟體部件或者應用程式。 這種軟體有一組服務構成,這些服務包括允許多程序運作在一個或者多個機器上以達到在網絡中互互相動的目的。

基本資訊

Definition        Middleware is computer software that connects software components and applications. The software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. This technology evolved to provide for interoperability in support of the move to coherent distributed architectures, which are used most often to support and simplify complex, distributed applications. It includes web servers, transaction monitors, and messaging-and-queueing software.      

定義        中間件是一種獨立的系統軟體或服務程式,分布式應用軟體借助這種軟體在不同的技術之間共享資源。中間件位于客戶機/ 伺服器的作業系統之上,管理計算機資源和網絡通訊。是連接配接兩個獨立應用程式或獨立系統的軟體。相連接配接的系統,即使它們具有不同的接口,但通過中間件互相之間仍能交換資訊。執行中間件的一個關鍵途徑是資訊傳遞。通過中間件,應用程式可以工作于多平台或 OS 環境。

通用中間件類型

        *企業服務總線(ESB : Enterprise Service Bus):ESB 是一種開放的、基于标準的分布式同步或異步資訊傳遞中間件。通過 XML、Web 服務接口以及标準化基于規則的路由選擇文檔等支援,ESB 為企業應用程式提供安全互用性。

        *事務處理(TP:Transaction Processing)監控器:為發生在對象間的事務處理提供監控功能,以確定操作成功實作。

        *分布式計算環境(DCE:Distributed Computing Environment):指建立運作在不同平台上的分布式應用程式所需的一組技術服務。

        *遠端過程調用(RPC:Remote Procedure Call):指客戶機向伺服器發送關于運作某程式的請求時所需的标準。

        *對象請求代理(ORB:Object Request Broker):為使用者提供與其他分布式網絡環境中對象通信的接口。

        *資料庫通路中間件(Database Access Middleware):支援使用者通路各種作業系統或應用程式中的資料庫。SQL 是該類中間件的其中一種。

        *資訊傳遞(Message Passing):電子郵件系統是該類中間件的其中一種。

        *基于 XML 的中間件(XML-Based Middleware):XML 允許開發人員為實作在 Internet 中交換結構化資訊而建立文檔。

        最早具有中間件技術思想及功能的軟體是 IBM 的 CICS,但由于 CICS 不是分布式環境的産物,是以人們一般把 Tuxedo 作為第一個嚴格意義上的中間件産品。Tuxedo 是 1984 年在當時屬于 AT&&T 的貝爾實驗室開發完成的,但由于分布式處理當時并沒有在商業應用上獲得像今天一樣的成功,Tuxedo 在很長一段時期裡隻是實驗室産品,後來被 Novell 收購,在經過 Novell 并不成功的商業推廣之後,1995 年被現在的 BEA 公司收購。盡管中間件的概念很早就已經産生,但中間件技術的廣泛運用卻是在最近 10 年之中。BEA 公司 1995 年成立後收購 Tuxedo 才成為一個真正的中間件廠商,IBM 的中間件 MQSeries 也是 90 年代的産品,其它許多中間件産品也都是最近幾年才成熟起來。國内在中間件領域的起步階段正是整個世界範圍内中間件的初創時期。東方通科技早在 1992 年就開始中間件的研究與開發, 1993 年推出第一個産品 TongLINK/Q。而中科院軟體所、國防科技大學等研究機構也對中間件技術進行了同步研究。可以說,在中間件領域,國内的起步時間并不比國外晚多少。

中間件的一些特點

        滿足大量應用的需要 ;   

        運作于多種硬體和 OS 平台 ;   

        支援分布式計算,提供跨網絡、硬體和 OS 平台的透明性的應用或服務的互動功能 ;   

        支援标準的協定 ;   

        支援标準的接口。   

        中間件可以應用于以下情形,如連接配接公司 LAN 和早期系統、交換兩個郵件系統間的資訊、支援 web 客戶機與資料庫伺服器交換資訊等。   

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

主要中間件的分類

        中間件所包括的範圍十分廣泛,針對不同的應用需求湧現出多種各具特色的中間件産品。但至今中間件還沒有一個比較精确的定義,是以,在不同的角度或不同的層次上,對中間件的分類也會有所不同。由于中間件需要屏蔽分布環境中異構的作業系統和網絡協定,它必須能夠提供分布環境下的通訊服務,我們将這種通訊服務稱之為平台。基于目的和實作機制的不同,我們将平台分為以下主要幾類:   

        遠端過程調用(Remote Procedure Call)面向消息的中間件(Message-Oriented Middleware)對象請求代理(Object Request Brokers)   

        它們可向上提供不同形式的通訊服務,包括同步、排隊、訂閱釋出、廣播等等,在這些基本的通訊平台之上,可構築各種架構,為應用程式提供不同領域内的服務,如事務處理監控器、分布資料通路、對象事務管理器 OTM 等。平台為上層應用屏蔽了異構平台的差異,而其上的架構又定義了相應領域内的應用的系統結構、标準的服務元件等,使用者隻需告訴架構所關心的事件,然後提供處理這些事件的代碼。當事件發生時,架構則會調用使用者的代碼。使用者代碼不用調用架構,使用者程式也不必關心架構結構、執行流程、對系統級 API 的調用等,所有這些由架構負責完成。是以,基于中間件開發的應用具有良好的可擴充性、易管理性、高可用性和可移植性。

中間件簡單解釋

        (附件 對“中間件”簡單解釋:為了解決應用程式對網絡過分依賴的問題采取了一種有效的方法,在客戶機和伺服器之間加一層軟體。)   

        中間件(middleware)是基礎軟體的一大類,屬于可複用軟體的範疇。顧名思義,中間件處于作業系統軟體與使用者的應用軟體的中間。   

        中間件在作業系統、網絡和資料庫之上,應用軟體的下層,總的作用是為處于自己上層的應用軟體提供運作與開發的環境,幫助使用者靈活、高效地開發和內建複雜的應用軟體。在衆多關于中間件的定義中,比較普遍被接受的是 IDC 表述的:中間件是一種獨立的系統軟體或服務程式,分布式應用軟體借助這種軟體在不同的技術之間共享資源,中間件位于客戶機伺服器的作業系統之上,管理計算資源和網絡通信。   

        IDC 對中間件的定義表明,中間件是一類軟體,而非一種軟體;中間件不僅僅實作互連,還要實作應用之間的互操作;中間件是基于分布式處理的軟體,最突出的特點是其網絡通信功能。

CICS

        最早具有中間件技術思想及功能的軟體是 IBM 的 CICS,但由于 CICS 不是分布式環境的産物,是以人們一般把 Tuxedo 作為第一個嚴格意義上的中間件産品。Tuxedo 是 1984 年在當時屬于 AT&&T 的貝爾實驗室開發完成的,但由于分布式處理當時并沒有在商業應用上獲得像今天一樣的成功,Tuxedo 在很長一段時期裡隻是實驗室産品,後來被 Novell 收購,在經過 Novell 并不成功的商業推廣之後,1995 年被現在的 BEA 公司收購。盡管中間件的概念很早就已經産生,但中間件技術的廣泛運用卻是在最近 10 年之中。BEA 公司 1995 年成立後收購 Tuxedo 才成為一個真正的中間件廠商,IBM 的中間件 MQSeries 也是 90 年代的産品,其它許多中間件産品也都是最近幾年才成熟起來。   

        1998 年 IDC 公司對于中間件有一個定義,并根據用途将其劃分為 6 個類别。如今所保留下來的隻有消息中間件和交易中間件,其他的已經被逐漸融合到其他産品中了,被包裹進去了,在市場上已經沒有單獨的産品形态出現了。例如,當時有一個叫螢幕資料轉換的中間件,其主要是針對 IBM 大機終端而設計産品,用于将 IBM 大機終端的字元界面轉化為使用者所喜歡的圖形界面,類似的東西當時都稱為中間件。但随着 IBM 大機環境越來越少,但是盛行一時的此類中間件如今已經很少再被單獨提及。

應用伺服器

        2000 年前後,網際網路盛行起來,随之産生了一個新的東西,就是應用伺服器。實際上,交易中間件也屬于是應用伺服器,為了區分,人們傳統的交易中間件稱為分布交易中間件,因它主要應用在分布式環境下,而将新的應用伺服器,稱為 J2EE 中間件,到目前為止,這都是市場上非常熱門的産品。   

        EAI 概念出來之後,市場上又推出了一些新的軟體産品,,例如工作流、Portal 等,但從分類上不知道怎麼歸類,向上不能夠劃歸應用,往下又不能歸入作業系統,于是就把它歸入了中間件,如此中間件的概念更加擴大了。目前,市場上對于中間件,各家的說法不一,客觀上也導緻了了解上的複雜性。

技術實作方法

        如今,市場上又推出了很多新的概念,例如三層結構、構件、Web 服務,其中風頭最勁的當屬 SOA(面向服務的架構)。實際上,他們都不是一個産品,而是一種技術的實作方法,是開發一個軟體的一種方法論。我們知道,最早軟體開發方法就是程式設計、寫代碼的,其缺點在于無法複用,為此提出了構件化的軟體開發方法,通過把程式設計中一些常用功能進行封裝,并規範統一接口,供其它程式調用,例如我們開發一個新軟體,可能要用到構件 1、構件 2、構件 3,那麼,我們隻要對其進行本地組裝,就可以得到我們想要的應用軟體。在網際網路得到普及重視之後,軟體開發方法在構件化基礎上又有新發展,核心思想是軟體并不需要囊括構件,所需要的僅僅是構件的運作結果,例如編寫一個通信傳輸軟體,就可以到網上尋找構件,并提出服務請求,得到結果後傳回,而不需要下載下傳構件并打包,這就是現在所說的 SOA。想要現實 SOA,就要規範構件接口,同時還要規範構件所送出的服務結果,如此,新的軟體開發的思想才能夠行的通。但 SOA 并不是一個産品,而是一種思想方法,而實作這種方法的基礎,如今看來隻有中間件。   

        國内在中間件領域的起步階段正是整個世界範圍内中間件的初創時期。東方通科技早在 1992 年就開始中間件的研究與開發,1993 年推出第一個産品 TongLINK/Q。而中科院軟體所、國防科技大學等研究機構也對中間件技術進行了同步研究。可以說,在中間件領域,國内的起步時間并不比國外晚多少。

主要中間件的分類

        中間件分類(IDC 的分類):大緻可分為六類:終端仿真/螢幕轉換中間件、資料通路中間件、遠端過程調用中間件、消息中間件、交易中間件、對象中間件。   

        中間件所包括的範圍十分廣泛,針對不同的應用需求湧現出多種各具特色的中間件産品。但至今中間件還沒有一個比較精确的定義,是以,在不同的角度或不同的層次上,對中間件的分類也會有所不同。由于中間件需要屏蔽分布環境中異構的作業系統和網絡協定,它必須能夠提供分布環境下的通訊服務,我們将這種通訊服務稱之為平台。基于目的和實作機制的不同,我們将平台分為以下主要幾類:   

        遠端過程調用中間件(Remote Procedure Call)   

        面向消息的中間件(MesSAge-Oriented Middleware)   

        對象請求代理中間件(object RequeST Brokers)   

        它們可向上提供不同形式的通訊服務,包括同步、排隊、訂閱釋出、廣播等等,在這些基本的通訊平台之上,可構築各種架構,為應用程式提供不同領域内的服務,如事務處理監控器、分布資料通路、對象事務管理器 OTM 等。平台為上層應用屏蔽了異構平台的差異,而其上的架構又定義了相應領域内的應用的系統結構、标準的服務元件等,使用者隻需告訴架構所關心的事件,然後提供處理這些事件的代碼。當事件發生時,架構則會調用使用者的代碼。使用者代碼不用調用架構,使用者程式也不必關心架構結構、執行流程、對系統級 API 的調用等,所有這些由架構負責完成。是以,基于中間件開發的應用具有良好的可擴充性、易管理性、高可用性和可移植性。

主要中間件簡介

        下面,針對幾類主要的中間件分别加以簡要的介紹。

1、遠端過程調用        遠端過程調用是一種廣泛使用的分布式應用程式處理方法。一個應用程式使用 RPC 來“遠端”執行一個位于不同位址空間裡的過程,并且從效果上看和執行本地調用相同。事實上,一個 RPC 應用分為兩個部分:server 和 Client。server 提供一個或多個遠端過程;client 向 server 發出遠端調用。server 和 client 可以位于同一台計算機,也可以位于不同的計算機,甚至運作在不同的作業系統之上。它們通過網絡進行通訊。相應的 stub 和運作支援提供資料轉換和通訊服務,進而屏蔽不同的作業系統和網絡協定。在這裡 RPC 通訊是同步的。采用線程可以進行異步調用。   

        在 RPC 模型中,client 和 server 隻要具備了相應的 RPC 接口,并且具有 RPC 運作支援,就可以完成相應的互操作,而不必限制于特定的 server。是以,RPC 為 client/server 分布式計算提供了有力的支援。同時,遠端過程調用 RPC 所提供的是基于過程的服務通路,client 與 server 進行直接連接配接,沒有中間機構來處理請求,是以也具有一定的局限性。比如,RPC 通常需要一些網絡細節以定位 server;在 client 送出請求的同時,要求 server 必須是活動的等等。

2、面向消息的中間件

        MOM 指的是利用高效可靠的消息傳遞機制進行平台無關的資料交流,并基于資料通信來進行分布式系統的內建。通過提供消息傳遞和消息排隊模型,它可在分布環境下擴充程序間的通信,并支援多通訊協定、語言、應用程式、硬體和軟體平台。目前流行的 MOM 中間件産品有 IBM 的 MQSeries、BEA 的 MessageQ 等。消息傳遞和排隊技術有以下三個主要特點:  

        通訊程式可在不同的時間運作:程式不在網絡上直接互相通話,而是間接地将消息放入消息隊列,因為程式間沒有直接的聯系。是以它們不必同時運作。消息放入适當的隊列時,目标程式甚至根本不需要正在運作;即使目标程式在運作,也不意味着要立即處理該消息。   

        對應用程式的結構沒有限制:在複雜的應用場合中,通訊程式之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造并沒有增加應用程式的複雜性。   

        程式與網絡複雜性相隔離:程式将消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯的全部活動,比如維護消息隊列、維護程式和隊列之間的關系、處理網絡的重新啟動和在網絡中移動消息等是 MOM 的任務,程式不直接與其它程式通話,并且它們不涉及網絡通訊的複雜性。

3、對象請求代理        随着對象技術與分布式計算技術的發展,兩者互相結合形成了分布對象計算,并發展為當今軟體技術的主流方向。1990 年底,對象管理集團 OMG 首次推出對象管理結構 OMA(ObjECt Management Architecture),對象請求代理(Object Request Broker)是這個模型的核心元件。它的作用在于提供一個通信架構,透明地在異構的分布計算環境中傳遞對象請求。CORBA 規範包括了ORB的所有标準接口。1991 年推出的 CORBA 1.1 定義了接口描述語言 OMG IDL 和支援 Client/Server 對象在具體的 ORB 上進行互操作的 API。CORBA 2.0 規範描述的是不同廠商提供的 ORB 之間的互操作。   

        對象請求代理(ORB)是對象總線,它在 CORBA 規範中處于核心地位,定義異構環境下對象透明地發送請求和接收響應的基本機制,是建立對象之間 client/server 關系的中間件。ORB 使得對象可以透明地向其他對象送出請求或接受其他對象的響應,這些對象可以位于本地也可以位于遠端機器。ORB 攔截請求調用,并負責找到可以實作請求的對象、傳送參數、調用相應的方法、傳回結果等。client 對象并不知道同 server 對象通訊、激活或存儲 server 對象的機制,也不必知道 server 對象位于何處、它是用何種語言實作的、使用什麼作業系統或其他不屬于對象接口的系統成分。   

        值得指出的是 client 和 server 角色隻是用來協調對象之間的互相作用,根據相應的場合,ORB 上的對象可以是 client,也可以是 server,甚至兼有兩者。當對象發出一個請求時,它是處于 client 角色;當它在接收請求時,它就處于 server 角色。大部分的對象都是既扮演 client 角色又扮演 server 角色。另外由于 ORB 負責對象請求的傳送和 server 的管理,client 和 server 之間并不直接連接配接,是以,與 RPC 所支援的單純的 Client/Server 結構相比,ORB 可以支援更加複雜的結構。

4、事務處理監控

​        事務處理監控(Transaction processing monitors)最早出現在大型機上,為其提供支援大規模事務處理的可靠運作環境。随着分布計算技術的發展,分布應用系統對大規模的事務處理提出了需求,比如商業活動中大量的關鍵事務處理。事務處理監控界于 client 和 server 之間,進行事務管理與協調、負載平衡、失敗恢複等,以提高系統的整體性能。它可以被看作是事務處理應用程式的“作業系統”。總體上來說,事務處理監控有以下功能:   

        程序管理,包括啟動 server 程序、為其配置設定任務、監控其執行并對負載進行平衡。   

        事務管理,即保證在其監控下的事務處理的原子性、一緻性、獨立性和持久性。   

        通訊管理,為 client 和 server 之間提供了多種通訊機制,包括請求響應、會話、排隊、訂閱釋出和廣播等。   

        事務處理監控能夠為大量的 client 提供服務,比如飛機定票系統。如果 server 為每一個 client 都配置設定其所需要的資源的話,那 server 将不堪重負。但實際上,在同一時刻并不是所有的 client 都需要請求服務,而一旦某個 client 請求了服務,它希望得到快速的響應。事務處理監控在作業系統之上提供一組服務,對 client 請求進行管理并為其配置設定相應的服務程序,使 server 在有限的系統資源下能夠高效地為大規模的客戶提供服務。   

面臨的一些問題

        中間件能夠屏蔽作業系統和網絡協定的差異,為應用程式提供多種通訊機制;并提供相應的平台以滿足不同領域的需要。是以,中間件為應用程式了一個相對穩定的高層應用環境。然而,中間件服務也并非“萬能藥”。中間件所應遵循的一些原則離實際還有很大距離。多數流行的中間件服務使用專有的 API 和專有的協定,使得應用建立于單一廠家的産品,來自不同廠家的實作很難互操作。有些中間件服務隻提供一些平台的實作,進而限制了應用在異構系統之間的移植。應用開發者在這些中間件服務之上建立自己的應用還要承擔相當大的風險,随着技術的發展他們往往還需重寫他們的系統。盡管中間件服務提高了分布計算的抽象化程度,但應用開發者還需面臨許多艱難的設計選擇,例如,開發者還需決定分布應用在 client 方和 server 方的功能配置設定。通常将表示服務放在 client 以友善使用顯示裝置,将資料服務放在 server 以靠近資料庫,但也并非總是如此,何況其它應用功能如何配置設定也是不容易确定的。

現狀與發展趨概述

        伴随着網際網路技術的發展和全球經濟一體化時代的來臨,企業應用開始從局部自治的單業務種類、部門級應用向企業級應用轉變,并促進了企業應用內建、企業間動态電子商務等網絡資訊系統技術的發展。網絡資訊系統的目标就是把分布在各處的多個局部自治的異構資訊系統通過網絡內建在一起,以實作資訊資源的廣泛共享、集約化管理和協調工作,其中需要解決的一個關鍵問題就是如何将各局部自治的系統聯合成為能夠發揮綜合效能并能夠不斷成長的大系統,為此,出現了對建構網絡資訊系統基礎支撐平台的強烈需求。中間件的概念在這樣的背景下形成和發展。   

        為了直覺地把握中間件(middleware)的基本概念,可以将網絡和系統軟體之上、應用系統之下的廣袤疆域都視做中間件的領地,中間件被概括地了解為起承上啟下作用的應用支撐平台。應用的“多态性”、系統軟體的複雜性,都需要依賴各種類型的中間件在其中運籌、調和。中間件的核心作用是通過管理計算資源和網絡通信,為各類分布式應用軟體共享資源提供支撐。廣義地看,中間件的總體作用是為處于自己上層的應用軟體提供運作與開發的環境,幫助使用者靈活、高效地開發和內建複雜的應用軟體。   

        本文從技術、産品和市場等角度對 2004 年我國中間件發展現狀進行了回顧和分析,通過總結目前網絡應用中出現的一些新趨勢,提出了中間件技術下一步發展的一些挑戰性問題,并總結了中間件産品和市場的一些新特點。

1. 發展現狀

1.1. 技術現狀

        中間件技術是在克服複雜網絡應用的共性問題中不斷發展和壯大起來的,這些問題可以歸納為四個方面:   

        1、從計算環境來看:中間件面對的是一個複雜、不斷變化的計算環境,要求中間件技術具有足夠的靈活性和可成長性;   

        2、從資源管理的角度來看:作業系統和資料庫管理系統管理的是有限資源,資源種類有限,資源量也有限,而中間件需要管理的資源類型(資料、服務、應用)更豐富,且資源擴充的邊界是發散的;   

        3、從應用支撐角度來看:中間件需要提供分布應用開發、內建、部署和運作管理的整個生命周期的總體運作模型;   

        4、從應用的角度來看:利用中間件完成的往往是複雜、大範圍的企業級應用,其關系錯綜複雜,流程交織。例如客戶關系管理系統需要內建多個企業内部應用,而供應鍊管理則涉及企業之間的應用內建。  

 

        是以,由于網絡應用的複雜性,特别是分布、異構和自治等特點,決定了中間件技術和産品的形态多樣性。目前的中間件技術已經形成一個豐富的譜系,并正在向上(應用架構和普适服務)和向下(融合作業系統、資料庫管理系統的功能)兩個方向不斷延伸,并在向更寬廣的應用領域拓展。   

        在國内,國防科技大學、北京大學、北航、中科院軟體所、東南大學等大學和院所很早就投入到中間件技術的研究中,并形成了一系列的成果。在國家發改委、資訊産業部電子發展基金和國家科技部 863 計劃和政府其他基金資助下,通過各項目研究機關和國内骨幹軟體企業多年的不懈努力,國内在基礎中間件國防科技大學領域已經形成豐富的技術積累,并在 CORBA 技術(國防科技大學與中創軟體)、消息中間件技術(中科院軟體所)、J2EE 應用伺服器(北京大學)、Web Service(北航)等方面在技術上基本與國外保持同步發展的水準。   

        以 CORBA 技術為例,國防科技大學與中創軟體以對象管理組織釋出的 CORBA 及 MDA 标準體系為依據,并結合 J2EE、XML、Web Service 等标準,對 ORB、CORBA 構件模型及其運作支撐技術、企業協同架構(CCA)、EAI Profile 等進行了深入的研究,近 3 年在國内一級刊物和國際會議上發表 50 多篇文章,向對象管理組織(OMG)送出 9 項标準提案,已經從标準跟從階段進入參與階段,研究論文和成果在國際上得到廣泛引用,國防科技大學 CORBA 研究成果 StarBus 并獲得國家科技進步二等獎。

1.2. 産品與市場現狀

        中間件作為基礎軟體的重要組成,業已與作業系統、資料庫齊頭并進,在世界範圍内呈現出迅猛發展的勢頭,已經形成一個巨大的産業。目前,中間件在國内整個軟體行業中應該是發展速度最快的市場之一。中國軟體産業經過 20 年的發展,很多部門的資訊化建設都走過了關鍵業務應用和部門級應用的階段,現在開始向企業級應用轉變。所謂企業級應用,最為人們所重視的就是各類資訊資源之間如何關聯、整合、協同、互動和按需服務,這些都是中間件能夠發揮巨大作用的空間所在。當然,中國軟體産業整體上還比較弱,整個社會資訊化的程度無論在廣度、深度方面都還不夠,這些自然也限制了國内軟體産業及中間件的市場規模。随着國家資訊化建設的不斷深入,社會對應用軟體,特别是對網絡應用起支撐作用的中間件産品的巨大需求是不争的事實,國内中間件的市場才剛剛開始啟動,存在巨大的發展機會和空間。   

        目前,網絡應用中間件逐漸在基礎中間件、應用中間件、應用架構等三個層面形成激烈的産品競争和市場競争格局。從三個方面的産品來分析,國外廠商仍然占主導地位,主流廠商包括 IBM,BEA,ORACLE,HP,Iona 等,而一些新型的中間件公司,如 Tibco,webMethod,Vitria 也開始攜其應用內建中間件或業務流程管理中間件進入中國市場。而國内一些規模較大的軟體公司也開始進入此領域,形成了包括中創軟體商用中間件、金蝶 Apusic、東方通科技、中關村科技、中和威等在内的一批中間件專業廠商,東軟、用友、信雅達等應用內建商也大量投入中間件産品的研發,國産中間件已經形成了比較完整産品體系,例如,中創軟體、中和威推出了基于 CORBA 标準的通信中間件産品;中創軟體、金蝶軟體、東方通科金蝶軟體技等公司分别推出了遵循 J2EE 規範的應用伺服器産品;中創軟體、中科院軟體所、東方通科技推出了消息中間件産品;中創軟體推出了符合 OMG 标準的企業應用內建套件 InforEAI;此外,還有大量的公司投入到中間件開發平台和構件庫的建設中。國産中間件已經廣泛成功應用于我國政府、交通、金融、證券、保險、稅務、電信、移動、教育、軍事等行業或領域的資訊化建設,并成為大型應用系統建設不可缺少的一環。   

        同國外廠商比較,國内中間件廠商的整體實力還存在很大的差距。如果僅僅從産品的功能上看,我們似乎并不比别人缺什麼,但圍繞中間件産品從研發到成功應用的全周期來看,我們還缺很多東西,暫時也很難對國外産品形成真正的競争威脅。應該說國内中間件産品的成熟度應該是沒有問題的,但要市場普遍接受國産中間件産品,卻還有一個相當長的過程。以中創軟體 Infor 系列中間件為例,我們提供的産品可在各類主流作業系統平台和主流資料庫上穩定可靠地運作,并可與通行的各種開發工具緊密融合,産品都具備豐富的系統管理功能,并已經在大量行業中獲得了成功應用經驗,即使如此,要真正形成具有号召力的中間件品牌,還有艱巨的路需要一步步去走。同國外優秀中間件産品相比,我們還有大量需要借鑒和學習的地方,例如在産品的發展方向把握、持續開發能力、産品化工作、市場運作等方面,我們都還要繼續加強,不斷完善。當然,國内中間件廠商及其産品也具有非常明顯的優勢,我們貼近國家資訊化的現實需求,已經積累了豐富的領域問題和中間件應用經驗,我們的中間件産品可以在實用性和易用性方面更加貼近本地化市場需求,在技術支援和服務方面也具有相當的優勢。

1.3. 現狀分析        綜合産業界的發展情況,我國中間件産業在 2004 年呈現出如下發展特點:   

        技術多樣化:中間件已經成為網絡應用系統開發、內建、部署、運作和管理必不可少的工具。由于中間件技術涉及網絡應用的各個層面,涵蓋從基礎通訊、資料通路、業務流程內建到應用展現等衆多的環節,是以,中間件技術呈現出多樣化的發展特點。   

        産品平台化:由于傳統的中間件技術門檻較高,學習周期較長,已經不能适應資訊化建設對中間件的廣泛應用需求。為此,中間件産品從解決網絡計算中的關鍵問題開始向一體化平台方向發展,以提高中間件産品的使用便利性,更全面地滿足各種網絡應用軟體所要求的可靠性、可伸縮性和安全性的需要。   

        應用普及化:中間件技術已經是成熟的技術。我國大型資訊化建設項目采納中間件已經成為一種自然、例行的舉措。中間件的廣泛使用,也進一步促進了應用架構技術的豐富和發展,并為建立企業資訊化業務基礎架構奠定了基礎。

應用需求的新特點與中間件技術走向

需求        由于網絡世界是開放的、可成長的和多變的,分布性、自治性、異構性已經成為資訊系統的固有特征。實作資訊系統的綜合內建,已經成為國家資訊化建設的普遍需求,并直接反映了整個國家資訊化建設的水準,中間件通過網絡互連、資料內建、應用整合、流程銜接、使用者互動等形式,已經成為大型網絡應用系統開發、內建、部署、運作與管理的關鍵支撐軟體。   

        随着中間件在我國資訊化建設中的廣泛應用,中間件應用需求也表現出一些新的特點:

可成長性        Internet 是無邊界的,中間件必須支援建立在 Internet 之上的網絡應用系統的生長與代謝,維護相對穩定的應用視圖

适應性

        環境和應用需求不斷變化,應用系統需要不斷演進,作為企業計算的基礎設施,中間件需要感覺、适應變化,提供對下列環境的支援:   

        ■ 支援移動、無線環境下的分布應用,适應多樣性的裝置特性以及不斷變化的網絡環境   

        ■ 支援流媒體應用,适應不斷變化的通路流量和帶寬限制   

        ■ 在DRE(DIstributed Real-time Enbeded)環境下,适應強 QoS 的分布應用的軟硬體限制   

        ■ 能适應未來還未确定的應用要求

可管理性        領域問題越來越複雜、IT 應用系統越來越龐大,其自身管理維護則變得越來越複雜,中間件必須具有自主管理能力,簡化系統管理成本。   

        ■ 面對新的應用目标和變化的環境,支援複雜應用系統的自主再配置   

        ■ 支援複雜應用系統的自我診斷和恢複   

        ■ 支援複雜應用系統的自主優化   

        ■ 支援複雜應用系統的自主防護

高可信性

        提供安全、可信任的資訊服務   

        ■ 支援大規模的并發客戶通路   

        ■ 提供 99.99% 以上的系統可用性   

        ■ 提供安全、可信任的資訊服務

國内主要中間件生産廠商

        銳易特軟體有限公司    

        深圳市金蝶中間件有限公司   

        IBM(中國)有限責任公司   

        BEA   

        富士通中間件   

        東方通科技   

        中創軟體商用中間件有限公司   

        中關村科技軟體有限公司   

        上海普元資訊技術有限責任公司          

        北京中和威軟體有限公司   

        麟遠創軟體(中國)有限公司   

        杭州信雅達系統工程股份有限公司   

        北京美景同創國際軟體有限公司   

        博易智軟(北京)技術有限公司   

        清華同方應用資訊系統本部   

        北京炎黃盈動科技發展有限公司   

        北京慧點科技發展有限公司   

        東軟集團有限公司中間件技術分公司   

        北京用友華表軟體技術有限公司   

        大用軟體有限責任公司   

        北京超圖地理資訊系統有限責任公司   

        北京訊鳥軟體有限責任公司   

        福州華呼資訊技術有限公司   

        清華紫光股份有限公司   

        北京佳訊飛鴻公司   

        恩益禧-中科院軟體研究所有限公司   

        Fiorano   

        IONA 科技公司   

        深圳金瀚海科技有限公司

中間件技術的發展趨勢分析

        中間件是伴随着網絡應用的發展而逐漸成長起來的技術體系。最初的中間件發展驅動力是需要有一個公共的标準的應用開發平台來屏蔽不同作業系統之間的環境和 API 差異,也就是所謂作業系統與應用程式之間“中間”的這一層叫中間件。但随着網絡應用的需求,解決不同系統之間的網絡通信、安全、事務的性能、傳輸的可靠性、語義的解析、資料和應用的整合這些問題,變成中間件的更重要的驅動因素。是以,相繼出現了解決網絡應用的交易中間件、消息中間件、內建中間件等各種功能性的中間件技術和産品。 現在,中間件已經成為網絡應用系統開發、內建、部署、運作和管理必不可少的工具。由于中間件技術涉及網絡應用的各個層面,涵蓋從基礎通訊、資料通路到應用內建等衆多的環節,是以,中間件技術呈現出多樣化的發展特點。   

        傳統中間件在支援相對封閉、靜态、穩定、易控的企業網絡環境中的企業計算和資訊資源共享方面取得了巨大成功,但在新時期以開放、動态、多變的網際網路(Internet)為代表的網絡技術沖擊下,還是顯露出了它的固有局限性,如功能較為專一化,産品和技術之間存在着較大的異構性,跨網際網路的內建和協同工作能力不足,僵化的基礎設施缺乏随需應變能力等等,在網際網路計算帶來的巨大挑戰面前顯得力不從心,時代要求新的技術變革。   

        中間件技術的發展方向,将聚焦于消除資訊孤島,推動無邊界資訊流,支撐開放、動态、多變的網際網路環境中的複雜應用系統,實作對分布于網際網路之上的各種自治資訊資源(計算資源、資料資源、服務資源、軟體資源)的簡單、标準、快速、靈活、可信、高效能及低成本的內建、協同和綜合利用,提高組織的 IT 基礎設施的業務靈活性,降低總體運維成本,促進 IT 與業務之間的比對。中間件技術正在呈現出業務化、服務化、一體化、虛拟化等諸多新的重要發展趨勢。

繼續閱讀