套用中間件

套用中間件

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

中文名稱套用中間件
英文名稱application middleware
定  義在套用與資料庫之外,使套用能共享跨網的功能與數據的軟體。
套用學科通信科技(一級學科),服務與套用(二級學科)

基本介紹

  • 中文名:套用中間件
  • 外文名:Application Middleware
軟體簡介,發展歷程,特點,套用支撐,耦合關係,互操作性,軟體復用,平台化,分類,發展趨勢,

軟體簡介

中間件(middleware)一詞每天都被不同的人群所提及,中間件的產品也大量出現在軟體市場,但中間件的定義卻一直比較模糊,導致中間件的分類也不很統一。也許正因為如此,才使人們不斷地設計和開發新的產品,並冠以中間件的標籤,推動著中間件的內涵和市場不斷地向前發展。
我們試圖給出中間件的一個定義。所謂中間件,就是位於作業系統和套用軟體之間的一個軟體層,它向各種套用軟體提供服務,使不同的套用進程能在禁止掉平台差異的情況下,通過網路互相通信。通常,在實際使用中,把一組中間件集成在一起構成一個平台(包括開發平台和運行平台),其中必須要有一個通信中間件完成中間件之間的通信。從這個意義上講,中間件應包括平台和通信兩個部分。圖是對這一定義的解釋。
套用中間件
中間件的思想其實並不複雜。假設我們有n個套用,m個作業系統,為了使所有的套用在所有的作業系統上都能工作,就可能需要n×m個接口。而且,每引入一個新的作業系統,就要重新改寫n個套用的原始碼;每開發一個新的套用,就要考慮實現m個不同的版本,以工作於m個作業系統之上。
中間件使這一切變得簡單。開發應用程式時不必再關心底層作業系統的類型,而只需專心於套用的邏輯處理(當然,這只是一種理想狀況)。
套用中間件
中間件的引入使原來的網狀接口類型變成了沙漏狀接口類型,如圖所示。接口數目從n×m降到了n+m。當n和m都很小的情況下,這種差異並不明顯,但隨著n和m不斷地增大(正如現實世界正在發生的那樣),這種差異將極大地增加開發套用軟體的困難,並降低系統整體運行的效率和性能。因此,中間件的出現是分散式系統發展的產物,是軟體構架演進的必然。

發展歷程

