簡介
中間件(middleware)一詞每天都被不同的人群所提及,中間件的產(chǎn)品也大量出現(xiàn)在軟件市場,但中間件的定義卻一直比較模糊,導(dǎo)致中間件的分類也不很統(tǒng)一。也許正因為如此,才使人們不斷地設(shè)計和開發(fā)新的產(chǎn)品,并冠以中間件的標簽,推動著中間件的內(nèi)涵和市場不斷地向前發(fā)展。
我們試圖給出中間件的一個定義。所謂中間件,就是位于操作系統(tǒng)和應(yīng)用軟件之間的一個軟件層,它向各種應(yīng)用軟件提供服務(wù),使不同的應(yīng)用進程能在屏蔽掉平臺差異的情況下,通過網(wǎng)絡(luò)互相通信。通常,在實際使用中,把一組中間件集成在一起構(gòu)成一個平臺(包括開發(fā)平臺和運行平臺),其中必須要有一個通信中間件完成中間件之間的通信。從這個意義上講,中間件應(yīng)包括平臺和通信兩個部分。圖是對這一定義的解釋。
中間件的思想其實并不復(fù)雜。假設(shè)我們有n個應(yīng)用,m個操作系統(tǒng),為了使所有的應(yīng)用在所有的操作系統(tǒng)上都能工作,就可能需要n×m個接口。而且,每引入一個新的操作系統(tǒng),就要重新改寫n個應(yīng)用的源代碼;每開發(fā)一個新的應(yīng)用,就要考慮實現(xiàn)m個不同的版本,以工作于m個操作系統(tǒng)之上。
中間件使這一切變得簡單。開發(fā)應(yīng)用程序時不必再關(guān)心底層操作系統(tǒng)的類型,而只需專心于應(yīng)用的邏輯處理(當然,這只是一種理想狀況)。
中間件的引入使原來的網(wǎng)狀接口類型變成了沙漏狀接口類型,如圖所示。接口數(shù)目從n×m降到了n+m。當n和m都很小的情況下,這種差異并不明顯,但隨著n和m不斷地增大(正如現(xiàn)實世界正在發(fā)生的那樣),這種差異將極大地增加開發(fā)應(yīng)用軟件的困難,并降低系統(tǒng)整體運行的效率和性能。因此,中間件的出現(xiàn)是分布式系統(tǒng)發(fā)展的產(chǎn)物,是軟件構(gòu)架演進的必然1。
發(fā)展歷程80年代后期基于客戶/服務(wù)器的系統(tǒng)設(shè)計理念的出現(xiàn)為多用戶系統(tǒng)提供了前所未有的雙向交互性和靈活性??蛻?服務(wù)器系統(tǒng)結(jié)構(gòu)是把圖形用戶界面和大部分應(yīng)用邏輯放在客戶機上運行,通過將SQL請求送往運行在服務(wù)器上的數(shù)據(jù)庫,對數(shù)據(jù)進行訪問。其最大的優(yōu)點在于系統(tǒng)結(jié)構(gòu)簡單;只要將客戶機和服務(wù)器通過網(wǎng)絡(luò)聯(lián)通,利用一些快速應(yīng)用開發(fā)工具就可以很快地開發(fā)出一些部門級的小規(guī)模應(yīng)用。但是,隨著信息技術(shù)的發(fā)展,這種系統(tǒng)結(jié)構(gòu)的缺陷也逐漸顯現(xiàn)出來。
首先,進入90年代中期,信息技術(shù)迅猛發(fā)展,CPU的處理能力越來越強,網(wǎng)絡(luò)的應(yīng)用日益普及,軟件應(yīng)用的規(guī)模和范圍無限拓展,許多應(yīng)用程序需在網(wǎng)絡(luò)環(huán)境的異構(gòu)平臺上運行。在這種異構(gòu)的環(huán)境中,不但存在多種硬件系統(tǒng)平臺,而且包括運行在這些硬件平臺上的各種系統(tǒng)軟件以及風格迥異的用戶界面,這些硬件系統(tǒng)平臺還可能采用不同的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)體系結(jié)構(gòu)連接。由此帶來的問題也越來越明顯,如不同硬件平臺、不同網(wǎng)絡(luò)環(huán)境、不同數(shù)據(jù)庫之間的互操作問題,多種應(yīng)用模式并存、系統(tǒng)效率過低、傳輸不可靠、數(shù)據(jù)加密、開發(fā)周期過長等等。單純依賴傳統(tǒng)的系統(tǒng)軟件或工具軟件提供的功能已無法滿足要求。
其次,當客戶/服務(wù)器方式應(yīng)用逐漸推廣到企業(yè)級的關(guān)鍵任務(wù)(Mission-Critical)環(huán)境,便出現(xiàn)了一些’lde題,如系統(tǒng)可擴展性差、解析度低、可管理性差、維護代價高、安全性差、系統(tǒng)間通訊功能較弱。
為了解決兩層結(jié)構(gòu)遇到的問題,人們提出了三層結(jié)構(gòu)的系統(tǒng)設(shè)計概念。它把應(yīng)用邏輯劃分為三個部分;第一層是用戶界面,提供用戶與系統(tǒng)的友好交互;第二層是應(yīng)用服務(wù)器,專司業(yè)務(wù)邏輯的實現(xiàn);第三層是數(shù)據(jù)服務(wù)器,負責數(shù)據(jù)信息的存儲、訪問及其優(yōu)化。其主要目的是產(chǎn)生一套切實可行的解決方案,把客戶/服務(wù)器結(jié)構(gòu)下的應(yīng)用可靠地推廣到企業(yè)級的關(guān)鍵任務(wù)環(huán)境中,并利用這一技術(shù)所帶來的高效率、多功能與靈活性,增強企業(yè)在市場上的競爭能力。而中間件正是構(gòu)造這種三層結(jié)構(gòu)的基礎(chǔ)。
所謂中間件就是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機/服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。我們可以將中間件理解成是處于應(yīng)用軟件和系統(tǒng)軟件之間的一類軟件,或者是獨立于硬件或數(shù)據(jù)庫廠商(處于其產(chǎn)品的中間,實現(xiàn)其互連)的一類軟件,或者是客戶方與服務(wù)器方之間的連接件,或者是需要進行二次開發(fā)的中間產(chǎn)品。其特點是能夠滿足大量應(yīng)用的需要,可以運行于多種硬件和OS平臺,支持分布計算,提供跨網(wǎng)絡(luò)、硬件和OS平臺的透明性。
中間件軟件管理著客戶端程序和數(shù)據(jù)庫或者早期應(yīng)用軟件之間的通訊。中間件在分布式的客戶和服務(wù)之間扮演著承上啟下的角色,如事務(wù)管理、負荷平衡以及基于Web的計算等。利用這些技術(shù)有助于減輕應(yīng)用軟件開發(fā)者的負擔,使他們在利用現(xiàn)有的硬件設(shè)備、操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫管理系統(tǒng)以及對象模型創(chuàng)建分布式應(yīng)用軟件時更加得心應(yīng)手。
由于中間件產(chǎn)品在很大程度上簡化了一個由不同硬件構(gòu)成的分布式處理環(huán)境的復(fù)雜性,所以它正在日益引起用戶的注意。面對廣闊的市場,各個軟件廠商紛紛推出自己的產(chǎn)品,群雄逐鹿的市場競爭局面逐漸形成。
早在1969年IBM就推出了專門用于事務(wù)處理的平臺軟件中間件技術(shù)作為軟件行業(yè)新崛起的一個嶄新的分支,正在全球范圍內(nèi)迅猛發(fā)展。
IDC的研究報告表明,1997年全球中間件市場的綜合增長率為28%,銷售額達到了17.16億美元。到2002年,全球中間件產(chǎn)品市場的營業(yè)額將超過70億美元。從市場情況看,到2000年,面向消息的中間件產(chǎn)品有望取代用于數(shù)據(jù)訪問的中間件產(chǎn)品,而成為該市場最大的一部分,其次是分布式交易處理中間件產(chǎn)品,依舊牢牢地占據(jù)著主流的地位,IDC預(yù)測基于桌面訪問的中間件產(chǎn)品的市場增長將在1999年達到最高峰-CICS,并將其很快推廣到了許多操作系統(tǒng)平臺,其服務(wù)器版本可運行在OS/390、MVS/ESA、VSE/ESA、OS/400、OS/2、Windows NT、Windows 95、Apple Mac、AlX、Solaris、HP-UX和Digital Unix上。
CICS經(jīng)過了近30年的發(fā)展歷史,其穩(wěn)定性和可靠性早已千錘百煉,而且CICS幾乎每年根據(jù)客戶的需求變化和新技術(shù)的出現(xiàn)均有重大發(fā)展,例如CICS在1978年就支持了分布式聯(lián)機事務(wù)處理,CICS在近年來發(fā)展了對MQ Series、Lotus Notes、Internet和Java的支持。
CICS已經(jīng)在金融、財稅、運輸、商業(yè)、服務(wù)、電力、電話等行業(yè)中得到廣泛應(yīng)用和推廣,統(tǒng)計表明,在《幸?!冯s志(Fortune)中排列世界前500家的公司,約有97%采用CICS作為其業(yè)務(wù)運行系統(tǒng)的平臺。憑借多年的開發(fā)經(jīng)驗和對市場敏銳的洞察力,IBM公司在90年代及時調(diào)整其產(chǎn)品策略,將中間件產(chǎn)品作為其今后開發(fā)的重點之重點,并推出了面向消息的中間件產(chǎn)品—MQ Series,它能夠保證數(shù)據(jù)穩(wěn)定可靠傳輸而且無丟失或重發(fā),可謂是工B岡“看家本領(lǐng)”之一。MQSeries是商業(yè)通訊中間件。它由一個信息傳輸系統(tǒng)和一個應(yīng)用程序接口組成,其資源是信息和隊列(Messogjng and Queueing)。MQ應(yīng)用程序可以通過使用一個簡單而一致的應(yīng)用程序編程接口來相互通信跨越具有不同處理器、操作系統(tǒng)、子系統(tǒng)和通訊協(xié)議的網(wǎng)絡(luò)。它的功能是控制和管理一個集成的商業(yè)應(yīng)用,使得組成這個商業(yè)應(yīng)用的多個分支程序(模塊)之間通過傳遞信息完成整個工作流程2。
特點中間件有幾個非常重要的特征是必須具備的3:
應(yīng)用支撐中間件的最終目的是解決上層應(yīng)用系統(tǒng)的問題,而且也是軟件技術(shù)發(fā)展到今天對應(yīng)用軟件提供最完善徹底的解決方案。現(xiàn)代面向服務(wù)的中間件在4個方面形成了很高地應(yīng)用支撐能力,分別為軟件的結(jié)構(gòu)、模型、開發(fā)方法以及互操作,而要最終解決軟件的靈活應(yīng)變問題、效率問題、質(zhì)量問題、互操作問題這四大問題,需要在軟件技術(shù)的內(nèi)在結(jié)構(gòu)、架構(gòu)層面進行思考。
耦合關(guān)系中間件基于SOA架構(gòu),在松耦和解耦過程中演變成了境界。而傳統(tǒng)軟件將軟件之中核心三部分數(shù)據(jù)轉(zhuǎn)換、網(wǎng)絡(luò)連接和業(yè)務(wù)邏輯所有的都耦合在一個整體,產(chǎn)生為鐵板一塊的軟件,然后動一點而動全身,這樣的軟件就很難適應(yīng)市場的需求。而分布式對象技術(shù)可以分離連接邏輯,消息中間件異步處理連接邏輯,形成了很大的靈活性。中間件分離分布式對象與消息代理的數(shù)據(jù)轉(zhuǎn)換。SOA架構(gòu)以服務(wù)的封裝,解耦實現(xiàn)了業(yè)務(wù)邏輯、數(shù)據(jù)轉(zhuǎn)換與網(wǎng)絡(luò)連接等。
互操作性傳統(tǒng)中間件在軟件的互操作方面,通過標準化的API完成了同類系統(tǒng)之間的調(diào)用互操作,但是連接互操作離不開原有的特定的訪問協(xié)議,比如CORBA用于的IIOP,JAVA用于的RMI等。而SOA以支持Internet、標準化及操作系統(tǒng)無關(guān)的SOAP協(xié)議完成了連接互操作。并且服務(wù)的封裝一般使用XML協(xié)議,它有自定義及自解析的特性,因此基于SOA的中間件能夠完成語義互操作。
軟件復(fù)用軟件復(fù)用也稱為軟件的重用,是指在一定范圍內(nèi)不修改或者略有修改都屬于重復(fù)使用。其實說白了其意思就是不斷提升抽象級別,然后擴展復(fù)用的范圍。最早使用的復(fù)用技術(shù)一般是子程序,自從發(fā)明子程序之后,人們就可以在不同系統(tǒng)之間進行軟件復(fù)用。但子程序只是最原始的復(fù)用,因為這種復(fù)用范圍只是在一個可執(zhí)行程序內(nèi)中的復(fù)用,靜態(tài)開發(fā)期的復(fù)用,一旦子程序被修改,那么就需要重新對所有調(diào)用這個子程序的程序進行編譯、測試以及發(fā)布。
平臺化我們所說的平臺是指能夠獨立運行并且自主存在的,能支撐上層系統(tǒng)和應(yīng)用提供運行所依賴的環(huán)境。顯然,不是所有的系統(tǒng)或者應(yīng)用都可以稱之為平臺的。中間件是一個平臺,因此中間件是必須獨立存在,它在操作的系統(tǒng)軟件,為上層的網(wǎng)絡(luò)應(yīng)用系統(tǒng)提供一個運行支撐環(huán)境,同時圍繞標準的接口與API來隔離系統(tǒng),完成其獨立,也就是平臺性??偟膩碚f,中間件在完整業(yè)務(wù)復(fù)用、靈活業(yè)務(wù)組織方面的發(fā)展趨勢集中體現(xiàn)在服務(wù)化,其核心技術(shù)是提升IT基礎(chǔ)設(shè)施的業(yè)務(wù)敏捷性。中間件因此將成為SOA的主要實現(xiàn)平臺。
分類中間件的作用簡單來說就是試圖通過屏蔽各種復(fù)雜的技術(shù)細節(jié)使技術(shù)問題簡單化。具體地說,中間件屏蔽了底層操作系統(tǒng)的復(fù)雜性,使程序開發(fā)人員面對一個簡單而統(tǒng)一的開發(fā)環(huán)境,減少程序設(shè)計的復(fù)雜性,將注意力集中在自己的業(yè)務(wù)上,不必再為程序在不同系統(tǒng)軟件上的移植而重復(fù)工作,從而大大減少了技術(shù)上的負擔。所以說中間件帶給應(yīng)用系統(tǒng)的,不只是開發(fā)的簡便、開發(fā)周期的縮短,同時也減少了系統(tǒng)的維護、運行和管理的工作量,還減少了計算機總體費用的投入。其次,中間件作為新層次的基礎(chǔ)軟件,其重要作用是將不同時期、在不同操作系統(tǒng)上開發(fā)的應(yīng)用軟件集成起來,彼此像一個天衣無縫的整體協(xié)調(diào)工作,這是操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)本身做不了的。目前,針對不同的應(yīng)用涌現(xiàn)出各具特色的中間件產(chǎn)品。從不同的角度和層次對中間件有不同的分類。根據(jù)中間件在系統(tǒng)中所起的作用和采用的技術(shù)不同,可以把中間件大致劃分為以下幾種4:
數(shù)據(jù)訪問中間件(Data Access Middieware)在分布式系統(tǒng)中,重要的數(shù)據(jù)都集中存放在數(shù)據(jù)服務(wù)器中,它們可以是關(guān)系型、復(fù)合文檔型、具有各種存放格式的多媒體型,或者是經(jīng)過加密或壓縮存放的,數(shù)據(jù)訪問中間件是在這種系統(tǒng)中建立數(shù)據(jù)應(yīng)用資源互操作的模式,實現(xiàn)異構(gòu)環(huán)境下的數(shù)據(jù)庫聯(lián)接或文件系統(tǒng)聯(lián)接的中間件,從而為在網(wǎng)絡(luò)上虛擬緩沖存取、格式轉(zhuǎn)換、解壓等帶來方便。數(shù)據(jù)訪問中間件在所有的中間件中是應(yīng)用最廣泛、技術(shù)最成熟的一種。一個最典型的例子就是ODBC,ODBC是一種基于數(shù)據(jù)庫的中間件標準,它允許應(yīng)用程序和本地或者異地的數(shù)據(jù)庫進行通信,并提供了一系列的應(yīng)用程序接口API,當然,在多數(shù)情況下這些API都是隱藏在開發(fā)工具中,不被程序員直接使用。不過在數(shù)據(jù)訪問中間件處理模型中,數(shù)據(jù)庫是信息存貯的核心單元,中間件完成通信的功能,這種方式雖然是靈活的,但是并不適合于一些要求高性能處理的場合,因為它需要大量的數(shù)據(jù)通信,而且當網(wǎng)絡(luò)發(fā)生故障時,系統(tǒng)將不能正常工作。
遠程過程調(diào)用中間件(RPC)遠程過程調(diào)用是另外一種形式的中間件,它在客戶/服務(wù)器計算方面,比數(shù)據(jù)庫中間件又邁進了一步。通過這種遠程過程調(diào)用機制,程序員編寫客戶方的應(yīng)用,需要時可以調(diào)用位于遠端服務(wù)器上的過程。它的工作方式如下:當一個應(yīng)用程序A需要與遠程的另一個應(yīng)用程序B交換信息或要求B提供協(xié)助時,A在本地產(chǎn)生一個請求,通過通訊鏈路通知B接收信息或提供相應(yīng)的服務(wù),B完成相關(guān)處理后將信息或結(jié)果返回給A。RPC的靈活特性使得它有比數(shù)據(jù)庫中間件更廣泛的應(yīng)用,它可以應(yīng)用在更復(fù)雜的客戶/服務(wù)器計算環(huán)境中。遠程過程調(diào)用的靈活性還體現(xiàn)在它的跨平臺性方面,它不僅可以調(diào)用遠端的子程序,而且這種調(diào)用是可以跨不同操作系統(tǒng)平臺的,而程序員在編程時并不需要考慮這些細節(jié)。RPC也有一些缺點,主要是因為RPC一般用于應(yīng)用程序之間的通信,而且采用的是同步通信方式,因此對于比較小型的簡單應(yīng)用還是比較適合的,因為這些應(yīng)用通常不要求異步通信方式。但是對于一些大型的應(yīng)用,這種方式就不是很適合了,因為此時程序員需要考慮網(wǎng)絡(luò)或者系統(tǒng)故障,處理并發(fā)操作、緩沖、流量控制以及進程同步等一系列復(fù)雜問題。
面向消息中間件(MOM)消息中間件能在不同平臺之間通信,實現(xiàn)分布式系統(tǒng)中可靠的、高效的、實時的跨平臺數(shù)據(jù)傳輸,它常被用來屏蔽掉各種平臺及協(xié)議之間的特性,實現(xiàn)應(yīng)用程序之間的協(xié)同;其優(yōu)點在于能夠在客戶和服務(wù)器之間提供同步和異步的連接,并且在任何時刻都可以將消息進行傳送或者存儲轉(zhuǎn)發(fā),這也是它比遠程過程調(diào)用更進一步的原因。另外消息中間件不會占用大量的網(wǎng)絡(luò)帶寬,可以跟蹤事務(wù),并且通過將事務(wù)存儲到磁盤上實現(xiàn)網(wǎng)絡(luò)故障時系統(tǒng)的恢復(fù)。當然和遠程過程調(diào)用相比,消息中間件不支持程序控制的傳遞。消息中間件適用于需要在多個進程之間進行可靠的數(shù)據(jù)傳送的分布式環(huán)境。它是中間件中唯一不可缺少的,也是銷售額最大的中間件產(chǎn)品,目前在Windows2000操作系統(tǒng)中已包含了其部分功能。
面向?qū)ο蟮闹虚g件面向?qū)ο蟮闹虚g件(Object Oriented Middieware)。當前開發(fā)大型應(yīng)用軟件通常采用基于組件技術(shù),在分布系統(tǒng)中,還需要集成各節(jié)點上的不同系統(tǒng)平臺上的組件或新老版本的組件;組件的含義通常指的是一組對象的集成,其種類有數(shù)百萬種,但這些組件面臨著缺乏標準而不能相互操作,各廠家的組件只能在各自的平臺上運行。為此,連接這些組件環(huán)境的面向?qū)ο蟮闹虚g件便應(yīng)運而生。面向?qū)ο蟮闹虚g件是對象技術(shù)和分布式計算發(fā)展的產(chǎn)物,它提供一種通訊機制,透明地在異構(gòu)的分布計算環(huán)境中傳遞對象請求,而這些對象可以位于本地或者遠程機器。在這些面向?qū)ο蟮闹虚g件中,功能最強的是CORBA,可以跨任意平臺,但是太龐大;JavaBeans較靈活簡單,很適合于作瀏覽器,但運行效率差;DCOM模型主要適合Windows平臺,已廣泛使用。但是DCOM和CORBA這兩種標準相互競爭,而且兩者之間有很大的區(qū)別,這在一定程度上阻礙了面向?qū)ο笾虚g件的標準化進程。當前國內(nèi)新建系統(tǒng)實際上主要是UNIX(包括LINUX)和Windows,因此針對這兩個平臺建立標準的面向?qū)ο笾虚g件是很有必要的。
事務(wù)處理中間件(TPM)事務(wù)處理中間件是在分布、異構(gòu)環(huán)境下提供保證交易完整性和數(shù)據(jù)完整性的一種環(huán)境平臺;它是針對復(fù)雜環(huán)境下分布式應(yīng)用的速度和可靠性要求而實現(xiàn)的。它給程序員提供了一個事務(wù)處理的API,程序員可以使用這個程序接口編寫高速而且可靠的分布式應(yīng)用程序——基于事務(wù)處理的應(yīng)用程序。事務(wù)處理中間件向用戶提供一系列的服務(wù),如應(yīng)用管理、管理控制、已經(jīng)應(yīng)用于程序間的消息傳遞等。常見的功能包括全局事務(wù)協(xié)調(diào)、事務(wù)的分布式兩段提交(準備階段和完成階段)、資源管理器支持、故障恢復(fù)、高可靠性、網(wǎng)絡(luò)負載平衡等等。
網(wǎng)絡(luò)中間件它包括網(wǎng)管、接入、網(wǎng)絡(luò)測試、虛擬社區(qū)、虛擬緩沖等,也是當前研究的熱點。
終端仿真/屏幕轉(zhuǎn)換中間件它的作用在于實現(xiàn)客戶機圖形用戶接口與已有的字符接口方式的服務(wù)器應(yīng)用程序之間的互操作。
發(fā)展趨勢軟件構(gòu)件化(Software Component)技術(shù)是在大工業(yè)生產(chǎn)啟發(fā)下應(yīng)運而生的,是軟件技術(shù)跨世紀的一個發(fā)展趨勢,其目的是徹底改變軟件生產(chǎn)方式,從根本上提高軟件生產(chǎn)的效率和質(zhì)量,提高開發(fā)大型軟件系統(tǒng)尤其是商用系統(tǒng)的成功率。有了軟件構(gòu)件之后,應(yīng)用開發(fā)人員就可以利用現(xiàn)成的軟件構(gòu)件裝配成適用于不同領(lǐng)域、功能各異的應(yīng)用軟件。復(fù)用軟件一直是整個世界軟件業(yè)所追求的夢想,軟件構(gòu)件化為實現(xiàn)這一夢想指出了一條切實可行的道路,而中間件正是構(gòu)件化軟件的一種形式。中間件抽象了典型的應(yīng)用模式,應(yīng)用軟件制造者可以基于標準的形式進行開發(fā),使軟件構(gòu)件化成為可能,加速了軟件復(fù)用的進程。因此,中間件是符合軟件發(fā)展的內(nèi)在規(guī)律的。
中間件在十幾年不斷發(fā)展的歷史中,為大型企業(yè)應(yīng)用的建設(shè)起到了很大的作用。但是沉淀下來的優(yōu)秀中間件企業(yè)卻不多。中間件作為一個產(chǎn)品,一方面受到軟件技術(shù)從C、C++、Java、J2EE到.net的牽制,又有應(yīng)用軟件走出部門、走向全企業(yè)和全互聯(lián)網(wǎng)的引領(lǐng),也從CORBA,COM+,消息中間件發(fā)展到了J2EE平臺和SOA。在這么多的技術(shù)遷徙過程中,要讓一個公司能夠持續(xù)發(fā)展也真是不容易。所以有了Inprise、Iona的不成功,也才有IBM、Microsoft的不倒翁地位。也難怪中國的中間件公司,只要還存在就是巨大的成功了。
傳統(tǒng)的中間件技術(shù)的發(fā)展往往源于技術(shù)能力。而技術(shù)的不斷變化又讓這些公司難以長期立足。但是如果我們站在一個更高的層次,跨越純技術(shù)性的定位,也許我們會看到一個更平穩(wěn)的中間件市場的空間,這正是新一代的中間件軟件廠商的立足之地。從應(yīng)用軟件的角度來看,我們需要一個穩(wěn)定的、技術(shù)依賴性較弱的方法來描述企業(yè)應(yīng)用的不斷升級的業(yè)務(wù)邏輯結(jié)構(gòu)。業(yè)務(wù)邏輯會按照企業(yè)的發(fā)展而發(fā)展,卻不應(yīng)該太多的因為技術(shù)的變化而重新編寫。新一代的面向構(gòu)件的中間件就是這樣一個在基礎(chǔ)中間件上的一個新的樓層5。
中間件的發(fā)展日臻完善,它為計算機軟件的發(fā)展注入了新鮮的活力,是軟件技術(shù)發(fā)展的一種潮流。中間件的組件模式,簡化了應(yīng)用程序的開發(fā)復(fù)雜性,提高了軟件的可重用性,促使軟件生產(chǎn)的產(chǎn)業(yè)化,使跨企業(yè)的分布式應(yīng)用得到了推廣。
據(jù)有關(guān)組織預(yù)測,消息中間件是目前中間件技術(shù)的發(fā)展熱點,在市場上占據(jù)了主導(dǎo)地位。消息中間件以其獨特的優(yōu)勢為各種分布式應(yīng)用的開發(fā)注入了強大的動力,極大地推動了應(yīng)用集成的發(fā)展。對象中間件技術(shù)也發(fā)展迅速,也是未來的主流,各大硬軟件公司,如:Sun,Microsoft,IBM,DEC等都在積極參與有關(guān)標準的制定和產(chǎn)品的開發(fā)工作。中間件的另一個發(fā)展方向是WebServices中間件,不同于目前的組件技術(shù),WebServices不是通過特定的對象模型協(xié)議訪問,而是通過通用的網(wǎng)絡(luò)協(xié)議和數(shù)據(jù)格式來訪問,例如HTTP和XML。用戶僅僅通過創(chuàng)建并使用為WebServices接口定義的消息就可以使用任何語言在任何平臺上調(diào)用WebServices。目前WebServices中間件還處在發(fā)展初期,許多標準和規(guī)范還在制定和完善中。
隨著Web技術(shù)的飛速發(fā)展,中間件當前所面臨的重大的挑戰(zhàn)就是要在互聯(lián)網(wǎng)這個復(fù)雜的分布式系統(tǒng)中構(gòu)建應(yīng)用程序??梢灶A(yù)見,未來的中間件必將和網(wǎng)絡(luò)技術(shù)緊密相關(guān)。國內(nèi)外都正在深入地研究這一技術(shù)6。