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





