中圖分類號 TP316文獻(xiàn)標(biāo)識碼A文章編號1673-9671-(2009)111-0024-01
計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,許多應(yīng)用程序需在網(wǎng)絡(luò)環(huán)境的異構(gòu)平臺上運(yùn)行。在這種分布異構(gòu)環(huán)境中,通常存在多種硬件系統(tǒng)平臺(如PC,工作站,小型機(jī)等),在硬件平臺上又存在各種各樣的系統(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)用是一個現(xiàn)實而困難的問題,于是“中間件”技術(shù)就應(yīng)運(yùn)而生。
中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,位于應(yīng)用與操作系統(tǒng)之間,屏蔽底層操作系統(tǒng)、網(wǎng)絡(luò)以及數(shù)據(jù)庫的異構(gòu)性和復(fù)雜性,簡化網(wǎng)絡(luò)分布應(yīng)用的開發(fā)、管理和維護(hù),實現(xiàn)了應(yīng)用邏輯與系統(tǒng)服務(wù)關(guān)注點(diǎn)的分離。
1 中間件的定義
為了解決分布異構(gòu)問題,提出了中間件的概念。中間件是位于平臺(硬件和操作系統(tǒng))和應(yīng)用之間的通用服務(wù),如圖中間件示意圖1所示,這些服務(wù)具有標(biāo)準(zhǔn)的程序接口和協(xié)議。針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)議規(guī)范的多種實現(xiàn)。
IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)對中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件不僅僅實現(xiàn)互連,還要實現(xiàn)應(yīng)用之間的互操作;中間件是基于分布式處理的軟件,最突出的特點(diǎn)是其網(wǎng)絡(luò)通信功能。
國外學(xué)術(shù)界給中間件的定義:中間件是一種軟件,它能使處于應(yīng)用層中的各應(yīng)用成分之間實現(xiàn)跨網(wǎng)絡(luò)的協(xié)同工作(也就是互操作)這時允許各應(yīng)用成分之下所涉及的“系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫和其他應(yīng)用服務(wù)”各不相同。這一定義可形象地表示成如圖中間件示意圖2
2中間件的分類
2.1 數(shù)據(jù)訪問中間件
數(shù)據(jù)訪問中間件是指一切連接應(yīng)用程序和數(shù)據(jù)庫的軟件。面向數(shù)據(jù)庫的中間件允許開發(fā)人員通過單一的、定義良好的API訪問另一臺計算機(jī)上的資源,數(shù)據(jù)訪問中間件的使用是解決異質(zhì)平臺、異質(zhì)環(huán)境、異質(zhì)數(shù)據(jù)庫的統(tǒng)一訪問、統(tǒng)一存取的最佳方案。
在分布式系統(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)換、解壓等帶來方便。
2.2 事務(wù)處理中間件
事務(wù)是對共享的系統(tǒng)資源所完成的一件工作,它通常由一系列的操作所組成。事務(wù)處理中間件則主要用于分布式計算環(huán)境中產(chǎn)生事務(wù)的監(jiān)控和管理。
事務(wù)處理中間件向用戶提供一系列的服務(wù),如應(yīng)用管理,管理控制以及應(yīng)用程序間的消息傳遞等。常見的功能包括全局事務(wù)協(xié)調(diào)、事務(wù)的分布式兩段提交、資源管理器支持、故障恢復(fù)、高可靠性、網(wǎng)絡(luò)負(fù)載平衡等。
2.3 面向消息中間件
在不同的網(wǎng)絡(luò)硬件平臺、不同的操作系統(tǒng)乃至不同的網(wǎng)絡(luò)協(xié)議上的應(yīng)用程序之間有時需要傳送消息,這時應(yīng)用程序?qū)魉偷囊笫撬鶄飨?nèi)容可靠和可恢復(fù)性(當(dāng)發(fā)生意外,信息無法正常接受),而并不要求消息的即時即刻傳遞到對方。因此,需要一種面向消息的中間件,簡稱消息中間件。
消息中間件連接不同應(yīng)用之間的通信,將不同的通信格式轉(zhuǎn)換成同一格式。從而實現(xiàn)不同的網(wǎng)絡(luò)硬件平臺和不同操作系統(tǒng)以及不同網(wǎng)絡(luò)協(xié)議上應(yīng)用程序的消息互傳。它的優(yōu)點(diǎn)在于能夠在客戶和服務(wù)器之間提供同步和異步的連接,并且在任何時刻都可以將消息進(jìn)行傳送或者存儲轉(zhuǎn)發(fā),另外不會占用大量的網(wǎng)絡(luò)帶寬,可以跟蹤事務(wù),并且通過將事務(wù)存儲到磁盤上實現(xiàn)網(wǎng)絡(luò)故障時系統(tǒng)的恢復(fù)。
2.4 基于遠(yuǎn)程過程調(diào)用中間件
遠(yuǎn)程過程調(diào)用是一個計算機(jī)通信協(xié)議。該協(xié)議允許運(yùn)行于一臺計算機(jī)的程序調(diào)用另一臺計算機(jī)的子程序,而程序員無需額外地為這個交互作用編程。如果涉及的軟件采用面向?qū)ο缶幊?,那么遠(yuǎn)程過程調(diào)用亦可稱作遠(yuǎn)程調(diào)用或遠(yuǎn)程方法調(diào)用。
遠(yuǎn)程過程調(diào)用是一個分布式計算的客戶端-服務(wù)器的例子。遠(yuǎn)程過程調(diào)用總是由客戶端對服務(wù)器發(fā)出一個執(zhí)行若干過程請求,并用客戶端提供的參數(shù)。執(zhí)行結(jié)果將返回給客戶端。由于存在各式各樣的變體和細(xì)節(jié)差異,對應(yīng)地衍生了各式遠(yuǎn)程過程調(diào)用協(xié)議,而且它們并不互相兼容。故基于遠(yuǎn)程過程調(diào)用的中間件就應(yīng)運(yùn)而生。
2.5 面向?qū)ο蟮闹虚g件
當(dāng)前開發(fā)大型應(yīng)用軟件通常采用基于組件技術(shù),所謂組件就是一組對象的集成,其種類很多,有百萬種,但這些組件面臨著缺乏標(biāo)準(zhǔn)而不能相互操作。在有些分布式系統(tǒng)中,還需要集成各節(jié)點(diǎn)上的不同系統(tǒng)平臺上的組件或新老版組件。為時,面向?qū)ο蟮闹虚g件就產(chǎn)生了。
面向?qū)ο蟮闹虚g件是對象技術(shù)和分布式計算發(fā)展的產(chǎn)物,它提供一種通訊機(jī)制,透明地在異構(gòu)的分布計算環(huán)境中傳遞對象請求,而這些對象可以位于本地或者遠(yuǎn)程機(jī)器。
3中間件特點(diǎn)和優(yōu)勢
通常意義下,中間件應(yīng)具有以下的一些特點(diǎn):滿足大量應(yīng)用的需要;運(yùn)行于多種硬件和操作系統(tǒng)平臺;支持分布式計算,提供跨網(wǎng)絡(luò)、硬件和操作系統(tǒng)平臺的透明性的應(yīng)用或服務(wù)的交互功能;支持標(biāo)準(zhǔn)的協(xié)議;支持標(biāo)準(zhǔn)的接口。由于標(biāo)準(zhǔn)接口對于可移植性和標(biāo)準(zhǔn)協(xié)議對于互操作性的重要性,中間件已成為許多標(biāo)準(zhǔn)化工作的主要部分。
世界著名的咨詢機(jī)構(gòu)The Standish Group在一份研究報告中歸納了中間件的十大優(yōu)越性:(1) 減少應(yīng)用開發(fā)費(fèi)用;(2) 減少初期資金和運(yùn)行費(fèi)用;(3) 縮短開發(fā)周期;(4) 減少項目開發(fā)風(fēng)險;(5) 合理運(yùn)用資金;(6) 簡化應(yīng)用集成;(7) 減少系統(tǒng)維護(hù)費(fèi);(8) 保證質(zhì)量;(9) 保持技術(shù)革新;(10) 增加產(chǎn)品吸引力。
具體地說,中間件屏蔽了低層操作系統(tǒng)的復(fù)雜性,使程序開發(fā)人員面對一個簡單而統(tǒng)一的開發(fā)環(huán)境,減少程序設(shè)計的復(fù)雜性,將注意力集中在自己的業(yè)務(wù)上,不必再為程序在不同系統(tǒng)軟件上的移植而重復(fù)工作,從而大大減少了技術(shù)上的負(fù)擔(dān)。
4現(xiàn)狀分析和展望
由于網(wǎng)絡(luò)世界是開放的、可成長的和多變的,分布性、自治性、異構(gòu)性已經(jīng)成為信息系統(tǒng)的固有特征。實現(xiàn)信息系統(tǒng)的綜合集成,已經(jīng)成為國家信息化建設(shè)的普遍需求,并直接反映了整個國家信息化建設(shè)的水平,中間件通過網(wǎng)絡(luò)互連、數(shù)據(jù)集成、應(yīng)用整合、流程銜接、用戶互動等形式,已經(jīng)成為大型網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)、集成、部署、運(yùn)行與管理的關(guān)鍵支撐軟件。
隨著SOA(面向服務(wù)的體系架構(gòu))和Web service的發(fā)展。Web服務(wù)技術(shù)是一系列用于實現(xiàn)SOA的標(biāo)準(zhǔn)(或正在形成的標(biāo)準(zhǔn))的集合。目前,Web服務(wù)技術(shù)正迅速成為SOA架構(gòu)在事實上的實現(xiàn)標(biāo)準(zhǔn)[4]。由于面向用戶,提供更高彈性、更高效率及信息整合的IT環(huán)境而被業(yè)界不斷看好。但在SOA環(huán)境中,其應(yīng)用組件之間是一種松耦合的關(guān)系,要讓一個應(yīng)用軟件的組件,很容易去跟屬于不同應(yīng)用的軟件組件進(jìn)行對話,如何確保這些迥然不同,但又相互連接的系統(tǒng)的效率、可靠性、可控性和安全性,就復(fù)雜得多了,是SOA還沒有最終解決好的問題,而這些問題正好是未來中間件所要解決的問題,致使對中間件提出了更高的要求??傊虚g件的發(fā)展前景是良好的,但是面臨的挑戰(zhàn)也是巨大的。
參考文獻(xiàn)
[1]范國闖,鐘華,黃濤.Web應(yīng)用服務(wù)器研究綜述[J].軟件學(xué)報,2003.
[2]張云勇,張智江,劉錦德,等.中間件技術(shù)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[3]周園春,李淼,張建,等.中間件技術(shù)綜述[J].計算機(jī)工程與應(yīng)用,2002,15.
[4]李彬玉.面向SOA的Web服務(wù)管理中間件的研究與實現(xiàn)[D].北方工業(yè)大學(xué),2007.