摘要:分布式計(jì)算是一門計(jì)算機(jī)學(xué)科,它主要是研究如何把一個需要巨大計(jì)算能力才能解決的問題分成許多小的部分,然后把這些部分分配給許多不同的計(jì)算機(jī)進(jìn)行處理,最后把這些計(jì)算結(jié)果綜合起來得到最終的結(jié)果。本文還對分布式計(jì)算技術(shù)的工作原理和幾種典型的分布式計(jì)算技術(shù),如中間件技術(shù)、網(wǎng)格技術(shù)、移動Agent技術(shù)、P2P技術(shù)以及Web Service技術(shù)進(jìn)行了分析和比較,介紹了存儲整合在分布式計(jì)算技術(shù)中的應(yīng)用,指出了其存在的一些問題。
關(guān)鍵詞:分布式計(jì)算;中間件;網(wǎng)格;移動Agent;P2P;Web Service;存儲整合
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2010)05-1244-03
Comparison about Several Typical Distributed Computing Technology
HU Min1, FU Li2
(1. Continuing Education school, Jiangxi Modern College, Nanchang 330012, China; 2. Public Education Ministry, Jiangxi Modern College, Nanchang 330012, China)
Abstract: Distributed computing is a computer science. It mainly studies how to divide the problem needed a huge computing power into many small parts. After that, these parts are assigned to many different computers for processing. In the end, these calculations are got together to be the final result. This paper also analysis and compares the working principle of distributed computing technology and several typical distributed computing technologies such as middleware technologies, grid technology, mobile Agent technology, P2P technology, and Web Service technologies. It introduces the storage integrated in the application of distributed computing technology and pointes out some problems of its existence.
Key words: Distributed Computing; Middleware; grid; Mobile Agent; P2P; Web Service; Storage Consolidation
1 概述
所謂分布式計(jì)算就是在兩個或多個軟件互相共享信息,這些軟件既可以在同一臺計(jì)算機(jī)上運(yùn)行,也可以在通過網(wǎng)絡(luò)連接起來的多臺計(jì)算機(jī)上運(yùn)行。分布式計(jì)算研究主要集中在分布式操作系統(tǒng)和分布式計(jì)算環(huán)境研究兩個方面。但隨著Internet技術(shù)的飛速發(fā)展, 分布式計(jì)算的研究熱點(diǎn)也從以分布式操作系統(tǒng)為中心的傳統(tǒng)模式轉(zhuǎn)換到以網(wǎng)絡(luò)計(jì)算平臺為中心實(shí)用分布式技術(shù), 并取得了較大的成功。此外,在過去的20 多年間也涌現(xiàn)出了大量的分布式計(jì)算技術(shù),如中間件技術(shù)、網(wǎng)格技術(shù)、移動Agent技術(shù)、P2P技術(shù)以及Web Service技術(shù)。它們在特定的范圍內(nèi)都得到了廣泛的應(yīng)用。
2 幾種典型的分布式計(jì)算技術(shù)
2.1 中間件技術(shù)
中間件(middleware)是一個基礎(chǔ)性軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。
在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。
中科院軟件所研究員仲萃豪形象地把中間件定義為:平臺+通信。這個定義限定了只有用于分布式系統(tǒng)中的此類軟件才能被稱為中間件,同時此定義還可以把中間件與支撐軟件和實(shí)用軟件區(qū)分開來。
2.2 網(wǎng)格計(jì)算技術(shù)
網(wǎng)格計(jì)算(Grid computing)通過利用大量異構(gòu)計(jì)算機(jī)(通常為桌面)的未用資源(CPU周期和磁盤存儲),將其作為嵌入在分布式電信基礎(chǔ)設(shè)施中的一個虛擬的計(jì)算機(jī)集群,為解決大規(guī)模的計(jì)算問題提供了一個模型。網(wǎng)格計(jì)算的焦點(diǎn)放在支持跨管理域計(jì)算的能力,這使它與傳統(tǒng)的計(jì)算機(jī)集群或傳統(tǒng)的分布式計(jì)算相區(qū)別。
網(wǎng)格計(jì)算的設(shè)計(jì)目標(biāo)是解決對于任何單一的超級計(jì)算機(jī)來說仍然大得難以解決的問題,并同時保持解決多個較小的問題的靈活性。這樣,網(wǎng)格計(jì)算就提供了一個多用戶環(huán)境。它的第二個目標(biāo)就是:更好的利用可用計(jì)算機(jī),迎合大型的計(jì)算練習(xí)斷斷續(xù)續(xù)的需求。這隱含著使用安全的授權(quán)技術(shù),以允許遠(yuǎn)程用戶控制計(jì)算資源。
網(wǎng)格計(jì)算包括共享異構(gòu)資源(基于不同的平臺,硬件/軟件體系結(jié)構(gòu),以及計(jì)算機(jī)語言),這些資源位于不同的地理位置,屬于一個使用公開標(biāo)準(zhǔn)的網(wǎng)絡(luò)上的不同的管理域。簡而言之,它包括虛擬化計(jì)算資源。
網(wǎng)格計(jì)算經(jīng)常和集群計(jì)算相混淆。二者主要的不同就是:集群是同構(gòu)的,而網(wǎng)格是異構(gòu)的;網(wǎng)格擴(kuò)展包括用戶桌面機(jī),而集群一般局限于數(shù)據(jù)中心。對于網(wǎng)格計(jì)算(Grid computing)這一術(shù)語有三重理解可供參考,如下:
為萬維網(wǎng)誕生起到關(guān)鍵性作用的歐洲核子研究組織(CERN,European Organization for Nuclear Research),其對網(wǎng)格計(jì)算是這樣定義的:“網(wǎng)格計(jì)算就是通過互聯(lián)網(wǎng)來共享強(qiáng)大的計(jì)算能力和數(shù)據(jù)儲存能力”。外部網(wǎng)絡(luò)(External grids)。事實(shí)上,網(wǎng)絡(luò)計(jì)算對分布在世界各地的、非營利性質(zhì)的研究機(jī)構(gòu)頗有吸引力,進(jìn)而造就了美國國家超級電腦應(yīng)用中心計(jì)算生物學(xué)網(wǎng)格,如生物學(xué)和醫(yī)學(xué)信息學(xué)研究網(wǎng)絡(luò)。內(nèi)部網(wǎng)絡(luò)(Internal grids)。同樣,網(wǎng)絡(luò)計(jì)算對那些需要解決復(fù)雜計(jì)算問題的商業(yè)公司有著非同一般的吸引力,其目標(biāo)是將企業(yè)內(nèi)部的計(jì)算能力最大化。
2.3 移動Agent技術(shù)
移動Agent的最初概念是在20世紀(jì)90年代初,由General 移動Agentgic 公司在推出商業(yè)系統(tǒng)Telescript時提出的。它是一可執(zhí)行的程序,分布式人工智能技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展的必然結(jié)果,能夠攜帶其代碼和狀態(tài)自主地從網(wǎng)絡(luò)中一個節(jié)點(diǎn)移動到另一個節(jié)點(diǎn)上運(yùn)行,尋找合適的計(jì)算資源和信息資源,完成特定的任務(wù)。移動Agent具有智能性和移動性,并根據(jù)服務(wù)需要協(xié)調(diào)多個Agent的行為,協(xié)作執(zhí)行特定任務(wù)。
移動Agent是一種軟件對象,它能攜帶執(zhí)行代碼、數(shù)據(jù)和運(yùn)行狀態(tài),在復(fù)雜的網(wǎng)絡(luò)中自治的、有目的遷移,并能響應(yīng)外部事件,在遷移過程中能保持狀態(tài)的一致性。移動Agent就是一個能在異構(gòu)網(wǎng)絡(luò)中自主地從一臺主機(jī)遷移到另一臺主機(jī),并可與其它Agent或資源交互的程序。
移動Agent技術(shù)是分布式技術(shù)和Agent技術(shù)相結(jié)合的產(chǎn)物,它結(jié)合了分布式計(jì)算機(jī)技術(shù)和人工智能技術(shù),它除了具有智能Agent的最基本特性:自主能力、社交能力、適應(yīng)能力和一致主動性,還具有移動能力、可靠性和安全性。移動Agent不同于基于過程的RPC,也不同于面向?qū)ο蟮膶ο笠茫洫?dú)特的對象傳遞思想和卓越的特性給分布式計(jì)算乃至開發(fā)系統(tǒng)帶來了巨大的革新。移動Agent技術(shù)在實(shí)際中得到了廣泛的應(yīng)用,主要應(yīng)用于電子商務(wù)、分布式信息檢索、無線通信服務(wù)、入侵檢測和網(wǎng)絡(luò)管理等方面。
2.4 P2P技術(shù)
P2P技術(shù)起源于最初的聯(lián)網(wǎng)通信方式,如在建筑物內(nèi)PC通過局域網(wǎng)互聯(lián),不同建筑物間通過Modem遠(yuǎn)程撥號互聯(lián)。其中建立在TCP/IP協(xié)議之上的通信模式構(gòu)成了今日互聯(lián)網(wǎng)的基礎(chǔ),所以從基礎(chǔ)技術(shù)角度看,P2P不是新技術(shù),而是新的應(yīng)用技術(shù)模式。
今天,P2P再一次被關(guān)注主要是由Napster以及ICQ類軟件的出現(xiàn),雖然在Napster之前P2P方式的研究也從未停止。
現(xiàn)在互聯(lián)網(wǎng)是以S(Server)/ B(Browser)或S/C(Client)結(jié)構(gòu)的應(yīng)用模式為主的,這樣的應(yīng)用必須在網(wǎng)絡(luò)內(nèi)設(shè)置一個服務(wù)器,信息通過服務(wù)器才可以傳遞。信息或是先集中上傳到服務(wù)器保存,然后再分別下載(如網(wǎng)站),或是信息按服務(wù)器上專有規(guī)則(軟件)處理后才可在網(wǎng)絡(luò)上傳遞流動(如郵件)。
如今擁有Napster及ICQ類軟件的PC(或操作者)就可以選擇同樣擁有此類軟件的另一PC(或操作者)形成互聯(lián)(直接連接,不通過服務(wù)器),雙方共享資源,協(xié)同完成某種行動。而擁有同一P2P軟件的設(shè)備和用戶,還可以形成一個為其自己所有的在互聯(lián)網(wǎng)上的P2P專用網(wǎng)。
目前互聯(lián)網(wǎng)主要技術(shù)模式是S/C方式,此方式要在互聯(lián)網(wǎng)上設(shè)置擁有強(qiáng)大處理能力和大帶寬的高性能計(jì)算機(jī),配合高檔的服務(wù)器軟件,再將大量的數(shù)據(jù)集中存放在上面,并且要安裝多樣化的服務(wù)軟件,在集中處理數(shù)據(jù)的同時可以對互聯(lián)網(wǎng)上其他PC進(jìn)行服務(wù),提供或接收數(shù)據(jù),提供處理能力及其他應(yīng)用。對于一臺與服務(wù)器聯(lián)機(jī)并接受服務(wù)的PC機(jī)來說,這臺PC機(jī)就是客戶機(jī),其性能可以相對弱小。而P2P技術(shù)的特征之一就是弱化了服務(wù)器的作用,甚至取消服務(wù)器,任意兩臺PC互為服務(wù)器,同時又是客戶機(jī),即對等。右面是P2P與S/C方式的一些比較:
S/C方式造成互聯(lián)網(wǎng)絡(luò)上的集中,無論信息資源還是成本資源均向同一方向集中,這樣的模式符合一對多、強(qiáng)對弱的社會關(guān)系形式,如政府對個人、對企業(yè),大企業(yè)對小企業(yè),學(xué)校對學(xué)生,企業(yè)對職工等等關(guān)系。所以S/C方式是符合市場需求的。P2P方式將導(dǎo)致信息數(shù)量、成本資源都向互聯(lián)網(wǎng)各點(diǎn)均勻分布,也就是所謂“邊緣化“的趨勢。此模式符合“一對一”的特點(diǎn),以及彼此相當(dāng)?shù)纳鐣P(guān)系形式,如個人對個人,規(guī)模相當(dāng)?shù)钠髽I(yè)之間,等等,這也是符合市場需求的(如ICQ)。所以這兩種方式會共存,有關(guān)P2P即將替代S/C模式的說法是不成立的。P2P有其獨(dú)特的市場空間,是現(xiàn)有互聯(lián)網(wǎng)應(yīng)用的補(bǔ)充,這一點(diǎn)應(yīng)該是毫無疑問的。
P2P技術(shù)特性:
1) 既是S又是C,如何表現(xiàn)取決于用戶的要求,網(wǎng)絡(luò)應(yīng)用由使用者自由驅(qū)動。
2) 信息在網(wǎng)絡(luò)設(shè)備間直接流動,高速及時,降低中轉(zhuǎn)服務(wù)成本。
3) 構(gòu)成網(wǎng)絡(luò)設(shè)備互動的基礎(chǔ)和應(yīng)用。
4) 在使網(wǎng)絡(luò)信息分散化的同時,相同特性的P2P設(shè)備可以構(gòu)成存在于互聯(lián)網(wǎng)這張大網(wǎng)中的子網(wǎng),使信息按新方式又一次集中。
2.5 Web Service技術(shù)
Web Service 使用標(biāo)準(zhǔn)技術(shù),通過它,軟件應(yīng)用程序資源在各網(wǎng)絡(luò)上均可用。因?yàn)?Web Service 基于標(biāo)準(zhǔn)接口,所以即使是以不同的語言編寫并且在不同的操作系統(tǒng)上運(yùn)行,它們也可以進(jìn)行通信。因此,Web Service 是生成必須適用于網(wǎng)絡(luò)上不同系統(tǒng)的分布式應(yīng)用程序的極好方法。
標(biāo)準(zhǔn)技術(shù)因?yàn)?Web Service 符合公認(rèn)的標(biāo)準(zhǔn),所以能夠以這種通常可訪問的方式來公開其資源。
Web Service 使用的標(biāo)準(zhǔn)技術(shù)包括:通過 WSDL 文件公開描述其自身功能;通過 XML 消息(通常使用 SOAP 格式)與其他應(yīng)用程序進(jìn)行通信;使用標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議,如HTTP等。
Web Service(在中央)、其客戶端軟件應(yīng)用程序(在左側(cè))及其使用的資源(包括數(shù)據(jù)庫、其他 Web Service 等)(在右側(cè))之間的關(guān)系(如圖1)。Web Service 通過使用標(biāo)準(zhǔn)協(xié)議(如 HTTP)交換 XML 消息來與客戶端和各種資源進(jìn)行通信。在 WebLogic Server 上部署 Web Service 后,由 WebLogic Server 負(fù)責(zé)將傳入的 XML 消息路由到您編寫的 Web Service 代碼。Web Service 將導(dǎo)出 WSDL 文件,以描述其接口,其他開發(fā)人員可以使用此文件來編寫訪問此 Web Service 的組件。
2.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ù)進(jìn)行革新,雖然所有服務(wù)之間的通信都以XML格式的消息為基礎(chǔ),但調(diào)用服務(wù)的基本途徑主要還是RPC,而且具體實(shí)現(xiàn)并沒有提供一種全新的編程模式。
網(wǎng)格計(jì)算與基于中間件的分布式計(jì)算技術(shù)相比較,它依然以“中間件”為技術(shù)核心,在實(shí)現(xiàn)形式上并沒有太大的改變。然而經(jīng)過一系列的技術(shù)革新,網(wǎng)格系統(tǒng)中的技術(shù)內(nèi)涵已經(jīng)發(fā)生了深刻的變化。其一,基于中間件的分布式計(jì)算技術(shù)的資源主要是指數(shù)據(jù)和軟件,而網(wǎng)格計(jì)算的資源已經(jīng)延伸到所有用于共享的實(shí)體,包括硬件、軟件,甚至分布式文件系統(tǒng)、緩沖池等;其二,在Internet上,網(wǎng)格中間件層提供了與Web服務(wù)一樣優(yōu)秀的擴(kuò)展功能,打破了傳統(tǒng)分布式技術(shù)C/S模式的局限。
網(wǎng)格計(jì)算、Web Service等技術(shù)在異構(gòu)平臺上構(gòu)筑了一層通用的、與平臺無關(guān)的信息和服務(wù)交換設(shè)施,從而屏蔽了Internet中千差萬別的差異,使信息和服務(wù)暢通無阻地在計(jì)算機(jī)之間流動。網(wǎng)格計(jì)算與Web Service技術(shù)的共同載體是Internet。但兩者的不同之處在于,網(wǎng)格系統(tǒng)連接物理上分散的硬件資源,形成虛擬計(jì)算組織,從而使計(jì)算資源得到充分共享。而Web服務(wù)則是以商務(wù)應(yīng)用為背景,是基于網(wǎng)格系統(tǒng)之上的。網(wǎng)格系統(tǒng)為Web服務(wù)提供一個與硬件無關(guān)的虛擬計(jì)算機(jī);而Web服務(wù)是架構(gòu)在虛擬計(jì)算機(jī)平臺上,與環(huán)境、語言無關(guān)的應(yīng)用集成平臺。
盡管各種分布式計(jì)算技術(shù)在理念、規(guī)范和實(shí)現(xiàn)等方面有較大的差異,但它們之間并不矛盾,而是一種承上啟下的關(guān)系,有時甚至是融合的。因此,各種分布式計(jì)算技術(shù)可以共同存在,它們的相互結(jié)合也是非常有意義和現(xiàn)實(shí)的。
3 存儲整合
因?yàn)榉植际接?jì)算模式的核心常常是每個部門選擇各自不同的電腦系統(tǒng),這樣就會造成由于數(shù)據(jù)格式的不統(tǒng)一所導(dǎo)致的管理困難,其次管理分布式計(jì)算中所用的大量存儲設(shè)備所需的費(fèi)用也是一筆龐大的開支。這些都有悖于分布式計(jì)算技術(shù)的初衷。所以,存儲整合對分布式計(jì)算技術(shù)的發(fā)展起著不可低估的作用。
存儲整合是指多個異構(gòu)型主機(jī)共享集中式存儲。針對不同的環(huán)境和要求,有許多不同的整合方法,但主要有以下三種形式:
1)從存儲在多個服務(wù)器上轉(zhuǎn)變?yōu)榇鎯υ趩蝹€服務(wù)器上。此模式可以降低管理工作的復(fù)雜性和對數(shù)據(jù)中心占地面積的要求;
2)直接將多個異構(gòu)型服務(wù)器附加到一個存儲設(shè)備上。此模式極大降低了存儲成本,同時也可以簡化管理;
3)整合到存儲局域網(wǎng)上(SAN)。此模式既有利于提高工作效率,降低管理工作的復(fù)雜性,同時還可以提高可擴(kuò)展性,可用性和數(shù)據(jù)可訪問性。
所以,在分布式計(jì)算技術(shù)越來越得到廣泛應(yīng)用的今天,存儲整合技術(shù)也顯示出它重要的地位。
4 共同存在的問題
通過上面對幾種技術(shù)的分析與比較,我們不難發(fā)現(xiàn)它們均存在著一些共同的問題。
1)標(biāo)準(zhǔn)問題
目前,幾乎所有的分布式計(jì)算技術(shù)都沒有完整的統(tǒng)一的標(biāo)準(zhǔn),雖然已開始這方面的工作,標(biāo)準(zhǔn)的缺乏使得分布式計(jì)算技術(shù)研究分散,很難形成穩(wěn)定的研究方向,從而在很大程度上制約了分布式計(jì)算技術(shù)的發(fā)展。
2)軟件方法問題
軟件方法學(xué)是軟件能夠進(jìn)行工業(yè)化生產(chǎn)的前提。但缺乏可行的軟件方法學(xué)使得分布式計(jì)算軟件的質(zhì)量、開發(fā)進(jìn)度等很難得到保證,沒有工業(yè)化生產(chǎn)方式,分布式計(jì)算系統(tǒng)的普及將十分困難。
3)異構(gòu)問題
現(xiàn)在的網(wǎng)絡(luò)是一個異構(gòu)的環(huán)境,分布式計(jì)算技術(shù)首先需要解決異構(gòu)環(huán)境的互操作問題。而要解決異構(gòu)環(huán)境的互操作問題,首要的任務(wù)是如何互相識別。目前,既不可能要求所有的資源用同一種方式描述,又沒有方法可智能地識別這些資源,這就導(dǎo)致任何一種分布式計(jì)算技術(shù)只能在一定的范圍內(nèi)使用。
4)安全性問題
分布式計(jì)算技術(shù)面臨的最大挑戰(zhàn)就是不斷增長的網(wǎng)絡(luò)規(guī)模,整個平臺的安全性方面的問題就會極為嚴(yán)重。
5 展望
隨著Internet上的硬件、軟件、數(shù)據(jù)庫等資源急速膨脹,其關(guān)聯(lián)關(guān)系不斷發(fā)生變化,但是到目前為止,所有這些資源的共享和社會化程度還很低,基本上是各自為政,相互間缺乏有效的交互、協(xié)作與協(xié)同能力。因此要創(chuàng)建大型的、松散的、健壯的分布式系統(tǒng)還必須以先進(jìn)技術(shù)和大量勞動為基礎(chǔ),除了各種資源本身的技術(shù)和管理之外,關(guān)鍵的因素是標(biāo)準(zhǔn)的建立,從底層信號的傳輸?shù)綇?fù)雜業(yè)務(wù)的流程等各種不同的層次都要形成統(tǒng)一的標(biāo)準(zhǔn)。此外到目前為止,所有的分布式計(jì)算技術(shù)都或多或少存在沒有解決的問題,還沒有哪一種技術(shù)被所有的研究者認(rèn)同為分布式計(jì)算技術(shù)研究的方向,也沒有哪一種技術(shù)能實(shí)現(xiàn)完全意義上的分布式計(jì)算,滿足所有分布式計(jì)算的需求。
參考文獻(xiàn):
[1] Middleware white paper.International Systems Group,Inc,1997(2).
[2] 都志輝,陳渝,劉鵬,等. 網(wǎng)格計(jì)算[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.