王欣
(太原旅游職業(yè)學(xué)院,山西 太原 030006)
分布式計(jì)算技術(shù)發(fā)展?fàn)顩r研究
王欣
(太原旅游職業(yè)學(xué)院,山西 太原 030006)
分布式計(jì)算技術(shù)是把網(wǎng)絡(luò)上分散于各處的資源匯聚起來,利用空閑的計(jì)算容量完成各種大規(guī)模、復(fù)雜的計(jì)算和數(shù)據(jù)處理任務(wù)。文章研究總結(jié)了目前分布式計(jì)算技術(shù)的主流技術(shù)和新一代分布式計(jì)算技術(shù)的體系結(jié)構(gòu),討論分析了它們各自的優(yōu)缺點(diǎn),提出了分布式計(jì)算技術(shù)存在的問題并展望了未來。
分布式計(jì)算;中間件;Web服務(wù);網(wǎng)格
分布式計(jì)算就是在兩個(gè)或多個(gè)軟件互相共享信息,這些軟件既可以在同一臺計(jì)算機(jī)上運(yùn)行,也可以在通過網(wǎng)絡(luò)連接起來的多臺計(jì)算機(jī)上運(yùn)行。分布式計(jì)算的研究主要是分布式操作系統(tǒng)和分布式計(jì)算環(huán)境兩個(gè)方面。隨著因特網(wǎng)的廣泛應(yīng)用,分布式計(jì)算的研究從傳統(tǒng)的以分布式操作系統(tǒng)為中心轉(zhuǎn)變?yōu)橐跃W(wǎng)絡(luò)平臺為中心的實(shí)用分布式技術(shù),并取得了一定的成功。在過去的20多年間出現(xiàn)了大量的分布式計(jì)算技術(shù),如中間件技術(shù)、移動(dòng)Agent技術(shù)、P2P技術(shù)以及最近推出的Web服務(wù)技術(shù)和網(wǎng)格技術(shù)等。每一種技術(shù)都得到了一定程度的認(rèn)同,在特定的范圍內(nèi)得到了廣泛的應(yīng)用。
通信網(wǎng)絡(luò)的出現(xiàn)使得計(jì)算能力的遠(yuǎn)程使用成為可能,下面討論幾種主流的分布式計(jì)算技術(shù),并分析其各自的優(yōu)缺點(diǎn)。
(一)遠(yuǎn)程過程調(diào)用
遠(yuǎn)程過程調(diào)用 (Remote Procedure Call,RPC)(如圖1-1)是為了緩解最初的消息傳遞模型編程的瑣碎性而提出的,它支持本地機(jī)的程序通過標(biāo)準(zhǔn)過程調(diào)用機(jī)制調(diào)用遠(yuǎn)程機(jī)的過程?;舅枷胧前驯镜氐倪^程調(diào)用擴(kuò)展到分布式環(huán)境中,當(dāng)程序員使用RPC調(diào)用一個(gè)遠(yuǎn)程過程時(shí),代碼實(shí)際執(zhí)行的是一個(gè)代理函數(shù),代理過程的目的是編排輸入?yún)?shù),并把它們傳送到遠(yuǎn)程服務(wù)器。
缺點(diǎn):1)RPC是面向過程的一種方法,在應(yīng)用過程中有很大的局限性,例如系統(tǒng)管理問題、系統(tǒng)安全問題等;2)在通信過程中,遠(yuǎn)程與本地需要進(jìn)行頻繁的交互,而且調(diào)用必須是單向的;3)RPC正確執(zhí)行的前提是被調(diào)用的過程事先存在,這個(gè)要求限制了RPC在大型分布式系統(tǒng)中的應(yīng)用,很多情況下,要調(diào)用的過程在遠(yuǎn)程節(jié)點(diǎn)上并不存在。下面的遠(yuǎn)程求值可以解決這個(gè)問題。
(二)遠(yuǎn)程求值
遠(yuǎn)程求值(Remote Evaluation,REV)(如圖1-2)允許網(wǎng)絡(luò)中的節(jié)點(diǎn)向遠(yuǎn)程節(jié)點(diǎn)發(fā)送子程序和參數(shù)信息,遠(yuǎn)程節(jié)點(diǎn)啟動(dòng)該子程序,一些初始請求可由該子程序發(fā)出,中間結(jié)果由該子程序處理,而不是發(fā)回源節(jié)點(diǎn),子程序只是將最后的處理結(jié)果返回到源節(jié)點(diǎn)。
(三)客戶/服務(wù)器模式
在客戶/服務(wù)器(Client/Server,C/S)通信模式中,通信的實(shí)體雙方有固定、預(yù)先定義好的角色:服務(wù)器提供服務(wù),客戶使用服務(wù)。這種模式隱含了一種嚴(yán)格的依賴關(guān)系:客戶依賴服務(wù)器所提供的服務(wù)而工作??蛻舭l(fā)出服務(wù)請求,然后在服務(wù)器上完成任務(wù),最后服務(wù)器將處理結(jié)果返回到客戶機(jī)(如圖1-3)。引入客戶和服務(wù)器的角色,RPC模式和REV模式都是客戶/服務(wù)器模式的一種。
優(yōu)點(diǎn):1)優(yōu)化網(wǎng)絡(luò)利用率,減少了網(wǎng)絡(luò)流量;2)響應(yīng)時(shí)間較短;3)通過把應(yīng)用程序同它們處理的數(shù)據(jù)隔離,可以使數(shù)據(jù)具有獨(dú)立性。
缺點(diǎn):1)C/S模式的服務(wù)器若不能確切提供客戶方所要求的服務(wù),則客戶就必須通過一系列的遠(yuǎn)程調(diào)用來獲得它所需的服務(wù),這就導(dǎo)致了服務(wù)響應(yīng)的延遲和網(wǎng)絡(luò)帶寬的浪費(fèi);2)因?yàn)橛?jì)算環(huán)境中的處理器資源、軟件資源和信息資源等都集中在服務(wù)器上,當(dāng)客戶請求較多時(shí),服務(wù)器的效率會(huì)大大降低,客戶請求的響應(yīng)時(shí)間也會(huì)增大。
(四)移動(dòng)代碼
移動(dòng)代碼(Code-on-demand)模式使用了代碼移動(dòng)的技術(shù),即在需要遠(yuǎn)程服務(wù)時(shí),首先從遠(yuǎn)程獲得該服務(wù)的代碼[4]。
優(yōu)點(diǎn):1)解決了C/S結(jié)構(gòu)中資源過于集中的缺點(diǎn)。2)與C/S模式不同,本地機(jī)不用知道遠(yuǎn)程主機(jī)的情況,只需下載所需的代碼即可。
缺點(diǎn):可移動(dòng)代碼的遷移只是程序代碼的遷移,而并沒有攜帶程序的運(yùn)行狀態(tài)和數(shù)據(jù)等其他信息。另外,移動(dòng)代碼本身不是有名字的實(shí)體,它們相互之間不能進(jìn)行通信合作。因此,移動(dòng)代碼只適合簡單的網(wǎng)絡(luò)服務(wù)提供以及遠(yuǎn)程軟件安裝等領(lǐng)域。
(五)移動(dòng)Agent計(jì)算技術(shù)
移動(dòng)Agent技術(shù)是分布式技術(shù)和Agent技術(shù)相結(jié)合的產(chǎn)物,它結(jié)合了分布式計(jì)算技術(shù)和人工智能技術(shù),除了具有智能Agent的最基本特性:自主能力、社交能力、適應(yīng)能力和一致主動(dòng)性,還具有移動(dòng)能力、可靠性和安全性[5]。
移動(dòng)Agent計(jì)算模式與其他分布式計(jì)算模式的不同之處在于:1)自治性的優(yōu)勢。移動(dòng)Agent模式可以根據(jù)資源所在的位置自主地決定移動(dòng)的目的地,適合大規(guī)模的網(wǎng)絡(luò)系統(tǒng),有效利用了網(wǎng)絡(luò)中各主機(jī)的資源,節(jié)省網(wǎng)絡(luò)帶寬,避免大量網(wǎng)絡(luò)傳輸,克服了網(wǎng)絡(luò)延遲;2)在異構(gòu)平臺適應(yīng)性更強(qiáng)。網(wǎng)絡(luò)環(huán)境下分布式計(jì)算平臺往往是異構(gòu)的,移動(dòng)Agent通常獨(dú)立于特定的軟硬件環(huán)境,與它所在的系統(tǒng)和網(wǎng)絡(luò)傳輸層無關(guān),僅依賴于其運(yùn)行環(huán)境。其自治性和智能性使它更能動(dòng)態(tài)適應(yīng)網(wǎng)絡(luò)資源分散、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)多變、網(wǎng)絡(luò)接入帶寬不一、網(wǎng)絡(luò)性能穩(wěn)定性較差的大規(guī)模的異構(gòu)的網(wǎng)絡(luò)環(huán)境;3)健壯與容錯(cuò)。移動(dòng)Agent對網(wǎng)絡(luò)的依賴性很小,而且具備動(dòng)態(tài)反應(yīng)能力,使其易于建立健壯而容錯(cuò)的分布式系統(tǒng)。當(dāng)所工作的主機(jī)出現(xiàn)問題時(shí),它會(huì)遷移到其他主機(jī)上繼續(xù)工作;4)使用移動(dòng)Agent特有的通信協(xié)議可以將不同的通信協(xié)議進(jìn)行封裝,不再需要考慮不同系統(tǒng)間通信協(xié)議不同的通信問題;5)使用移動(dòng)Agent模式構(gòu)建分布式系統(tǒng),在設(shè)計(jì)上更加靈活。
(六)P2P技術(shù)
P2P系統(tǒng)由若干互聯(lián)協(xié)作的計(jì)算機(jī)構(gòu)成,是因特網(wǎng)上實(shí)施分布式計(jì)算的新模式。它把C/S系統(tǒng)中的角色一體化,引導(dǎo)網(wǎng)絡(luò)計(jì)算模式從集中式向分布式轉(zhuǎn)變。P2P技術(shù)已發(fā)展為一種重要的分布式計(jì)算技術(shù)。
優(yōu)點(diǎn):1)P2P模式最主要的優(yōu)點(diǎn)就是資源的高度利用率。2)P2P不同于傳統(tǒng)的C/S模式,它們能分配每一個(gè)節(jié)點(diǎn)作為客戶機(jī)或服務(wù)器。這就避免了在不對稱的C/S模式中服務(wù)器可能遇到的性能瓶頸問題。3)信息在網(wǎng)絡(luò)設(shè)備間直接流動(dòng),高速及時(shí),降低中轉(zhuǎn)服務(wù)成本。
缺點(diǎn):1)P2P不易于管理,而C/S網(wǎng)絡(luò),只需在中心點(diǎn)進(jìn)行管理。2)P2P網(wǎng)絡(luò)中數(shù)據(jù)的安全性難于保證。安全策略、備份策略等方面的實(shí)現(xiàn)復(fù)雜。3)對等點(diǎn)可以隨意地加入或退出網(wǎng)絡(luò),造成網(wǎng)絡(luò)帶寬和信息存在的不穩(wěn)定。
web服務(wù)和網(wǎng)格計(jì)算是在因特網(wǎng)上進(jìn)行大規(guī)模分布式計(jì)算的兩大關(guān)鍵技術(shù),它們主要是專注于解決分布式計(jì)算的系統(tǒng)管理和資源共享問題,web服務(wù)和網(wǎng)格計(jì)算的出現(xiàn),無論是在理念上,還是在技術(shù)上都取得了巨大的進(jìn)步。
(一)Web服務(wù)
Web服務(wù)(Web Service)技術(shù)是對Web進(jìn)行擴(kuò)展,為相互間連接的軟件提供服務(wù)。Web服務(wù)是一種構(gòu)建在簡單對象訪問協(xié)議之上的分布式應(yīng)用程序,其實(shí)質(zhì)是由XML通過HTTP協(xié)議來調(diào)度的遠(yuǎn)過程調(diào)用[6]。
Web服務(wù)技術(shù)是新一代的分布式計(jì)算和處理技術(shù),它具有如下諸多優(yōu)點(diǎn),可以說是新一代的真正動(dòng)態(tài)的分布式系統(tǒng)。
優(yōu)點(diǎn):1)Web服務(wù)在因特網(wǎng)上的高度的擴(kuò)展性;2)Web服務(wù)技術(shù)是跨平臺的,聯(lián)接非常松散,采用的是性能穩(wěn)定的、基于消息的異步技術(shù),在改變?nèi)魏我欢私涌诘那闆r下,應(yīng)用程序仍可以不受影響地工作。3)完全的平臺、語言的獨(dú)立性。Web服務(wù)進(jìn)行了更高程度的抽象,只要遵守Web服務(wù)的接口即可進(jìn)行服務(wù)的請求和調(diào)用。
當(dāng)然,Web服務(wù)也存在缺點(diǎn),在有些情況下,它會(huì)降低應(yīng)用程序的性能。
(二)網(wǎng)格計(jì)算
網(wǎng)格計(jì)算通過因特網(wǎng)把分散在各處的硬件、軟件、信息資源連結(jié)成為一個(gè)巨大的整體,從而使得人們能夠利用地理上分散于各處的資源,完成各種大規(guī)模的、復(fù)雜的計(jì)算和數(shù)據(jù)處理的任務(wù)[7]。
目前比較重要的網(wǎng)格體系結(jié)構(gòu)有兩個(gè):一個(gè)是以GLobus項(xiàng)目為代表的五層沙漏結(jié)構(gòu),它是一個(gè)以協(xié)議為中心的框架;另一個(gè)是與Web服務(wù)相融合的開放網(wǎng)格服務(wù)結(jié)構(gòu)OGSA,它與Web服務(wù)一樣都是以服務(wù)為中心。
網(wǎng)格的體系結(jié)構(gòu)包括:資源層、中間件層和應(yīng)用層。1)資源層:構(gòu)成網(wǎng)格系統(tǒng)的硬件基礎(chǔ)。它包括因特網(wǎng)上的各種計(jì)算資源,這些資源通過網(wǎng)絡(luò)設(shè)備連接起來。網(wǎng)格資源層僅僅實(shí)現(xiàn)了計(jì)算資源在物理上的連通。2)中間件層:一系列工具和協(xié)議軟件。其功能是屏蔽資源層中計(jì)算資源的分布、異構(gòu)特性,向網(wǎng)格應(yīng)用層提供透明、一致的使用接口。網(wǎng)格中間件層也稱為網(wǎng)格操作系統(tǒng),它同時(shí)需要提供用戶編程接口和相應(yīng)的環(huán)境,以支持網(wǎng)格應(yīng)用的開發(fā)。3)網(wǎng)格應(yīng)用層:用戶需求的具體體現(xiàn)。在網(wǎng)格操作系統(tǒng)的支持下,提供系統(tǒng)能接受的語言、Web服務(wù)接口、二次開發(fā)環(huán)境和工具,并可配置支持工程應(yīng)用、數(shù)據(jù)庫訪問的軟件等。
網(wǎng)格計(jì)算應(yīng)用于分布式面臨一些問題:互連網(wǎng)的數(shù)據(jù)傳輸能力不足的問題;人機(jī)通信的問題;網(wǎng)格計(jì)算的安全性。
網(wǎng)格計(jì)算、web服務(wù)等技術(shù)在異構(gòu)平臺上構(gòu)筑了一層通用的、與平臺無關(guān)的信息和服務(wù)交換設(shè)施,從而屏蔽了因特網(wǎng)中千差萬別的差異,使信息和服務(wù)暢通無阻地在計(jì)算機(jī)之間流動(dòng)。因此說,網(wǎng)格系統(tǒng)、Web服務(wù)是新一代的、真正動(dòng)態(tài)的分布式系統(tǒng)。
1)到目前為止,幾乎所有的分布式計(jì)算技術(shù)都沒有完整的統(tǒng)一的標(biāo)準(zhǔn)。標(biāo)準(zhǔn)的缺乏使得分布式計(jì)算技術(shù)研究分散,很難形成穩(wěn)定的研究方向,更難以開發(fā)出得到廣泛接受的產(chǎn)品。不過,統(tǒng)一標(biāo)準(zhǔn)的工作研究已經(jīng)展開。
2)軟件方法學(xué)是軟件能夠進(jìn)行工業(yè)化生產(chǎn)的前提,分布式計(jì)算系統(tǒng)沒有相關(guān)的軟件方法。缺乏可行的軟件方法學(xué)使得分布式計(jì)算的軟件質(zhì)量、開發(fā)進(jìn)度等很難得到保證,普及則更困難。
3)分布式計(jì)算系統(tǒng)沒有統(tǒng)一的控制手段,它的質(zhì)量和可用性難以保證。在沒有滿意的服務(wù)質(zhì)量和可用性保證之前,這項(xiàng)技術(shù)很難被接受。
4)網(wǎng)絡(luò)是一個(gè)異構(gòu)的環(huán)境,分布式計(jì)算技術(shù)需要解決異構(gòu)環(huán)境的互操作問題。解決異構(gòu)環(huán)境的互操作問題,重要的是如何互相區(qū)別?,F(xiàn)有資源不可能以同一種方式描述,又沒有自動(dòng)識別資源的方法,所以分布式計(jì)算技術(shù)的使用具有范圍性。
自從出現(xiàn)了分布式技術(shù)之后,分布式計(jì)算技術(shù)的發(fā)展就沒有停止過。目前已進(jìn)行了大量的研究,并產(chǎn)生了諸如中間件、移動(dòng)Agent、P2P、Web服務(wù)和網(wǎng)格等技術(shù),但離真正完善還有很大的距離。分布式計(jì)算技術(shù)是計(jì)算機(jī)網(wǎng)絡(luò)的產(chǎn)物,也是計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用未來的發(fā)展方向,有機(jī)地綜合已有的技術(shù),吸取所有技術(shù)的優(yōu)點(diǎn),合理地解決分布式計(jì)算的需求,是分布式計(jì)算技術(shù)研究的方向。
[1]李文軍.分布式對象技術(shù)[M].北京:機(jī)械工業(yè)出版社,2006.
[2]申晉祥.BP神經(jīng)網(wǎng)絡(luò)在無損檢測中的應(yīng)用[J].山西大同大學(xué)學(xué)報(bào),2009,(2):16-17.
[3]黃承忠,郭中.基于移動(dòng)代理技術(shù)的分布并行計(jì)算環(huán)境[J].計(jì)算機(jī)工程,2005,(4):99-100.
[4]鄒明亮,程小輝,劉亞榮.嵌入式移動(dòng)數(shù)據(jù)庫中的移動(dòng)Agent問題探討[J].微計(jì)算機(jī)信息,2006,(12):61-62.
[5]楊濤,劉錦德.Web Services技術(shù)綜述——一種面向服務(wù)的分布式計(jì)算模式[J].計(jì)算機(jī)應(yīng)用,2004,(8):1-4.
[6]都志輝,陳渝,劉鵬,等.網(wǎng)格計(jì)算[M].北京:清華大學(xué)出版社,2002.
TP
A
1673-0046(2011)06-0187-02