1 概述
不同的人對于分布式計算的理解是不同的,我們可以用不同的方式定義分布式計算的具體含義。其中一種較為普遍的定義就是,分布式計算就是利用網(wǎng)絡(luò)把成千上萬臺計算機連接起來,組成一臺虛擬的超級計算機,并利用它們的空閑時間和存儲空間來完成單臺計算機無法完成的超大規(guī)模計算事務(wù)的求解。分布式計算的最早形態(tài)出現(xiàn)在80年代末的Intel公司。隨著Internet的迅速發(fā)展和普及,分布式計算的研究在90年代后達到了高潮。Internet技術(shù)實現(xiàn)了計算機硬件的連通,Web則實現(xiàn)了網(wǎng)頁的連通,而分布式計算技術(shù)的目標(biāo)就是實現(xiàn)Internet上所有資源的全面連通。它要把整個Internet整合成一臺巨大的超級計算機,實現(xiàn)計算資源、通信資源、軟件資源、信息資源、知識資源的全面共享,為現(xiàn)代信息技術(shù)開創(chuàng)一個新的紀(jì)元。
分布式計算研究主要集中在分布式操作系統(tǒng)和分布式計算環(huán)境研究兩個方面。但隨著Internet技術(shù)的飛速發(fā)展, 分布式計算的研究熱點也從以分布式操作系統(tǒng)為中心的傳統(tǒng)模式轉(zhuǎn)換到以網(wǎng)絡(luò)計算平臺為中心的實用分布式技術(shù), 并取得了較大的成功。此外,在過去的20 多年間也涌現(xiàn)出了大量的分布式計算技術(shù),如中間件技術(shù)、網(wǎng)格技術(shù)、移動Agent技術(shù)、P2P技術(shù)以及最近推出的Web Service技術(shù),它們在特定的范圍內(nèi)都得到了廣泛的應(yīng)用。但是,現(xiàn)有的分布式計算技術(shù)都存在著一些沒有解決的問題,從而也影響了分布式計算技術(shù)的使用和普及。本文力爭通過介紹分布式計算技術(shù)的工作原理,以及對幾種典型的分布式計算技術(shù)的分析和比較,來發(fā)現(xiàn)它們共同面臨的一些問題。除此之外,還簡要介紹了一下存儲整合對解決分布式計算中出現(xiàn)的一些問題所起到的作用。最后對分布式計算技術(shù)的發(fā)展方向進行了探討。
下面就讓我們來看一下分布式計算技術(shù)的工作原理。
2 分布式計算技術(shù)的工作原理
要想實現(xiàn)分布式計算,首先就要滿足三方面的條件:
第一、計算機之間需要能彼此通信;
第二、需要有實施的“交通”規(guī)則(例如,決定誰第一個通過,第二個做什么,如果某事件失敗會發(fā)生什么情況等);
第三、計算機之間需要能夠彼此尋找。
只有滿足了這三點,分布式計算才有可能實現(xiàn)。
目前,一個分布式網(wǎng)絡(luò)體系結(jié)構(gòu)包括了安裝了超輕量軟件代理客戶端系統(tǒng),以及一臺或多臺專用分布計算管理服務(wù)器。此外,還會不斷有新的客戶端申請加入分布式計算的行列。當(dāng)代理程序探測到客戶端的CPU處于空閑時,就會通知管理服務(wù)器此客戶端可以加入運算行列,然后就會請求發(fā)送應(yīng)用程序包??蛻舳私邮盏椒?wù)器發(fā)送的應(yīng)用程序包之后,就會在機器的空閑時間里運行該程序,并且將結(jié)果返回給管理服務(wù)器。應(yīng)用程序會以屏保程序,或者直接在后臺運行的方式執(zhí)行,不會影響用戶的正常操作。當(dāng)客戶端需要運行本地應(yīng)用程序的時候,CPU的控制權(quán)會立即返回給本地用戶,而分布式計算的應(yīng)用程序也會中止運行。
3 幾種分布式計算技術(shù) 3.1 中間件技術(shù)
中間件是基礎(chǔ)軟件,是分布式系統(tǒng)中介于應(yīng)用層和網(wǎng)絡(luò)層的一個功能層次,它能夠屏蔽操作系統(tǒng)(或網(wǎng)絡(luò)協(xié)議)的差異,實現(xiàn)分布式異構(gòu)系統(tǒng)之間的互操作。分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶機服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。它擴展了C/S結(jié)構(gòu),形成了一個包括客戶端、中間件和服務(wù)器的多層結(jié)構(gòu)?;谥虚g件分布式系統(tǒng)的體系結(jié)構(gòu)如圖1所示。
基于中間件的分布式計算技術(shù)以中間件為橋梁,通過把數(shù)據(jù)轉(zhuǎn)移到計算之處的計算方式,把網(wǎng)絡(luò)系統(tǒng)的所有組件集成為一個連貫的可操作的異構(gòu)系統(tǒng),從而達到網(wǎng)絡(luò)“透明”的目的。
早期的中間件比較簡單,僅具有消息通訊和事務(wù)管理功能。但隨著需求的多樣化,也產(chǎn)生了許多不同類別的中間件產(chǎn)品,如:消息中間件(MOM :Message-Oriented Middleware)、數(shù)據(jù)庫中間件(Database Middleware)、遠(yuǎn)程過程調(diào)用中間件(RPC :Remote Process Call)、對象請求代理中間件(ORB :Object Request Broker)和事務(wù)處理中間件(TP Monitor:Transaction Process Monitor)。
圖1 中間件技術(shù)
3.2 網(wǎng)格技術(shù)
網(wǎng)格計算是通過Internet把分散在各處的硬件、軟件、信息資源連結(jié)成為一個巨大的整體,從而使得人們能夠利用地理上分散于各處的資源,完成各種大規(guī)模的、復(fù)雜的計算和數(shù)據(jù)處理的任務(wù)。網(wǎng)格計算建立的是一種新型的Internet基礎(chǔ)支撐結(jié)構(gòu),目標(biāo)是將與Internet互聯(lián)的計算機設(shè)施社會化。網(wǎng)格計算的發(fā)展非常迅速,數(shù)據(jù)網(wǎng)格、服務(wù)網(wǎng)格、計算網(wǎng)格等各種網(wǎng)格系統(tǒng)在全球范圍內(nèi)得到廣泛的研究和實施。網(wǎng)格計算無疑是分布式計算技術(shù)通向計算時代的一個非常重要的里程碑。
網(wǎng)格的體系結(jié)構(gòu)是有效進行網(wǎng)格計算的重要基礎(chǔ),到目前為止比較重要的網(wǎng)格體系結(jié)構(gòu)有兩個: 一個是以Globus項目為代表的五層沙漏結(jié)構(gòu),它是一個以協(xié)議為中心的框架;另一個是與Web服務(wù)相融合的開放網(wǎng)格服務(wù)結(jié)構(gòu)OGSA(Open Grid Services Architecture),它與Web 服務(wù)一樣都是以服務(wù)為中心。但是,所有的網(wǎng)格系統(tǒng)都有這樣一個基本的、公共的體系結(jié)構(gòu):資源層、中間件層和應(yīng)用層。
(1)網(wǎng)格資源層:它是構(gòu)成網(wǎng)格系統(tǒng)的硬件基礎(chǔ)。包括Internet各種計算資源,這些計算資源通過網(wǎng)絡(luò)設(shè)備連接起來。
(2)網(wǎng)格中間件層:它是一系列工具和協(xié)議軟件。其功能是屏蔽資源層中計算資源的分布、異構(gòu)特性,向網(wǎng)格應(yīng)用層提供透明、一致的使用接口。
(3)網(wǎng)格應(yīng)用層:它是用戶需求的具體體現(xiàn)。在網(wǎng)格操作系統(tǒng)的支持下,提供系統(tǒng)能接受的語言、Web 服務(wù)接口、二次開發(fā)環(huán)境和工具,并可配置支持工程應(yīng)用、數(shù)據(jù)庫訪問的軟件等。
3.3 移動Agent技術(shù)
目前還沒有一個關(guān)于移動Agent的確切定義,我們一般認(rèn)為移動Agent是一類能在自己控制之下從一臺計算機移動到另一臺計算機的自治程序,它們能為分布式應(yīng)用提供方便的、高效的執(zhí)行框架。
移動Agent是一類特殊的軟件Agent,可以看成是軟件Agent技術(shù)與分布式計算技術(shù)相結(jié)合的產(chǎn)物,它除了具有軟件Agent的基本特性——自治性、響應(yīng)性、主動性和推理性外,還具有移動性,即它可以在網(wǎng)絡(luò)上從一臺主機自主地移動到另一臺主機,代表用戶完成指定的任務(wù)。由于移動Agent可以在異構(gòu)的軟、硬件網(wǎng)絡(luò)環(huán)境中自由移動,因此這種新的計算模式能有效地降低分布式計算中的網(wǎng)絡(luò)負(fù)載、提高通信效率、動態(tài)適應(yīng)變化的網(wǎng)絡(luò)環(huán)境,并具有很好的安全性和容錯能力。但目前,所有的移動Agent系統(tǒng)還都很不成熟,存在著各種各樣的缺陷。所以,我們可以把目前的眾多Agent系統(tǒng)看成是實驗室系統(tǒng),它們離真正實用的產(chǎn)品還有很大的距離。
3.4 P2P技術(shù)
P2P 系統(tǒng)由若干互聯(lián)協(xié)作的計算機構(gòu)成,是Internet上實施分布式計算的新模式。它把C/S與B/S系統(tǒng)中的角色一體化,引導(dǎo)網(wǎng)絡(luò)計算模式從集中式向分布式偏移,也就是說網(wǎng)絡(luò)應(yīng)用的核心從中央服務(wù)器向網(wǎng)絡(luò)邊緣的終端設(shè)備擴散,通過服務(wù)器與服務(wù)器、服務(wù)器與PC機、PC機與PC機、PC機與WAP手機等兩者之間的直接交換而達成計算機資源與信息共享。
此外一個P2P系統(tǒng)至少應(yīng)具有如下特征之一:第一、系統(tǒng)依存于邊緣化(非中央式服務(wù)器)設(shè)備的主動協(xié)作,每個成員直接從其他成員而不是從服務(wù)器的參與中受益;第二、系統(tǒng)中成員同時扮演服務(wù)器與客戶端的角色;第三、系統(tǒng)應(yīng)用的用戶能夠意識到彼此的存在,構(gòu)成一個虛擬或?qū)嶋H的群體。P2P技術(shù)已發(fā)展為一種重要的分布式計算技術(shù),典型代表就是Napster。
3.5 Web Service技術(shù)
Web Service技術(shù)是對Web進行擴展,為相互間連接的軟件提供服務(wù)。Web Service技術(shù)是一種分布式應(yīng)用程序,它可以通過編程并使用標(biāo)準(zhǔn)的Internet協(xié)議,像HTTP和XML ,將功能展示在互聯(lián)網(wǎng)和企業(yè)網(wǎng)內(nèi)部。Web Service結(jié)合了以組
-
件為基礎(chǔ)的開發(fā)模式以及Web的出色性能,一方面,Web Service和組件一樣,具有黑匣子的功能,可以在不關(guān)心功能如何實現(xiàn)的情況下重用;同時,與傳統(tǒng)的組件技術(shù)不同,Web Service可以把不同平臺開發(fā)的不同類型的功能塊集成在一起,提供相互之間的互操作。
我們也可以認(rèn)為Web Service技術(shù)是以Internet為載體,通過將緊密連接的、高效的n層計算技術(shù)與面向消息、松散聯(lián)接的Web概念相結(jié)合來實現(xiàn)的。Web服務(wù)是一種構(gòu)建在簡單對象訪問協(xié)議(SOAP)之上的分布式應(yīng)用程序,其實質(zhì)是由XML通過HTTP 協(xié)議來調(diào)度的遠(yuǎn)過程調(diào)用。實現(xiàn)Web服務(wù)的體系結(jié)構(gòu)如圖2所示。
圖2 Web Service技術(shù)
我們說Web Service技術(shù)是新一代的分布式計算和處理技術(shù),主要是因為它在Internet 上表現(xiàn)出來的高度擴展性。原有的中間件平臺技術(shù)都是基于C/S體系結(jié)構(gòu),這要求兩端必須是同質(zhì)的而且是緊密聯(lián)接的基礎(chǔ)體系,如果任何一端接口發(fā)生變化,另一端的程序必然會中斷。這種模型擴展性是較差的,特別是無法擴展到Internet ,這是受限于計算機操作系統(tǒng)、對象模型和編程語言的差異性;而Web Service技術(shù)是跨平臺的,聯(lián)接非常松散,采用的是性能穩(wěn)定的、基于消息的異步技術(shù),在改變?nèi)魏我欢私涌诘那闆r下,應(yīng)用程序仍可以不受影響地工作。它為集成分布式應(yīng)用中的中間件及其它組件提供了一個公共的框架,無須再考慮每一個組件的具體實現(xiàn)方式。
3.6 幾種技術(shù)的比較
Web Service技術(shù)的體系結(jié)構(gòu)與基于中間件分布式系統(tǒng)的體系結(jié)構(gòu)相比,發(fā)現(xiàn)它們是非常相似的,可以把體系結(jié)構(gòu)中的Web程序看作中間件。從結(jié)構(gòu)上來看,Web服務(wù)只是從側(cè)面對中間件平臺技術(shù)進行革新,雖然所有服務(wù)之間的通信都以XML格式的消息為基礎(chǔ),但調(diào)用服務(wù)的基本途徑主要還是RPC,而且具體實現(xiàn)并沒有提供一種全新的編程模式。
網(wǎng)格技術(shù)與基于中間件的分布式計算技術(shù)相比較,它依然以“中間件”為技術(shù)核心,在實現(xiàn)形式上并沒有太大的改變。然而經(jīng)過一系列的技術(shù)革新,網(wǎng)格系統(tǒng)中的技術(shù)內(nèi)涵已經(jīng)發(fā)生了深刻的變化。其一,基于中間件的分布式計算技術(shù)的資源主要是指數(shù)據(jù)和軟件,而網(wǎng)格計算的資源已經(jīng)延伸到所有用于共享的實體,包括硬件、軟件,甚至分布式文件系統(tǒng)、緩沖池等;其二,在Internet上,網(wǎng)格中間件層提供了與Web服務(wù)一樣優(yōu)秀的擴展功能,打破了傳統(tǒng)分布式技術(shù)C/S模式的局限。
網(wǎng)格計算、Web Service等技術(shù)在異構(gòu)平臺上構(gòu)筑了一層通用的、與平臺無關(guān)的信息和服務(wù)交換設(shè)施,從而屏蔽了Internet中千差萬別的差異,使信息和服務(wù)暢通無阻地在計算機之間流動。網(wǎng)格計算與Web Service技術(shù)的共同載體是Internet。但兩者的不同之處在于,網(wǎng)格系統(tǒng)連接物理上分散的硬件資源,形成虛擬計算組織,從而使計算資源得到充分共享。而Web服務(wù)則是以商務(wù)應(yīng)用為背景,是基于網(wǎng)格系統(tǒng)之上的。網(wǎng)格系統(tǒng)為Web服務(wù)提供一個與硬件無關(guān)的虛擬計算機;而Web服務(wù)是架構(gòu)在虛擬計算機平臺上,與環(huán)境、語言無關(guān)的應(yīng)用集成平臺。
盡管各種分布式計算技術(shù)在理念、規(guī)范和實現(xiàn)等方面有較大的差異,但它們之間并不矛盾,而是一種承上啟下的關(guān)系,有時甚至是融合的。因此,各種分布式計算技術(shù)可以共同存在, 它們的相互結(jié)合也是非常有意義和現(xiàn)實的。
4 存儲整合
因為分布式計算模式的核心常常是每個部門選擇各自不同的電腦系統(tǒng),這樣就會造成由于數(shù)據(jù)格式的不統(tǒng)一所導(dǎo)致的管理困難,其次管理分布式計算中所用的大量存儲設(shè)備所需的費用也是一筆龐大的開支。這些都有悖于分布式計算技術(shù)的初衷。所以,存儲整合對分布式計算技術(shù)的發(fā)展起著不可低估的作用。
存儲整合是指多個異構(gòu)型主機共享集中式存儲。針對不同的環(huán)境和要求,有許多不同的整合方法,但主要有以下三種形式:
(1)從存儲在多個服務(wù)器上轉(zhuǎn)變?yōu)榇鎯υ趩蝹€服務(wù)器上。此模式可以降低管理工作的復(fù)雜性和對數(shù)據(jù)中心占地面積的要求;
(2)直接將多個異構(gòu)型服務(wù)器附加到一個存儲設(shè)備上。此模式極大降低了存儲成本,同時也可以簡化管理;
(3)整合到存儲局域網(wǎng)上(SAN)。此模式既有利于提高工作效率,降低管理工作的復(fù)雜性,同時還可以提高可擴展性,可用性和數(shù)據(jù)可訪問性。
所以,在分布式計算技術(shù)越來越得到廣泛應(yīng)用的今天,存儲整合技術(shù)也顯示出它重要的地位。
5 共同存在的問題
通過上面對幾種技術(shù)的分析和比較,我們不難發(fā)現(xiàn)它們均存在著一些共同的問題。
(1)標(biāo)準(zhǔn)問題
目前,幾乎所有的分布式計算技術(shù)都沒有完整的統(tǒng)一的標(biāo)準(zhǔn),雖然已開始這方面的工作,標(biāo)準(zhǔn)的缺乏使得分布式計算技術(shù)研究分散,很難形成穩(wěn)定的研究方向,從而在很大程度上制約了分布式計算技術(shù)的發(fā)展。
(2)軟件方法問題
軟件方法學(xué)是軟件能夠進行工業(yè)化生產(chǎn)的前提。但缺乏可行的軟件方法學(xué)使得分布式計算軟件的質(zhì)量、開發(fā)進度等很難得到保證,沒有工業(yè)化生產(chǎn)方式,分布式計算系統(tǒng)的普及將十分困難。
(3)異構(gòu)問題
現(xiàn)在的網(wǎng)絡(luò)是一個異構(gòu)的環(huán)境,分布式計算技術(shù)首先需要解決異構(gòu)環(huán)境的互操作問題。而要解決異構(gòu)環(huán)境的互操作問題,首要的任務(wù)是如何互相識別。目前,既不可能要求所有的資源用同一種方式描述,又沒有方法可智能地識別這些資源,這就導(dǎo)致任何一種分布式計算技術(shù)只能在一定的范圍內(nèi)使用。
(4)安全性問題
分布式計算技術(shù)面臨的最大挑戰(zhàn)就是不斷增長的網(wǎng)絡(luò)規(guī)模,整個平臺的安全性方面的問題就會極為嚴(yán)重。
6 展望
隨著Internet上的硬件、軟件、數(shù)據(jù)庫等資源急速膨脹,其關(guān)聯(lián)關(guān)系不斷發(fā)生變化,但是到目前為止,所有這些資源的共享和社會化程度還很低,基本上是各自為政,相互間缺乏有效的交互、協(xié)作與協(xié)同能力。因此要創(chuàng)建大型的、松散的、健壯的分布式系統(tǒng)還必須以先進技術(shù)和大量勞動為基礎(chǔ),除了各種資源本身的技術(shù)和管理之外,關(guān)鍵的因素是標(biāo)準(zhǔn)的建立,從底層信號的傳輸?shù)綇?fù)雜業(yè)務(wù)的流程等各種不同的層次都要形成統(tǒng)一的標(biāo)準(zhǔn)。此外到目前為止,所有的分布式計算技術(shù)都或多或少存在沒有解決的問題,還沒有哪一種技術(shù)被所有的研究者認(rèn)同為分布式計算技術(shù)研究的方向,也沒有哪一種技術(shù)能實現(xiàn)完全意義上的分布式計算,滿足所有分布式計算的需求。
所以對多種現(xiàn)有分布式計算技術(shù)的綜合研究,吸取所有技術(shù)的優(yōu)點,合理地解決分布式計算的需求,越來越被人們所重視。從某種意義上說它也表明了今后分布式計算技術(shù)研究的方向。
參考文獻
[1] Middleware white paper.International Systems Group,Inc,1997.2
[2] 都志輝,陳 渝,劉 鵬,等. 網(wǎng)格計算[M]. 北京:清華大學(xué)出版社,2002.
[3] Foster I , Kesselman C , Nick J ,et al .Grid Services for Distributed System Integration[J ] . Computer ,2002 ,35 (6) :37-46.
[4] Tbai T ,Lam H Q. .NET 框架精髓[M] . 王敏之譯. 北京:中國電力出版社,2001.
[5] 胡道元.計算機網(wǎng)絡(luò)(高級) [M ]. 北京: 清華大學(xué)出版社,1999.
[6] 王柏,王紅熳,鄒華. 分布計算環(huán)境[M] . 北京:北京郵電大學(xué)出版社,2000.
[7] IBM Web Services Architecture team . Web Services architecture overview.
更多計算機與外設(shè)信息請關(guān)注:21ic計算機與外設(shè)頻道