摘要:中間件是為解決分布式環境中的異構問題而提出的,它是當前軟件技術發展的一個潮流,是發展最快的軟件品種之一。該文闡述了中間件技術的概念、分類、優勢以及作用,同時提出了目前中間件的發展趨勢。
關鍵詞:中間件;IDC;分布式環境
中圖分類號:TP31文獻標識碼:A文章編號:1009-3044(2009)04-0978-02
Analysis of Research on Middleware Technology
XI Li-qian,YUAN Guo-liang
(College of Information Engineering,Shanghai Maritime University,Shanghai 200135,China)
Abstract: The middleware was presented to solve the integration problem of distributed heterogeneous computer and network environment,it is a trend in software technology development and it is one of the fastest evolving soft wares.This paper discusses about the concept,classification,advantage and function.Also the developing prospect of the middleware has provided in this paper.
Key words: middleware; IDC; distributed environment
隨著信息技術的迅猛發展,各企業IT部門面臨的問題也越來越多。諸如:不同硬件平臺、不同網絡環境、不同數據庫之間的互操作,多種應用模式并存,系統效率過低,傳輸不可靠,數據加密、軟件開發周期過長等等。想要解決這些問題,如果單純依靠傳統的系統軟件或工具軟件已經不能滿足要求。因此人們開始關注中間件(middleware),并且伴隨著分布式應用的迅猛發展,中間件這一新興的軟件領域已悄然崛起。
眾所周知,從19世紀開始的工業革命發展至今,關鍵的一步就是標準零部件的出現,這使得生產走向了規模化和分工協作的道路。而軟件生產構件化技術的發展就是受到了大工業生產分工協作方式的啟發,這也是軟件技術跨世紀的一個發展趨勢,其意義在于改變軟件的生產方式從個別生產發展到標準化分工協作,從而在根本上提高了軟件生產的效率和質量,提高開發大型軟件系統尤其是商用系統的成功率。
中間件是構件化軟件的一種表現形式。中間件抽象了典型的應用模式,應用軟件開發人員可以基于標準的中間件進行二次開發,開發方式其實質就是軟件構件化的具體實現。
1 中間件的概念[2]
在眾多關于中間件的定義中,比較普遍接受的是IDC(國際數據集團)的表述:中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這類軟件在不同的技術之間共享資源;中間件位于客戶機/服務器的操作系統之上,管理計算資源和網絡通信。IDC對中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件是介于操作系統(包括底層通信協議)和各種分布式應用程序之間的一個軟件層??偟淖饔檬墙⒎植际杰浖K之間互操作的機制,屏蔽底層分布式環境的復雜性和異構性,為處于自己上層的應用軟件提供運行與開發環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。在具體實現上,中間件是一個用應用程序接口定義的分布式軟件管理框架,具有強大的通信能力和良好的可擴展性。
2 中間件的分類[3]
隨著計算機軟件技術的發展,中間件技術已日漸成熟,并且出現了不同層次,不同類型的中間件產品。中間件的產品種類很多,分類的方式有很多種,據國際數據組織(IDC)的分類標準,中間件可分為6類:
1) 終端仿真與屏幕轉換中間件(TSCTM)
這類中間件用以實現客戶極端的圖形用戶接口和現有服務器端字符捷克方式的應用程序間的互操作。
2) 數據庫中間件(DM)
這類中間件適用于應用程序與數據源之間的互操作模型,客戶端使用面向數據庫的API,以提請直接訪問和更新基于服務器的數據源,數據源可以是關系型、非關系型和對象型,是所有中間件應用中最廣泛、技術最成熟的一種。這類中間件大都基于SQL語句,采用同步通訊方式。此類中間件使應用開發簡單化,但如果透過廣域網使用,則會帶來嚴重的效率問題,因為在低速網上來回交互SQL語句會使通訊流量過大,同時對數據壓縮、加密帶來不便。
3) 遠程過程調用中間件(RPC)
RPC機制是早期開發分布式應用時經常采用的一種同步式的請求應答協議。通過這種協議,程序員編寫客戶方的應用,需要時可以調用位于遠端服務器上的過程。RPC擴展了過程語言中的“功能調用/結果返回”的機制,使得它可以適用于一個遠程環境。由于RPC機制是同步方式,因而在工作的時候,要求客戶方和服務方均能正確工作才能很好地運行,有一方不能工作將導致RPC失敗。在網絡故障、機器故障存在的情況下,這一要求是很難保證的。另外,由于大多數RPC機制很難建立點到點的關系,因而也很難用在面向對象的編程當中。
4) 消息中間件(MOM)
越來越多的分布式應用采用消息中間件來構建,通過消息中間件把應用擴展到不同的操作系統和不同的網絡環境?;谙⒌臋C制更多地適用于事件驅動的應用,當一個事件發生時,消息中間件通知服務方應該進行何種操作。其核心安裝在需要進行消息傳遞的系統上,在它們之間建立邏輯通道,由消息中間件實現消息發送。消息中間件可以支持同步方式和異步方式,實際上是一種點到點的機制,因而可以很好的適用于面向對象的編程方式。
5) 對象中間件(OM)
傳統的對象技術通過封裝、繼承及多態性,提供了良好的代碼重用功能。但這些對象只存在于一個程序中,外界并不知道它們的存在,也無法訪問它們。對象中間件提供了一個標準的構件框架,使不同廠家的軟件通過不同的地址空間、網絡和操作系統互相交互訪問。而該構件的具體實現、位置及所依附的操作系統對客戶來說都是透明的。對象中間件技術的目標是為軟件用戶及開發者提供一種應用級的即插即用的互操作性軟件。
6) 基于對象請求代理的中間件(ORBM)
對象請求代理是近年來才發展起來的一項新技術,它可被看作和編程語言無關的面向對象的RPC應用,被視為從面向對象過渡到分布式計算的強大推動力量。從管理和封裝的模式上看,對象請求代理和遠過程調用有些類似,不過對象請求代理可以包含比遠過程調用和消息中間件更復雜的信息,并且可以適用于非常結構化的或者非常關系型的數據。
3 中間件的優勢
中間件是一種位于具體應用和底層系統(包括操作系統、網絡協議棧、硬件等)之間的軟件。中間件在這個軟件體系中所扮演的角色是:連接應用程序和底層軟硬件基礎設施,協調應用各部分的連接和互操作;使系統開發者能夠實現并簡化基于各種不同技術的服務組件之間的集成。在應用系統開發中采用中間件技術有以下優點:
1) 能對軟件開發者屏蔽底層的、復雜繁瑣的、易出錯的平臺細節,減少應用開發的復雜性。
2) 能提供大批可復用的、構件化的服務,從而加快應用開發周期,降低開發成本。
3) 能為應用提供一個面向網絡的高層抽象的集合,這種一致的高層抽象能簡化分布式系統的開發。
4) 協調應用系統各部分之間的互聯、互操作,使得從小到組件模塊,大到企業應用實體所提供的服務都能夠相互集成,并使這種集成得到簡化。
總之,中間件技術為降低分布式應用系統的開發、部署、運行和維護的復雜性提供了有力的工具。但是現在,使用中間件集成復雜系統的要求還不能完全得到滿足,相關的技術還不夠成熟。因為,從中間件上層的分布式應用需求到下層的基礎架構的不斷發展都給中間件技術帶來了新的問題和潛在的解決方案;而且,以網絡為中心的系統開發范式促使多層次中間件的形成,每個層次的中間件都包含了互相交織的技術,這給基于中間件的系統集成帶來了新的復雜性。
4 中間件的作用[1]
過去的十多年是中間件技術飛速發展的時期,中間件技術已經被廣泛應用到IT行業的各個技術領域,它極大的緩解了分布式應用開發、運行、管理中的一些固有的復雜問題。中間件技術已經成為分布式軟件系統不可或缺的關鍵基礎設施,它同操作系統、數據庫系統共同構成了基礎軟件體系的三大支柱。中間件的主旨就是要支持網絡應用的有效開發、部署、運行和管理。
1) 支持分布軟件(資源)的交互與訪問
分布式軟件必須包含了分布式操作,需要與其他分布軟件/服務通信交互,需要訪問分布資源?,F代操作系統不能解決這些互連、互操作問題,而中間件系統就是要提供高層次的抽象和封裝,解決分布軟件的通信交互,分布資源的訪問問題。
2) 屏蔽異構
網絡分布應用面臨多種多樣的異構問題,要實現分布應用的正確交互,必須有相應的機制解決異構問題。而中間件系統的主要作用就是提供不同層次和方面的抽象機制,屏蔽操作系統、編程語言、通信協議、交互模式和數據編碼的異構,提高網絡分布應用的互操作性。
3) 提供公共服務
公共服務是對分布式應用共性功能的抽取,其好處在于一方面共性功能的抽取由中間件統一提供,減少系統開發的工作量,另一方面使得應用開發者更關注業務功能,有助于提高軟件質量。
4) 運行管理
中間件就像是交互樞紐、生態環境,它支持網絡分布應用的連接交互,支撐網絡分布應用的運行。在分布應用的運行期間,中間件需要對其通信能力進行調度,對其計算資源進行管理,對負載進行均衡,對計算進程/線程進行調度等等。中間件不僅提供這些管理能力,重要的是這些管理活動大多是由中間件系統自動進行,這樣就降低了系統管理的復雜度,提高了系統的可靠性。
5 總結
中間件是軟件技術發展的一種潮流,正在成為軟件行業新技術與經濟的增長點。
根據有關組織的預測,消息中間件是目前中間件技術的發展熱點,在目前市場上占據主導地位,而且發展勢頭迅猛。消息中間件以其獨特的優勢為各種分布式應用的開發注入了強大的動力,極大地推動了應用系統集成的發展。對象中間件技術也發展迅速,各大軟硬件廠商如IBM、HP、DEC、ATT、ICL、Microsoft等都在積極參與有關標準的制度和產品的開發工作。中間件的另一個發展動向是向Internet的延伸,由于Internet自身的技術特點,在構造許多大企業級應用時仍顯不足,因而仍然存在供中間件發展的中間地帶。
總體來說,中間件已滲透到信息社會的方方面面,網絡計算環境下“中間件已無處不在”。
參考文獻:
[1] 魏峻.軟件中間件技術現狀與展望[J].新技術新工藝,2007(7):5-13.
[2] 樂嘉錦,郭瑞強.中間件的由來、現狀及我們的機遇[J].計算機應用與軟件,2001:1-4.
[3] 張宏,佟玉軍.中間件分類及標準[J].標準傳遞,2005:20-21.