中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。
在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。
IDC對中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件不僅僅實現(xiàn)互連,還要實現(xiàn)應(yīng)用之間的互操作;中間件是基于分布式處理的軟件,最突出的特點是其網(wǎng)絡(luò)通信功能。
中科院軟件所研究員仲萃豪形象地把中間件定義為:平臺+通信。這個定義限定了只有用于分布式系統(tǒng)中的此類軟件才能被稱為中間件,同時此定義還可以把中間件與支撐軟件和實用軟件區(qū)分開來。
目前,中間件發(fā)展很快,已經(jīng)與操作系統(tǒng)、數(shù)據(jù)庫并列為三大基礎(chǔ)軟件。中間件主要分為以下幾類:
1.通信處理(消息)中間件
此類中間件能在不同平臺之間通信,實現(xiàn)分布式系統(tǒng)中可靠的、高效的、實時的跨平臺數(shù)據(jù)傳輸(如Tong LINK、BEAe Link、IBM的MQ Series等)。這是中間件中唯一不可缺少的,是銷售額最大的中間件產(chǎn)品。
2.交易中間件
在分布式事務(wù)處理系統(tǒng)中要處理大量事務(wù),常常在系統(tǒng)中要同時做上萬筆事務(wù)。例如在北京市就要設(shè)置各種運載汽車,完成日常的運載,同時要隨時監(jiān)視汽車運 行,出現(xiàn)故障時,要有排除措施,發(fā)生堵塞時要進(jìn)行調(diào)度。在聯(lián)機事務(wù)處理系統(tǒng)(OLTP)中,每筆事務(wù)常常要多臺服務(wù)器上的程序順序地協(xié)調(diào)完成,一旦中間發(fā) 生某種故障時,不但要完成恢復(fù)工作,而且要自動切換系統(tǒng),達(dá)到系統(tǒng)永不停機,實現(xiàn)高可靠性運行;同時要使大量事務(wù)在多臺應(yīng)用服務(wù)器能實時并發(fā)運行,并進(jìn)行 負(fù)載平衡地調(diào)度,實現(xiàn)昂貴的可靠性機和大型計算機系統(tǒng)同等的功能,為了實現(xiàn)這個目標(biāo),要求系統(tǒng)具有監(jiān)視和調(diào)度整個系統(tǒng)的功能。BEA的Tuxedo由此而 著名,它成為增長率最高的廠商。一個事務(wù)處理平臺,根據(jù)X/OPEN的參數(shù)模型規(guī)定,應(yīng)由事務(wù)處理中間件、通信處理中間件以及數(shù)據(jù)存取管理中間件三部分組 成。東方通科技公司的Tong LINK和TongEASY實現(xiàn)了這個參考模型規(guī)定。
3.數(shù)據(jù)存取管理中間件
在分布式系統(tǒng)中,重要的數(shù)據(jù)都集中存放在數(shù)據(jù)服務(wù)器中,它們可以是關(guān)系型的、復(fù)合文檔型、具有各種存放格式的多媒體型,或者是經(jīng)過加密或壓縮存放的,該中間件將為在網(wǎng)絡(luò)上虛擬緩沖存取、格式轉(zhuǎn)換、解壓等帶來方便。
中間件簡史
最早具有中間件技術(shù)思想及功能的軟件是IBM的CICS,但由于CICS不是分布式環(huán)境的產(chǎn)物,因此人們一般把Tuxedo作為第一個嚴(yán)格意義上的中間件產(chǎn)品。Tuxedo是1984年在當(dāng)時屬于AT&&T的貝爾實驗室開發(fā)完成的,但由于分布式處理當(dāng)時并沒有在商業(yè)應(yīng)用上獲得像今天一樣的成功,Tuxedo在很長一段時期里只是實驗室產(chǎn)品,后來被Novell收購,在經(jīng)過Novell并不成功的商業(yè)推廣之后,1995年被現(xiàn)在的BEA公司收購。
盡管中間件的概念很早就已經(jīng)產(chǎn)生,但中間件技術(shù)的廣泛運用卻是在最近10年之中。BEA公司1995年成立后收購Tuxedo才成為一個真正的中間件廠商,IBM的中間件MQSeries也是90年代的產(chǎn)品,其它許多中間件產(chǎn)品也都是最近幾年才成熟起來。國內(nèi)在中間件領(lǐng)域的起步階段正是整個世界范圍內(nèi)中間件的初創(chuàng)時期。東方通科技早在1992年就開始中間件的研究與開發(fā),1993年推出第一個產(chǎn)品TongLINK/Q。而中科院軟件所、國防科技大學(xué)等研究機構(gòu)也對中間件技術(shù)進(jìn)行了同步研究??梢哉f,在中間件領(lǐng)域,國內(nèi)的起步時間并不比國外晚多少。
在j2ee中就是tomcat 和 weblogic 等服務(wù)器軟件
計算機技術(shù)迅速發(fā)展。從硬件技術(shù)看,CPU速度越來越高,處理能力越來越強;從軟件技術(shù)看,應(yīng)用程序的規(guī)模不斷擴大,特別是Internet及WWW的出現(xiàn),使計算機的應(yīng)用范圍更為廣闊,許多應(yīng)用程序需在網(wǎng)絡(luò)環(huán)境的異構(gòu)平臺上運行。這一切都對新一代的軟件開發(fā)提出了新的需求。在這種分布異構(gòu)環(huán)境中,通常存在多種硬件系統(tǒng)平臺(如PC,工作站,小型機等),在這些硬件平臺上又存在各種各樣的系統(tǒng)軟件(如不同的操作系統(tǒng)、數(shù)據(jù)庫、語言編譯器等),以及多種風(fēng)格各異的用戶界面,這些硬件系統(tǒng)平臺還可能采用不同的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)體系結(jié)構(gòu)連接。如何把這些系統(tǒng)集成起來并開發(fā)新的應(yīng)用是一個非?,F(xiàn)實而困難的問題。