80年代後期基於客戶/伺服器的系統設計理念的出現為多用戶系統提供了前所未有的雙向互動性和靈活性。客戶/伺服器系統結構是把圖形用戶界面和大部分套用邏輯放在客戶機上運行,通過將SQL請求送往運行在伺服器上的資料庫,對數據進行訪問。其最大的優點在於系統結構簡單;只要將客戶機和伺服器通過網路聯通,利用一些快速套用開發工具就可以很快地開發出一些部門級的小規模套用。但是,隨著信息技術的發展,這種系統結構的缺陷也逐漸顯現出來。
首先,進入90年代中期,信息技術迅猛發展,CPU的處理能力越來越強,網路的套用日益普及,軟體套用的規模和範圍無限拓展,許多應用程式需在網路環境的異構平台上運行。在這種異構的環境中,不但存在多種硬體系統平台,而且包括運行在這些硬體平台上的各種系統軟體以及風格迥異的用戶界面,這些硬體系統平台還可能採用不同的網路協定和網路體系結構連線。由此帶來的問題也越來越明顯,如不同硬體平台、不同網路環境、不同資料庫之間的互操作問題,多種套用模式並存、系統效率過低、傳輸不可靠、數據加密、開發周期過長等等。單純依賴傳統的系統軟體或工具軟體提供的功能已無法滿足要求。
其次,當客戶/伺服器方式套用逐漸推廣到企業級的關鍵任務(Mission-Critical)環境,便出現了一些’lde題,如系統可擴展性差、解析度低、可管理性差、維護代價高、安全性差、系統間通訊功能較弱。
為了解決兩層結構遇到的問題,人們提出了三層結構的系統設計概念。它把套用邏輯劃分為三個部分;第一層是用戶界面,提供用戶與系統的友好互動;第二層是套用伺服器,專司業務邏輯的實現;第三層是數據伺服器,負責數據信息的存儲、訪問及其最佳化。其主要目的是產生一套切實可行的解決方案,把客戶/伺服器結構下的套用可靠地推廣到企業級的關鍵任務環境中,並利用這一技術所帶來的高效率、多功能與靈活性,增強企業在市場上的競爭能力。而中間件正是構造這種三層結構的基礎。
所謂中間件就是一種獨立的系統軟體或服務程式,分散式套用軟體藉助這種軟體在不同的技術之間共享資源,中間件位於客戶機/伺服器的作業系統之上,管理計算資源和網路通信。我們可以將中間件理解成是處於套用軟體和系統軟體之間的一類軟體,或者是獨立於硬體或資料庫廠商(處於其產品的中間,實現其互連)的一類軟體,或者是客戶方與伺服器方之間的連線件,或者是需要進行二次開發的中間產品。其特點是能夠滿足大量套用的需要,可以運行於多種硬體和OS平台,支持分布計算,提供跨網路、硬體和OS平台的透明性。
中間件軟體管理著客戶端程式和資料庫或者早期套用軟體之間的通訊。中間件在分散式的客戶和服務之間扮演著承上啟下的角色,如事務管理、負荷平衡以及基於Web的計算等。利用這些技術有助於減輕套用軟體開發者的負擔,使他們在利用現有的硬體設備、作業系統、網路、資料庫管理系統以及對象模型創建分散式套用軟體時更加得心應手。
由於中間件產品在很大程度上簡化了一個由不同硬體構成的分散式處理環境的複雜性,所以它正在日益引起用戶的注意。面對廣闊的市場,各個軟體廠商紛紛推出自己的產品,群雄逐鹿的市場競爭局面逐漸形成。
早在1969年IBM就推出了專門用於事務處理的平台軟體中間件技術作為軟體行業新崛起的一個嶄新的分支,正在全球範圍內迅猛發展。
IDC的研究報告表明,1997年全球中間件市場的綜合增長率為28%,銷售額達到了17.16億美元。到2002年,全球中間件產品市場的營業額將超過70億美元。從市場情況看,到2000年,面向訊息的中間件產品有望取代用於數據訪問的中間件產品,而成為該市場最大的一部分,其次是分散式交易處理中間件產品,依舊牢牢地占據著主流的地位,IDC預測基於桌面訪問的中間件產品的市場增長將在1999年達到最高峰-CICS,並將其很快推廣到了許多作業系統平台,其伺服器版本可運行在OS/390、MVS/ESA、VSE/ESA、OS/400、OS/2、Windows NT、Windows 95、Apple Mac、AlX、Solaris、HP-UX和Digital Unix上。
CICS經過了近30年的發展歷史,其穩定性和可靠性早已千錘百鍊,而且CICS幾乎每年根據客戶的需求變化和新技術的出現均有重大發展,例如CICS在1978年就支持了分散式在線上事務處理,CICS在近年來發展了對MQ Series、Lotus Notes、Internet和Java的支持。
CICS已經在金融、財稅、運輸、商業、服務、電力、電話等行業中得到廣泛套用和推廣,統計表明,在《幸福》雜誌(Fortune)中排列世界前500家的公司,約有97%採用CICS作為其業務運行系統的平台。憑藉多年的開發經驗和對市場敏銳的洞察力,IBM公司在90年代及時調整其產品策略,將中間件產品作為其今後開發的重點之重點,並推出了面向訊息的中間件產品—MQ Series,它能夠保證數據穩定可靠傳輸而且無丟失或重發,可謂是工B岡“看家本領”之一。MQSeries是商業通訊中間件。它由一個信息傳輸系統和一個應用程式接口組成,其資源是信息和佇列(Messogjng and Queueing)。MQ應用程式可以通過使用一個簡單而一致的應用程式編程接口來相互通信跨越具有不同處理器、作業系統、子系統和通訊協定的網路。它的功能是控制和管理一個集成的商業套用,使得組成這個商業套用的多個分支程式(模組)之間通過傳遞信息完成整個工作流程。

特點

中間件有幾個非常重要的特徵是必須具備的:

套用支撐

