中間件介紹
?
中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。
?
在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。
IDC對(duì)中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件不僅僅實(shí)現(xiàn)互連,還要實(shí)現(xiàn)應(yīng)用之間的互操作;中間件是基于分布式處理的軟件,最突出的特點(diǎn)是其網(wǎng)絡(luò)通信功能。
?
中科院軟件所研究員仲萃豪形象地把中間件定義為:平臺(tái)+通信。這個(gè)定義限定了只有用于分布式系統(tǒng)中的此類軟件才能被稱為中間件,同時(shí)此定義還可以把中間件與支撐軟件和實(shí)用軟件區(qū)分開來。目前,中間件發(fā)展很快,已經(jīng)與操作系統(tǒng)、數(shù)據(jù)庫(kù)并列為三大基礎(chǔ)軟件。中間件主要分為以下幾類:
?
1.通信處理(消息)中間件
?
此類中間件能在不同平臺(tái)之間通信,實(shí)現(xiàn)分布式系統(tǒng)中可靠的、高效的、實(shí)時(shí)的跨平臺(tái)數(shù)據(jù)傳輸(如Tong LINK、BEAe Link、IBM的MQ Series等)。這是中間件中唯一不可缺少的,是銷售額最大的中間件產(chǎn)品。
?
2.交易中間件
?
在分布式事務(wù)處理系統(tǒng)中要處理大量事務(wù),常常在系統(tǒng)中要同時(shí)做上萬筆事務(wù)。例如在北京市就要設(shè)置各種運(yùn)載汽車,完成日常的運(yùn)載,同時(shí)要隨時(shí)監(jiān)視汽車運(yùn)行,出現(xiàn)故障時(shí),要有排除措施,發(fā)生堵塞時(shí)要進(jìn)行調(diào)度。在聯(lián)機(jī)事務(wù)處理系統(tǒng)(OLTP)中,每筆事務(wù)常常要多臺(tái)服務(wù)器上的程序順序地協(xié)調(diào)完成,一旦中間發(fā)生某種故障時(shí),不但要完成恢復(fù)工作,而且要自動(dòng)切換系統(tǒng),達(dá)到系統(tǒng)永不停機(jī),實(shí)現(xiàn)高可靠性運(yùn)行;同時(shí)要使大量事務(wù)在多臺(tái)應(yīng)用服務(wù)器能實(shí)時(shí)并發(fā)運(yùn)行,并進(jìn)行負(fù)載平衡地調(diào)度,實(shí)現(xiàn)昂貴的可靠性機(jī)和大型計(jì)算機(jī)系統(tǒng)同等的功能,為了實(shí)現(xiàn)這個(gè)目標(biāo),要求系統(tǒng)具有監(jiān)視和調(diào)度整個(gè)系統(tǒng)的功能。BEA的Tuxedo由此而著名,它成為增長(zhǎng)率最高的廠商。一個(gè)事務(wù)處理平臺(tái),根據(jù)X/OPEN的參數(shù)模型規(guī)定,應(yīng)由事務(wù)處理中間件、通信處理中間件以及數(shù)據(jù)存取管理中間件三部分組成。東方通科技公司的Tong LINK和TongEASY實(shí)現(xiàn)了這個(gè)參考模型規(guī)定。
?
3.數(shù)據(jù)存取管理中間件
?
在分布式系統(tǒng)中,重要的數(shù)據(jù)都集中存放在數(shù)據(jù)服務(wù)器中,它們可以是關(guān)系型的、復(fù)合文檔型、具有各種存放格式的多媒體型,或者是經(jīng)過加密或壓縮存放的,該中間件將為在網(wǎng)絡(luò)上虛擬緩沖存取、格式轉(zhuǎn)換、解壓等帶來方便。
?
?
中間件簡(jiǎn)史
?
最早具有中間件技術(shù)思想及功能的軟件是IBM的CICS,但由于CICS不是分布式環(huán)境的產(chǎn)物,因此人們一般把Tuxedo作為第一個(gè)嚴(yán)格意義上的中間件產(chǎn)品。Tuxedo是1984年在當(dāng)時(shí)屬于AT&&T的貝爾實(shí)驗(yàn)室開發(fā)完成的,但由于分布式處理當(dāng)時(shí)并沒有在商業(yè)應(yīng)用上獲得像今天一樣的成功,Tuxedo在很長(zhǎng)一段時(shí)期里只是實(shí)驗(yàn)室產(chǎn)品,后來被Novell收購(gòu),在經(jīng)過Novell并不成功的商業(yè)推廣之后,1995年被現(xiàn)在的BEA公司收購(gòu)。盡管中間件的概念很早就已經(jīng)產(chǎn)生,但中間件技術(shù)的廣泛運(yùn)用卻是在最近10年之中。BEA公司1995年成立后收購(gòu)Tuxedo才成為一個(gè)真正的中間件廠商,IBM的中間件MQSeries也是90年代的產(chǎn)品,其它許多中間件產(chǎn)品也都是最近幾年才成熟起來。
?
1998年IDC公司對(duì)于中間件有一個(gè)定義,并根據(jù)用途將其劃分為6個(gè)類別。如今所保留下來的只有消息中間件和交易中間件,其他的已經(jīng)被逐步融合到其他產(chǎn)品中了,被包裹進(jìn)去了,在市場(chǎng)上已經(jīng)沒有單獨(dú)的產(chǎn)品形態(tài)出現(xiàn)了。例如,當(dāng)時(shí)有一個(gè)叫屏幕數(shù)據(jù)轉(zhuǎn)換的中間件,其主要是針對(duì)IBM大機(jī)終端而設(shè)計(jì)產(chǎn)品,用于將IBM大機(jī)終端的字符界面轉(zhuǎn)化為用戶所喜歡的圖形界面,類似的東西當(dāng)時(shí)都稱為中間件。但隨著IBM大機(jī)環(huán)境越來越少,但是盛行一時(shí)的此類中間件如今已經(jīng)很少再被單獨(dú)提及。
?
2000年前后,互聯(lián)網(wǎng)盛行起來,隨之產(chǎn)生了一個(gè)新的東西,就是應(yīng)用服務(wù)器。實(shí)際上,交易中間件也屬于是應(yīng)用服務(wù)器,為了區(qū)分,人們傳統(tǒng)的交易中間件稱為分布交易中間件,因它主要應(yīng)用在分布式環(huán)境下,而將新的應(yīng)用服務(wù)器,稱為J2EE中間件,到目前為止,這都是市場(chǎng)上非常熱門的產(chǎn)品。(在J2EE中就是tomcat和weblogic等服務(wù)器軟件)
?
EAI概念出來之后,市場(chǎng)上又推出了一些新的軟件產(chǎn)品,,例如工作流、Portal等,但從分類上不知道怎么歸類,向上不能夠劃歸應(yīng)用,往下又不能歸入操作系統(tǒng),于是就把它歸入了中間件,如此中間件的概念更加擴(kuò)大了。目前,市場(chǎng)上對(duì)于中間件,各家的說法不一,客觀上也導(dǎo)致了理解上的復(fù)雜性。
?
如今,市場(chǎng)上又推出了很多新的概念,例如三層結(jié)構(gòu)、構(gòu)件、Web服務(wù),其中風(fēng)頭最勁的當(dāng)屬SOA(面向服務(wù)的架構(gòu))。實(shí)際上,他們都不是一個(gè)產(chǎn)品,而是一種技術(shù)的實(shí)現(xiàn)方法,是開發(fā)一個(gè)軟件的一種方法論。我們知道,最早軟件開發(fā)方法就是編程、寫代碼的,其缺點(diǎn)在于無法復(fù)用,為此提出了構(gòu)件化的軟件開發(fā)方法,通過把編程中一些常用功能進(jìn)行封裝,并規(guī)范統(tǒng)一接口,供其它程序調(diào)用,例如我們開發(fā)一個(gè)新軟件,可能要用到構(gòu)件1、構(gòu)件2、構(gòu)件3,那么,我們只要對(duì)其進(jìn)行本地組裝,就可以得到我們想要的應(yīng)用軟件。在互聯(lián)網(wǎng)得到普及重視之后,軟件開發(fā)方法在構(gòu)件化基礎(chǔ)上又有新發(fā)展,核心思想是軟件并不需要囊括構(gòu)件,所需要的僅僅是構(gòu)件的運(yùn)行結(jié)果,例如編寫一個(gè)通信傳輸軟件,就可以到網(wǎng)上尋找構(gòu)件,并提出服務(wù)請(qǐng)求,得到結(jié)果后返回,而不需要下載構(gòu)件并打包,這就是現(xiàn)在所說的SOA。想要現(xiàn)實(shí)SOA,就要規(guī)范構(gòu)件接口,同時(shí)還要規(guī)范構(gòu)件所提交的服務(wù)結(jié)果,如此,新的軟件開發(fā)的思想才能夠行的通。但SOA并不是一個(gè)產(chǎn)品,而是一種思想方法,而實(shí)現(xiàn)這種方法的基礎(chǔ),如今看來只有中間件。
?
國(guó)內(nèi)在中間件領(lǐng)域的起步階段正是整個(gè)世界范圍內(nèi)中間件的初創(chuàng)時(shí)期。東方通科技早在1992年就開始中間件的研究與開發(fā),1993年推出第一個(gè)產(chǎn)品TongLINK/Q。而中科院軟件所、國(guó)防科技大學(xué)等研究機(jī)構(gòu)也對(duì)中間件技術(shù)進(jìn)行了同步研究。可以說,在中間件領(lǐng)域,國(guó)內(nèi)的起步時(shí)間并不比國(guó)外晚多少。
?
?
?
?