中間件

出自 华夏文化百科
於 2014年8月1日 (五) 01:37 由 Test 32(對話 | 貢獻) 所做的修訂 (1個修訂:HDwiki 数据迁移 - 批次 584)
前往: 導覽、 搜尋

主要用途

中間件分布圖 應用程序的規模不斷擴大,特別是Internet及WWW的出現,使計算機的應用範圍更為廣闊,許多應用程序需在網絡環境的異構平台上運行。這一切都對新一代的軟件開發提出了新的需求。在這種分布異構環境中,通常存在多種硬件系統平台(如PC,工作站,小型機等),在這些硬件平台上又存在各種各樣的系統軟件(如不同的操作系統、數據庫、語言編譯器等),以及多種風格各異的用戶界面,這些硬件系統平台還可能採用不同的網絡協議和網絡體系結構連接。如何把這些系統集成起來並開發新的應用是一個非常現實而困難的問題。  

  中間件可以滿足大量應用的需要運行於多種硬件和OS平台支持分布計算,提供跨網絡、硬件和OS平台的透明性的應用或服務的交互支持標準的協議支持標準的接口。

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


主要功能

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

  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),對象請求代理(ObjectRequestBroker)是這個模型的核心組件。它的作用在於提供一個通信框架,透明地在異構的分布計算環境中傳遞對象請求。CORBA規範包括了ORB的所有標準接口。1991年推出的CORBA1.1定義了接口描述語言OMGIDL和支持Client/Server對象在具體的ORB上進行互操作的API。CORBA2.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、事務處理監控

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

  進程管理,包括啟動server進程、為其分配任務、監控其執行並對負載進行平衡。

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

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

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


特點

也許很難給中間件一個嚴格的定義,但中間件應具有如下的一些特點:

滿足大量應用的需要運行於多種硬件和OS平台支持分布計算,提供跨網絡、硬件和OS平台的透明性的應用或服務的交互支持標準的協議支持標準的接口

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


歷史

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


名字由來

計算機技術迅速發展。從硬件技術看,CPU速度越來越高,處理能力越來越強;從軟件技術看,應用程序的規模不斷擴大,特別是Internet及WWW的出現,使計算機的應用範圍更為廣闊,許多應用程序需在網絡環境的異構平台上運行。這一切都對新一代的軟件開發提出了新的需求。在這種分布異構環境中,通常存在多種硬件系統平台(如PC,工作站,小型機等),在這些硬件平台上又存在各種各樣的系統軟件(如不同的操作系統、數據庫、語言編譯器等),以及多種風格各異的用戶界面,這些硬件系統平台還可能採用不同的網絡協議和網絡體系結構連接。如何把這些系統集成起來並開發新的應用是一個非常現實而困難的問題。


分類

事務處理監控中間件分類(IDC的分類):大致可分為六類:終端仿真/屏幕轉換中間件、數據訪問中間件、遠程過程調用中間件、消息中間件、交易中間件、對象中間件。 中間件所包括的範圍十分廣泛,針對不同的應用需求湧現出多種各具特色的中間件產品。但至今中間件還沒有一個比較精確的定義,因此,在不同的角度或不同的層次上,對中間件的分類也會有所不同。由於中間件需要屏蔽分布環境中異構的操作系統和網絡協議,它必須能夠提供分布環境下的通訊服務,將這種通訊服務稱之為平台。基於目的和實現機制的不同,將平台分為以下主要幾類:

遠程過程調用中間件(RemoteProcedureCall)面向消息的中間件(MesSAge-OrientedMiddleware)對象請求代理中間件(objectRequeSTBrokers)

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