中間件的最終目的是解決上層套用系統的問題,而且也是軟體技術發展到今天對套用軟體提供最完善徹底的解決方案。現代面向服務的中間件在4個方面形成了很高地套用支撐能力,分別為軟體的結構、模型、開發方法以及互操作,而要最終解決軟體的靈活應變問題、效率問題、質量問題、互操作問題這四大問題,需要在軟體技術的內在結構、架構層面進行思考。

耦合關係

中間件基於SOA架構,在松耦和解耦過程中演變成了境界。而傳統軟體將軟體之中核心三部分數據轉換、網路連線和業務邏輯所有的都耦合在一個整體,產生為鐵板一塊的軟體,然後動一點而動全身,這樣的軟體就很難適應市場的需求。而分散式對象技術可以分離連線邏輯,訊息中間件異步處理連線邏輯,形成了很大的靈活性。中間件分離分散式對象與訊息代理的數據轉換。SOA架構以服務的封裝,解耦實現了業務邏輯、數據轉換與網路連線等。

互操作性

傳統中間件在軟體的互操作方面,通過標準化的API完成了同類系統之間的調用互操作,但是連線互操作離不開原有的特定的訪問協定,比如CORBA用於的IIOP,JAVA用於的RMI等。而SOA以支持Internet、標準化及作業系統無關的SOAP協定完成了連線互操作。並且服務的封裝一般使用XML協定,它有自定義及自解析的特性,因此基於SOA的中間件能夠完成語義互操作。

軟體復用

軟體復用也稱為軟體的重用,是指在一定範圍內不修改或者略有修改都屬於重複使用。其實說白了其意思就是不斷提升抽象級別,然後擴展復用的範圍。最早使用的復用技術一般是子程式,自從發明子程式之後,人們就可以在不同系統之間進行軟體復用。但子程式只是最原始的復用,因為這種復用範圍只是在一個可執行程式內中的復用,靜態開發期的復用,一旦子程式被修改,那么就需要重新對所有調用這個子程式的程式進行編譯、測試以及發布。

平台化

我們所說的平台是指能夠獨立運行並且自主存在的,能支撐上層系統和套用提供運行所依賴的環境。顯然,不是所有的系統或者套用都可以稱之為平台的。中間件是一個平台,因此中間件是必須獨立存在,它在操作的系統軟體,為上層的網路套用系統提供一個運行支撐環境,同時圍繞標準的接口與API來隔離系統,完成其獨立,也就是平台性。總的來說,中間件在完整業務復用、靈活業務組織方面的發展趨勢集中體現在服務化,其核心技術是提升IT基礎設施的業務敏捷性。中間件因此將成為SOA的主要實現平台。

分類

