- 相關(guān)推薦
中間件技術(shù)研究
摘要:中間件技術(shù)屏蔽了底層分布式環(huán)境的復(fù)雜性和異構(gòu)性,簡(jiǎn)化了分布式應(yīng)用程序的開(kāi)發(fā),使分布式應(yīng)用程序的健壯性、可擴(kuò)展性、可用性更好。本文介紹了中間件的定義、分類、主流中間件技術(shù)平臺(tái),分析了中間件技術(shù)面臨的挑戰(zhàn),提出了中間件技術(shù)研究的幾個(gè)發(fā)展趨勢(shì),即網(wǎng)格技術(shù)、面向移動(dòng)計(jì)算、面向服務(wù)質(zhì)量等。計(jì)算機(jī)系統(tǒng)最初階段多是單機(jī)系統(tǒng),多個(gè)用戶是通過(guò)聯(lián)機(jī)終端來(lái)訪問(wèn)。隨著網(wǎng)絡(luò)的出現(xiàn),產(chǎn)生了客戶/服務(wù)器的計(jì)算服務(wù)模式,多個(gè)客戶端可以共享數(shù)據(jù)庫(kù)服務(wù)器和打印服務(wù)器等。隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,許多軟件需要在不同廠家的硬件平臺(tái)、網(wǎng)絡(luò)協(xié)議異構(gòu)環(huán)境下運(yùn)行,應(yīng)用的規(guī)模從局域網(wǎng)發(fā)展到廣域網(wǎng),應(yīng)用范圍面向三層和多層體系結(jié)構(gòu)的分布式環(huán)境,在分布式環(huán)境中,無(wú)論是硬件平臺(tái)還是軟件平臺(tái)都不可能做到統(tǒng)一,而大規(guī)模的應(yīng)用軟件通常要求在軟硬件各不相同的分布式網(wǎng)絡(luò)上運(yùn)行。中間件產(chǎn)生以前,應(yīng)用軟件直接使用操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議和數(shù)據(jù)庫(kù)等開(kāi)發(fā),開(kāi)發(fā)者不得不直接面對(duì)許多復(fù)雜棘手的問(wèn)題,如操作系統(tǒng)的多樣性、繁雜的網(wǎng)絡(luò)程序設(shè)計(jì)和管理、復(fù)雜多變的網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)分散處理帶來(lái)的不一致性問(wèn)題等等,這些與用戶的業(yè)務(wù)沒(méi)有直接關(guān)系,但又必須解決,耗費(fèi)了大量的時(shí)間和精力,因此開(kāi)發(fā)者迫切需要一種基于標(biāo)準(zhǔn)的、獨(dú)立于計(jì)算機(jī)硬件以及操作系統(tǒng)的開(kāi)發(fā)和運(yùn)行環(huán)境,于是,中間件技術(shù)應(yīng)運(yùn)而生。
1 中間件的概念
在眾多關(guān)于中間件的定義中,比較普遍接受的是IDC表述:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源;中間件位于客戶機(jī)/服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。IDC對(duì)中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件是介于操作系統(tǒng)(包括底層通信協(xié)議)和各種分布式應(yīng)用程序之間的一個(gè)軟件層?偟淖饔檬墙⒎植际杰浖K之間互操作的機(jī)制,屏蔽底層分布式環(huán)境的復(fù)雜性和異構(gòu)性,為處于自己上層的應(yīng)用軟件提供運(yùn)行與開(kāi)發(fā)環(huán)境,幫助用戶靈活、高效地開(kāi)發(fā)和集成復(fù)雜的應(yīng)用軟件。在具體實(shí)現(xiàn)上,中間件是一個(gè)用應(yīng)用程序接口定義的分布式軟件管理框架,具有強(qiáng)大的通信能力和良好的可擴(kuò)展性。中間件在分布式系統(tǒng)中的位置如圖1所示。
2 中間件的分類
隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,中間件技術(shù)也已日漸成熟,并且出現(xiàn)了不同層次、不同類型的中間件產(chǎn)品。按照IDC分類方法,中間件可分為以下6類:
2.1 終端仿真/屏幕轉(zhuǎn)換
用以實(shí)現(xiàn)客戶機(jī)圖形用戶接口與已有的字符接口方式的服務(wù)器應(yīng)用程序之間的互操作。
2.2 數(shù)據(jù)訪問(wèn)中間件
適用于應(yīng)用程序與數(shù)據(jù)源之間的互操作模型,客戶端使用面向數(shù)據(jù)庫(kù)的API,以提請(qǐng)直接訪問(wèn)和更新基于服務(wù)器的數(shù)據(jù)源,數(shù)據(jù)源可以是關(guān)系型、非關(guān)系型和對(duì)象型。這類中間件大都基于SQL語(yǔ)句,采用同步通訊方式。此類中間件使應(yīng)用開(kāi)發(fā)簡(jiǎn)單化,但如果透過(guò)廣域網(wǎng)使用,則會(huì)帶來(lái)嚴(yán)重的效率問(wèn)題,因?yàn)樵诘退倬W(wǎng)上來(lái)回交互SQL語(yǔ)句會(huì)使通訊流量過(guò)大,同時(shí)對(duì)數(shù)據(jù)壓縮、加密帶來(lái)不便。
2.3 遠(yuǎn)程過(guò)程調(diào)用中間件
RPC機(jī)制是早期開(kāi)發(fā)分布式應(yīng)用時(shí)經(jīng)常采用的一種同步式的請(qǐng)求應(yīng)答協(xié)議。通過(guò)這種協(xié)議,程序員編寫客戶方的應(yīng)用,需要時(shí)可以調(diào)用位于遠(yuǎn)端服務(wù)器上的過(guò)程。RPC擴(kuò)展了過(guò)程語(yǔ)言中的“功能調(diào)用/結(jié)果返回”的機(jī)制,使得它可以適用于一個(gè)遠(yuǎn)程環(huán)境。由于RPC機(jī)制是同步方式,因而在工作的時(shí)候,要求客戶方和服務(wù)方均能正確工作才能很好地運(yùn)行,有一方不能工作將導(dǎo)致RPC失敗。在網(wǎng)絡(luò)故障、機(jī)器故障存在的情況下,這一要求是很難保證的。另外,由于大多數(shù)RPC機(jī)制很難建立點(diǎn)到點(diǎn)的關(guān)系,因而也很難用在面向?qū)ο蟮木幊坍?dāng)中。
2.4 消息中間件
越來(lái)越多的分布式應(yīng)用采用消息中間件來(lái)構(gòu)建,通過(guò)消息中間件把應(yīng)用擴(kuò)展到不同的操作系統(tǒng)和不同的網(wǎng)絡(luò)環(huán)境;谙⒌臋C(jī)制更多地適用于事件驅(qū)動(dòng)的應(yīng)用,當(dāng)一個(gè)事件發(fā)生時(shí),消息中間件通知服務(wù)方應(yīng)該進(jìn)行何種操作。其核心安裝在需要進(jìn)行消息傳遞的系統(tǒng)上,在它們之間建立邏輯通道,由消息中間件實(shí)現(xiàn)消息發(fā)送。消息中間件可以支持同步方式和異步方式,實(shí)際上是一種點(diǎn)到點(diǎn)的機(jī)制,因而可以很好的適用于面向?qū)ο蟮木幊谭绞健V虚g件領(lǐng)域目前最熱門的技術(shù)是異步的消息中間件,異步中間件技術(shù)比同步中間件技術(shù)具有更強(qiáng)的容錯(cuò)性,在系統(tǒng)故障時(shí)可以保證消息的正常傳輸。
2.5 交易中間件
是專門針對(duì)聯(lián)機(jī)交易處理系統(tǒng)而設(shè)計(jì)的,如銀行業(yè)務(wù)系統(tǒng)、定票系統(tǒng)等。聯(lián)機(jī)交易處理系統(tǒng)需要處理大量并發(fā)進(jìn)程,處理并發(fā)涉及到操作系統(tǒng)、文件系統(tǒng)、編程語(yǔ)言、數(shù)據(jù)通訊、數(shù)據(jù)庫(kù)系統(tǒng)、系統(tǒng)管理、應(yīng)用軟件,交易中間件就是一組程序模塊,用以減少開(kāi)發(fā)一個(gè)聯(lián)機(jī)交易處理系統(tǒng)所需的編程量。
2.6 對(duì)象中間件
傳統(tǒng)的面向?qū)ο蠹夹g(shù)通過(guò)封裝、繼承及多態(tài)提供了良好的代碼重用功能,但是這些對(duì)象只存在一個(gè)程序中,外面的世界并不知道它們的存在,也無(wú)法訪問(wèn)它們。面向?qū)ο蟮闹虚g件就是要解決這些問(wèn)題,面向?qū)ο蟮闹虚g件提供一個(gè)標(biāo)準(zhǔn)的構(gòu)件框架,能使不同廠家的軟件通過(guò)不同的地址空間、網(wǎng)絡(luò)和操作系統(tǒng)交互訪問(wèn)。該構(gòu)件的具體實(shí)現(xiàn)、位置及所依附的操作系統(tǒng)對(duì)客戶來(lái)說(shuō)都是透明的。
3 主流中間件技術(shù)平臺(tái)
考察當(dāng)前主流的分布計(jì)算技術(shù)平臺(tái),主要有OMG的CORBA,Sun的J2EE和Microsoft DNA 20000,它們都是支持服務(wù)器端中間件技術(shù)開(kāi)發(fā)的平臺(tái),但都有其各自特點(diǎn),將分別闡述如下:
3.1 OMG的CORBA
公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA,Common Ob—ject Request Broker Architecture)是對(duì)象管理組織(OMG)基于眾多開(kāi)放系統(tǒng)平臺(tái)廠商提交的分布對(duì)象互操作內(nèi)容基礎(chǔ)上制定的分布式應(yīng)用程序框架的規(guī)范。
CORBA是由絕大多數(shù)分布計(jì)算平臺(tái)廠商所支持和遵循的系統(tǒng)規(guī)范,具有模型完整、先進(jìn),獨(dú)立于系統(tǒng)平臺(tái)和開(kāi)發(fā)語(yǔ)言,被支持程度廣泛的特點(diǎn),已逐漸成為分布計(jì)算技術(shù)的標(biāo)準(zhǔn)。COBRA標(biāo)準(zhǔn)主要分為3個(gè)層次:對(duì)象請(qǐng)求代理、公共對(duì)象服務(wù)和公共設(shè)施。最底層是對(duì)象請(qǐng)求代理(ORB,Object Request Broker),規(guī)定了分布對(duì)象的定義(接口)和語(yǔ)言映射,實(shí)現(xiàn)對(duì)象間的通訊和互操作,是分布對(duì)象系統(tǒng)中的“軟總線”;在ORB之上定義了很多公共服務(wù),可以提供諸如并發(fā)服
【中間件技術(shù)研究】相關(guān)文章:
OFDM技術(shù)研究及其系統(tǒng)仿真05-11
生態(tài)豬養(yǎng)殖前景及技術(shù)研究06-14
插齒刀制造技術(shù)研究05-06
水利工程凍害防治技術(shù)研究05-31
通信工程中傳輸技術(shù)研究05-14
基于軍網(wǎng)的雷達(dá)遠(yuǎn)程診斷技術(shù)研究08-10