通用中間件類型包括:

  •企業服務總線(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 中交換結構化信息而創建文檔。


面臨問題

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


現狀

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

1.1.技術現狀

中間件技術是在克服複雜網絡應用的共性問題中不斷發展和壯大起來的,這些問題可以歸納為四個方面:1、從計算環境來看:中間件面對的是一個複雜、不斷變化的計算環境,要求中間件技術具有足夠的靈活性和可成長性;2、從資源管理的角度來看:操作系統和數據庫管理系統管理的是有限資源,資源種類有限,資源量也有限,而中間件需要管理的資源類型(數據、服務、應用)更豐富,且資源擴展的邊界是發散的;3、從應用支撐角度來看:中間件需要提供分布應用開發、集成、部署和運行管理的整個生命周期的總體運行模型;4、從應用的角度來看:利用中間件完成的往往是複雜、大範圍的企業級應用,其關係錯綜複雜,流程交織。例如客戶關係管理系統需要集成多個企業內部應用,而供應鏈管理則涉及企業之間的應用集成。

1.2.產品與市場現狀

中間件作為基礎軟件的重要組成,業已與操作系統、數據庫齊頭並進,在世界範圍內呈現出迅猛發展的勢頭,已經形成一個巨大的產業。

1.3.現狀分析

綜合產業界的發展情況,中國中間件產業在2004年呈現出如下發展特點:技術多樣化:中間件已經成為網絡應用系統開發、集成、部署、運行和管理必不可少的工具。由於中間件技術涉及網絡應用的各個層面,涵蓋從基礎通訊、數據訪問、業務流程集成到應用展現等眾多的環節,因此,中間件技術呈現出多樣化的發展特點。

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

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

中間件技術應對應用需求的挑戰2.應用需求的新特點與中間件技術走向 由於網絡世界是開放的、可成長的和多變的,分布性、自治性、異構性已經成為信息系統的固有特徵。實現信息系統的綜合集成,已經成為國家信息化建設的普遍需求,並直接反映了整個國家信息化建設的水平,中間件通過網絡互連、數據集成、應用整合、流程銜接、用戶互動等形式,已經成為大型網絡應用系統開發、集成、部署、運行與管理的關鍵支撐軟件。

隨着中間件在中國信息化建設中的廣泛應用,中間件應用需求也表現出一些新的特點:可成長性:Internet是無邊界的,中間件必須支持建立在Internet之上的網絡應用系統的生長與代謝,維護相對穩的應用視圖。

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

支持移動、無線環境下的分布應用,適應多樣性的設備特性以及不斷變化的網絡環境支持流媒體應用,適應不斷變化的訪問流量和帶寬約束在DRE(DIstributedReal-timeEnbeded)環境下,適應強QoS的分布應用的軟硬件約束能適應未來還未確定的應用要求

可管理性:領域問題越來越複雜、IT應用系統越來越龐大,其自身管理維護則變得越來越複雜,中間件必須具有自主管理能力,簡化系統管理成本。面對新的應用目標和變化的環境,支持複雜應用系統的自主再配置支持複雜應用系統的自我診斷和恢復支持複雜應用系統的自主優化支持複雜應用系統的自主防護高可信性:提供安全、可信任的信息服務支持大規模的並發客戶訪問提供99.99%以上的系統可用性提供安全、可信任的信息服務

這些新的應用特點對中間件技術的發展提出了新的挑戰,也決定了中間件技術未來幾年的發展方向,為了解決上述問題,中間件技術呈現出豐富多彩的格局,圖2給出了解決各類問題的一些新的中間件技術。

3.中間件產品與市場走向

由於應用複雜性及需求廣泛性,用戶需求多樣化導致中間件產品進一步細分,中間件產品在未來3-5年時間仍將呈現多元化發展格局,中間件產品整體走向將表現出如下特點:

集成化中間件產品將大行其道:覆蓋企業級應用設計、開發、集成、部署、運行和管理的集成化中間件產品(KillerApp)將會出現。MDA技術已經為中間件設計開發平台與運行平台的整合準備了方法學基礎,IBM和BOrland等公司已經開始在其中間件產品中開始集成MDA工具,從而中間件將為信息系統的資源層、業務邏輯層、展現層提供全面的支持,同時,中間件也將演變成網絡應用全生命周期支持工具。

基於構件的軟件開發將成為主流:隨着中間件作為網絡應用開發環境和運行環境雙重支撐平台地位的確立,中間件產品研發重點將從運行平台逐漸向開發平台轉移的,軟件構件庫管理平台將受到進一步關注。各個層面的構件資源將得到極大地豐富和發展,獨立的構件交易商將會出現,CBSD將成為軟件開發主流。

在底層,中間件產品將進一步融合操作系統、數據庫管理系統和其它資源管理平台(如元數據管理、目錄管理、內容管理)的功能,形成一層厚實的基礎軟件;在上層,基於中間件的應用框架產品將得到極大豐富,例如面向金融的數據中心平台、電信業務運行支撐平台、電子政務信息交換平台、電子商務供應鏈管理平台等應用框架型領域中間件將不斷豐富完善。