中間件的作用簡單來說就是試圖通過禁止各種複雜的技術細節使技術問題簡單化。具體地說,中間件禁止了底層作業系統的複雜性,使程式開發人員面對一個簡單而統一的開發環境,減少程式設計的複雜性,將注意力集中在自己的業務上,不必再為程式在不同系統軟體上的移植而重複工作,從而大大減少了技術上的負擔。所以說中間件帶給套用系統的,不只是開發的簡便、開發周期的縮短,同時也減少了系統的維護、運行和管理的工作量,還減少了計算機總體費用的投入。其次,中間件作為新層次的基礎軟體,其重要作用是將不同時期、在不同作業系統上開發的套用軟體集成起來,彼此像一個天衣無縫的整體協調工作,這是作業系統、資料庫管理系統本身做不了的。目前,針對不同的套用湧現出各具特色的中間件產品。從不同的角度和層次對中間件有不同的分類。根據中間件在系統中所起的作用和採用的技術不同,可以把中間件大致劃分為以下幾種:
數據訪問中間件(Data Access Middieware)
在分散式系統中,重要的數據都集中存放在數據伺服器中,它們可以是關係型、複合文檔型、具有各種存放格式的多媒體型,或者是經過加密或壓縮存放的,數據訪問中間件是在這種系統中建立數據套用資源互操作的模式,實現異構環境下的資料庫聯接或檔案系統聯接的中間件,從而為在網路上虛擬緩衝存取、格式轉換、解壓等帶來方便。數據訪問中間件在所有的中間件中是套用最廣泛、技術最成熟的一種。一個最典型的例子就是ODBC,ODBC是一種基於資料庫的中間件標準,它允許應用程式和本地或者異地的資料庫進行通信,並提供了一系列的應用程式接口API,當然,在多數情況下這些API都是隱藏在開發工具中,不被程式設計師直接使用。不過在數據訪問中間件處理模型中,資料庫是信息存貯的核心單元,中間件完成通信的功能,這種方式雖然是靈活的,但是並不適合於一些要求高性能處理的場合,因為它需要大量的數據通信,而且當網路發生故障時,系統將不能正常工作。
遠程過程調用中間件(RPC)
遠程過程調用是另外一種形式的中間件,它在客戶/伺服器計算方面,比資料庫中間件又邁進了一步。通過這種遠程過程調用機制,程式設計師編寫客戶方的套用,需要時可以調用位於遠端伺服器上的過程。它的工作方式如下:當一個應用程式A需要與遠程的另一個應用程式B交換信息或要求B提供協助時,A在本地產生一個請求,通過通訊鏈路通知B接收信息或提供相應的服務,B完成相關處理後將信息或結果返回給A。RPC的靈活特性使得它有比資料庫中間件更廣泛的套用,它可以套用在更複雜的客戶/伺服器計算環境中。遠程過程調用的靈活性還體現在它的跨平台性方面,它不僅可以調用遠端的子程式,而且這種調用是可以跨不同作業系統平台的,而程式設計師在編程時並不需要考慮這些細節。RPC也有一些缺點,主要是因為RPC一般用於應用程式之間的通信,而且採用的是同步通信方式,因此對於比較小型的簡單套用還是比較適合的,因為這些套用通常不要求異步通信方式。但是對於一些大型的套用,這種方式就不是很適合了,因為此時程式設計師需要考慮網路或者系統故障,處理並發操作、緩衝、流量控制以及進程同步等一系列複雜問題。
面向訊息中間件(MOM)
訊息中間件能在不同平台之間通信,實現分散式系統中可靠的、高效的、實時的跨平台數據傳輸,它常被用來禁止掉各種平台及協定之間的特性,實現應用程式之間的協同;其優點在於能夠在客戶和伺服器之間提供同步和異步的連線,並且在任何時刻都可以將訊息進行傳送或者存儲轉發,這也是它比遠程過程調用更進一步的原因。另外訊息中間件不會占用大量的網路頻寬,可以跟蹤事務,並且通過將事務存儲到磁碟上實現網路故障時系統的恢復。當然和遠程過程調用相比,訊息中間件不支持程式控制的傳遞。訊息中間件適用於需要在多個進程之間進行可靠的數據傳送的分散式環境。它是中間件中唯一不可缺少的,也是銷售額最大的中間件產品,目前在Windows2000作業系統中已包含了其部分功能。
面向對象的中間件
面向對象的中間件(Object Oriented Middieware)。當前開發大型套用軟體通常採用基於組件技術,在分布系統中,還需要集成各節點上的不同系統平台上的組件或新老版本的組件;組件的含義通常指的是一組對象的集成,其種類有數百萬種,但這些組件面臨著缺乏標準而不能相互操作,各廠家的組件只能在各自的平台上運行。為此,連線這些組件環境的面向對象的中間件便應運而生。面向對象的中間件是對象技術和分散式計算發展的產物,它提供一種通訊機制,透明地在異構的分布計算環境中傳遞對象請求,而這些對象可以位於本地或者遠程機器。在這些面向對象的中間件中,功能最強的是CORBA,可以跨任意平台,但是太龐大;JavaBeans較靈活簡單,很適合於作瀏覽器,但運行效率差;DCOM模型主要適合Windows平台,已廣泛使用。但是DCOM和CORBA這兩種標準相互競爭,而且兩者之間有很大的區別,這在一定程度上阻礙了面向對象中間件的標準化進程。當前國內新建系統實際上主要是UNIX(包括LINUX)和Windows,因此針對這兩個平台建立標準的面向對象中間件是很有必要的。
事務處理中間件(TPM)
事務處理中間件是在分布、異構環境下提供保證交易完整性和數據完整性的一種環境平台;它是針對複雜環境下分散式套用的速度和可靠性要求而實現的。它給程式設計師提供了一個事務處理的API,程式設計師可以使用這個程式接口編寫高速而且可靠的分散式應用程式——基於事務處理的應用程式。事務處理中間件向用戶提供一系列的服務,如套用管理、管理控制、已經套用於程式間的訊息傳遞等。常見的功能包括全局事務協調、事務的分散式兩段提交(準備階段和完成階段)、資源管理器支持、故障恢復、高可靠性、網路負載平衡等等。
網路中間件
它包括網管、接入、網路測試、虛擬社區、虛擬緩衝等,也是當前研究的熱點。
終端仿真/螢幕轉換中間件
它的作用在於實現客戶機圖形用戶接口與已有的字元接口方式的伺服器應用程式之間的互操作。

