中間件[app中間件]

中間件[app中間件]

中間件(middleware)是一種獨立的系統軟體或服務程式,分散式套用軟體藉助這種軟體在不同的技術之間共享資源,中間件位於客戶機伺服器的作業系統之上,管理計算資源和網路通信。中間件(middleware)是基礎軟體的一大類,屬於可復用軟體的範疇。顧名思義,中間件處於作業系統軟體與用戶的套用軟體的中間。中間件在作業系統、網路和資料庫之上,套用軟體的下層,總的作用是為處於自己上層的套用軟體提供運行與開發的環境,幫助用戶靈活、高效地開發和集成複雜的套用軟體。

基本信息

主要用途

中間件中間件分布圖

應用程式的規模不斷擴大,特別是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給出了解決各類問題的一些新的中間件技術。

發展因素

(1)中間件行業良好的市場前景
隨著網際網路套用服務需求的上升、各行業套用系統規模的迅速擴張等,對中間件的需求也日益突出。目前,信息化建設水平較高的電信、金融、政府和能源等領域是套用中間件的重點領域。這些行業和部門的IT系統整合節奏相對較快,對中間件的需求保持持續增長。同時,其他行業領域的大中型企業以及部分小企業的信息化進程也逐漸加速,著眼於充分利用已經建成的套用系統和業務系統,更好地為業務部門和廣大客戶服務。各行業相繼加大信息化基礎設備和套用系統的建設,對中間件平台產生了巨大需求,預示著未來中國中間件市場將具有廣闊的發展空間。
未來電信、金融行業的中間件需求增長趨於平穩,政府行業需求將持續增長,傳統行業如交通、教育、醫療、電力、證券、保險、稅務等將被逐漸開發,新興行業如物聯網、雲計算等的額外增長需求使得國內中間件市場的銷售額保持穩定增長。今後幾年內我國中間件市場的年複合增長率將超過18%,隨著新興行業的建設,增長率或將略有升幅。
(2)中間件具備規模效應
中間件與作業系統和資料庫一樣,作為基礎軟體具有標準化產品的特點,具備一定的通用性,容易形成規模效應。由於中間件軟體具有標準化、產品化的特點,而中間件軟體的研發支出具有固定化的特點,因此中間件產品銷量越多,中間件廠商的利潤率水平越高,產品的銷量是影響各中間件廠商利潤率水平的重要因素之一。
(3)中間件市場秩序相對規範
中間件產品主要套用於企業級套用系統的開發、運行與管理。中間件對各種硬體平台、作業系統、網路資料庫產品實現了兼容和開放,存在著對客戶提供全方位服務的需要。中間件產品總體上不存在盜版現象,市場秩序與其它領域的軟體相比比較規範,從而一定程度上保障了中間件企業的利潤空間。
(4)國家產業政策的大力支持
國家產業政策的大力支持為國內軟體行業創造了良好的發展環境。軟體行業屬於國家鼓勵發展的戰略性、基礎性和先導性支柱產業,受現有國際壟斷格局的影響,中國軟體業發展至今,系統級產品仍然比較弱小,但國家從信息安全、自主創新的戰略角度考慮,將長期支持和發展基礎軟體。國產中間件是業界公認的發展最好,最能實現突破的領域,是民族軟體產業切入戰略性、基礎性及關鍵性軟體領域的一次最現實的機遇,並將有助於提升我國在這一領域的研發能力。自
自2000年以來,國家出台了一系列法規和政策,從投融資體制、稅收、產業技術、軟體出口、收入分配、人才吸引與培養、智慧財產權保護、行業組織與管理等多方面為軟體產業發展提供了政策保障和扶持,營造了良好的發展環境。
2、不利因素
(1)高端人才缺乏
由於基礎軟體領域長期由國外特別是美國企業占據強勢地位,我國基礎軟體仍處於發展階段,大學和科研院等機構在基礎軟體方面的研究也相對滯後,造成國內真正從事基礎軟體研發的高端人才匱乏。同時,我國的軟體市場是一個開放的競爭市場,國際軟體企業進入我國後,為我國軟體業的發展帶來一定壓力,在國內軟體企業資金、技術和管理等方面不具備競爭優勢的情況下,難以吸引高端人才,現有的優秀人才還可能出現流失。
因此,人才缺乏是制約我國中間件行業發展的不利因素。
(2)部分客戶對國內中間件廠商的認同度有待提高
由於我國中間件行業起步較晚,因此總體來看,國內中間件廠商在資金實力、品牌等方面與國外軟體巨頭存在一定的差距。雖然近年來東方通等國產廠商在技術、產品、品牌等方面取得了長足進步,產品性能方面已與國外產品相差無幾,但由於基礎軟體在系統中的重要地位,部分客戶仍傾向於購買國際廠商的中間件產品。較低的品牌認同度仍是制約國內基礎軟體產品市場發展的重要因素。
(3)國際軟體巨頭對國內廠商的競爭壓力
目前IBM、Oracle兩家國際軟體巨頭在我國中間件領域占據較大的市場份額。為了遏制競爭對手的發展,國際軟體巨頭採用各種手段,遏制國內廠商發展。
最常用的手段是通過不斷推出新的標準和新的技術,試圖引導市場。國際軟體巨頭還會採取價格手段遏制國內中間件廠商,在市場沒有國內廠商競爭時其產品價格奇高,而一旦國內廠商進入就大打價格戰,試圖憑藉其龐大的資金實力遏制國內中間件廠商的崛起。

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

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

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

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

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

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。而中科院軟體所、國防科技大學等研究機構也對中間件技術進行了同步研究。可以說,在中間件領域,國內的起步時間並不比國外晚多少。

物聯網中間件

基於OSGi的物聯網中間件
基於OSGi的物聯網中間件
與物聯網/M2M相關中間件有很多種類,如嵌入式中間件、數位電視中間件、RFID中間件和通用M2M物聯網中間件等,中間件和物聯網一樣無處不在。OSGi(OpenServicesGatewayinitiative)是一個1999年成立的開放標準聯盟,OSGi是為無所不在的、開放的Java語言打造的一個模組化的服務平台,實現了完整的動態構件模式。基於OSGi技術的套用和模組可以在不停機的狀態下實現遠程安裝、起停、升級和卸載。除了用於IDE(IntegratedDeveloipmentEnvironment,OSGi的出現使Eclipse一統IDE江山)開發工具和套用服務中間件(以Jboss為代表,包括WebLogic等新一代中間件都有基於OSGi的實現)以外,OSGi技術早已被廣泛的用到了手機和智慧型M2M終端上,在汽車業(汽車中的嵌入式系統)、工業自動化、智慧型樓宇、格線計算、雲計算、各種機頂盒、Telematics等領域都有廣泛套用,因此,有業界人士認為,OSGi是“萬能中間件”(UniversalMiddleware)。可以毫不誇張地說,OSGi中間件平台似乎是“不謀而合”的為物聯網而生的,它一定會在物聯網產業發展過程中大有作為。

相關詞條

相關搜尋

熱門詞條

聯絡我們