發展趨勢

軟體構件化(Software Component)技術是在大工業生產啟發下應運而生的,是軟體技術跨世紀的一個發展趨勢,其目的是徹底改變軟體生產方式,從根本上提高軟體生產的效率和質量,提高開發大型軟體系統尤其是商用系統的成功率。有了軟體構件之後,套用開發人員就可以利用現成的軟體構件裝配成適用於不同領域、功能各異的套用軟體。復用軟體一直是整個世界軟體業所追求的夢想,軟體構件化為實現這一夢想指出了一條切實可行的道路,而中間件正是構件化軟體的一種形式。中間件抽象了典型的套用模式,套用軟體製造者可以基於標準的形式進行開發,使軟體構件化成為可能,加速了軟體復用的進程。因此,中間件是符合軟體發展的內在規律的。
中間件在十幾年不斷發展的歷史中,為大型企業套用的建設起到了很大的作用。但是沉澱下來的優秀中間件企業卻不多。中間件作為一個產品,一方面受到軟體技術從C、C++、Java、J2EE到.net的牽制,又有套用軟體走出部門、走向全企業和全網際網路的引領,也從CORBA,COM+,訊息中間件發展到了J2EE平台和SOA。在這么多的技術遷徙過程中,要讓一個公司能夠持續發展也真是不容易。所以有了Inprise、Iona的不成功,也才有IBM、Microsoft的不倒翁地位。也難怪中國的中間件公司,只要還存在就是巨大的成功了。
傳統的中間件技術的發展往往源於技術能力。而技術的不斷變化又讓這些公司難以長期立足。但是如果我們站在一個更高的層次,跨越純技術性的定位,也許我們會看到一個更平穩的中間件市場的空間,這正是新一代的中間件軟體廠商的立足之地。從套用軟體的角度來看,我們需要一個穩定的、技術依賴性較弱的方法來描述企業套用的不斷升級的業務邏輯結構。業務邏輯會按照企業的發展而發展,卻不應該太多的因為技術的變化而重新編寫。新一代的面向構件的中間件就是這樣一個在基礎中間件上的一個新的樓層。
中間件的發展日臻完善,它為計算機軟體的發展注入了新鮮的活力,是軟體技術發展的一種潮流。中間件的組件模式,簡化了應用程式的開發複雜性,提高了軟體的可重用性,促使軟體生產的產業化,使跨企業的分散式套用得到了推廣。
據有關組織預測,訊息中間件是目前中間件技術的發展熱點,在市場上占據了主導地位。訊息中間件以其獨特的優勢為各種分散式套用的開發注入了強大的動力,極大地推動了套用集成的發展。對象中間件技術也發展迅速,也是未來的主流,各大硬軟體公司,如:Sun,Microsoft,IBM,DEC等都在積極參與有關標準的制定和產品的開發工作。中間件的另一個發展方向是WebServices中間件,不同於目前的組件技術,WebServices不是通過特定的對象模型協定訪問,而是通過通用的網路協定和數據格式來訪問,例如HTTP和XML。用戶僅僅通過創建並使用為WebServices接口定義的訊息就可以使用任何語言在任何平台上調用WebServices。目前WebServices中間件還處在發展初期,許多標準和規範還在制定和完善中。
隨著Web技術的飛速發展,中間件當前所面臨的重大的挑戰就是要在網際網路這個複雜的分散式系統中構建應用程式。可以預見,未來的中間件必將和網路技術緊密相關。國內外都正在深入地研究這一技術。

相關詞條

熱門詞條

聯絡我們