王欣
(太原旅游職業學院,山西 太原 030006)
分布式計算技術發展狀況研究
王欣
(太原旅游職業學院,山西 太原 030006)
分布式計算技術是把網絡上分散于各處的資源匯聚起來,利用空閑的計算容量完成各種大規模、復雜的計算和數據處理任務。文章研究總結了目前分布式計算技術的主流技術和新一代分布式計算技術的體系結構,討論分析了它們各自的優缺點,提出了分布式計算技術存在的問題并展望了未來。
分布式計算;中間件;Web服務;網格
分布式計算就是在兩個或多個軟件互相共享信息,這些軟件既可以在同一臺計算機上運行,也可以在通過網絡連接起來的多臺計算機上運行。分布式計算的研究主要是分布式操作系統和分布式計算環境兩個方面。隨著因特網的廣泛應用,分布式計算的研究從傳統的以分布式操作系統為中心轉變為以網絡平臺為中心的實用分布式技術,并取得了一定的成功。在過去的20多年間出現了大量的分布式計算技術,如中間件技術、移動Agent技術、P2P技術以及最近推出的Web服務技術和網格技術等。每一種技術都得到了一定程度的認同,在特定的范圍內得到了廣泛的應用。
通信網絡的出現使得計算能力的遠程使用成為可能,下面討論幾種主流的分布式計算技術,并分析其各自的優缺點。
(一)遠程過程調用
遠程過程調用 (Remote Procedure Call,RPC)(如圖1-1)是為了緩解最初的消息傳遞模型編程的瑣碎性而提出的,它支持本地機的程序通過標準過程調用機制調用遠程機的過程。基本思想是把本地的過程調用擴展到分布式環境中,當程序員使用RPC調用一個遠程過程時,代碼實際執行的是一個代理函數,代理過程的目的是編排輸入參數,并把它們傳送到遠程服務器。
缺點:1)RPC是面向過程的一種方法,在應用過程中有很大的局限性,例如系統管理問題、系統安全問題等;2)在通信過程中,遠程與本地需要進行頻繁的交互,而且調用必須是單向的;3)RPC正確執行的前提是被調用的過程事先存在,這個要求限制了RPC在大型分布式系統中的應用,很多情況下,要調用的過程在遠程節點上并不存在。下面的遠程求值可以解決這個問題。

(二)遠程求值
遠程求值(Remote Evaluation,REV)(如圖1-2)允許網絡中的節點向遠程節點發送子程序和參數信息,遠程節點啟動該子程序,一些初始請求可由該子程序發出,中間結果由該子程序處理,而不是發回源節點,子程序只是將最后的處理結果返回到源節點。

(三)客戶/服務器模式
在客戶/服務器(Client/Server,C/S)通信模式中,通信的實體雙方有固定、預先定義好的角色:服務器提供服務,客戶使用服務。這種模式隱含了一種嚴格的依賴關系:客戶依賴服務器所提供的服務而工作。客戶發出服務請求,然后在服務器上完成任務,最后服務器將處理結果返回到客戶機(如圖1-3)。引入客戶和服務器的角色,RPC模式和REV模式都是客戶/服務器模式的一種。

優點:1)優化網絡利用率,減少了網絡流量;2)響應時間較短;3)通過把應用程序同它們處理的數據隔離,可以使數據具有獨立性。
缺點:1)C/S模式的服務器若不能確切提供客戶方所要求的服務,則客戶就必須通過一系列的遠程調用來獲得它所需的服務,這就導致了服務響應的延遲和網絡帶寬的浪費;2)因為計算環境中的處理器資源、軟件資源和信息資源等都集中在服務器上,當客戶請求較多時,服務器的效率會大大降低,客戶請求的響應時間也會增大。
(四)移動代碼
移動代碼(Code-on-demand)模式使用了代碼移動的技術,即在需要遠程服務時,首先從遠程獲得該服務的代碼[4]。
優點:1)解決了C/S結構中資源過于集中的缺點。2)與C/S模式不同,本地機不用知道遠程主機的情況,只需下載所需的代碼即可。
缺點:可移動代碼的遷移只是程序代碼的遷移,而并沒有攜帶程序的運行狀態和數據等其他信息。另外,移動代碼本身不是有名字的實體,它們相互之間不能進行通信合作。因此,移動代碼只適合簡單的網絡服務提供以及遠程軟件安裝等領域。
(五)移動Agent計算技術
移動Agent技術是分布式技術和Agent技術相結合的產物,它結合了分布式計算技術和人工智能技術,除了具有智能Agent的最基本特性:自主能力、社交能力、適應能力和一致主動性,還具有移動能力、可靠性和安全性[5]。
移動Agent計算模式與其他分布式計算模式的不同之處在于:1)自治性的優勢。移動Agent模式可以根據資源所在的位置自主地決定移動的目的地,適合大規模的網絡系統,有效利用了網絡中各主機的資源,節省網絡帶寬,避免大量網絡傳輸,克服了網絡延遲;2)在異構平臺適應性更強。網絡環境下分布式計算平臺往往是異構的,移動Agent通常獨立于特定的軟硬件環境,與它所在的系統和網絡傳輸層無關,僅依賴于其運行環境。其自治性和智能性使它更能動態適應網絡資源分散、網絡拓撲結構多變、網絡接入帶寬不一、網絡性能穩定性較差的大規模的異構的網絡環境;3)健壯與容錯。移動Agent對網絡的依賴性很小,而且具備動態反應能力,使其易于建立健壯而容錯的分布式系統。當所工作的主機出現問題時,它會遷移到其他主機上繼續工作;4)使用移動Agent特有的通信協議可以將不同的通信協議進行封裝,不再需要考慮不同系統間通信協議不同的通信問題;5)使用移動Agent模式構建分布式系統,在設計上更加靈活。
(六)P2P技術
P2P系統由若干互聯協作的計算機構成,是因特網上實施分布式計算的新模式。它把C/S系統中的角色一體化,引導網絡計算模式從集中式向分布式轉變。P2P技術已發展為一種重要的分布式計算技術。
優點:1)P2P模式最主要的優點就是資源的高度利用率。2)P2P不同于傳統的C/S模式,它們能分配每一個節點作為客戶機或服務器。這就避免了在不對稱的C/S模式中服務器可能遇到的性能瓶頸問題。3)信息在網絡設備間直接流動,高速及時,降低中轉服務成本。
缺點:1)P2P不易于管理,而C/S網絡,只需在中心點進行管理。2)P2P網絡中數據的安全性難于保證。安全策略、備份策略等方面的實現復雜。3)對等點可以隨意地加入或退出網絡,造成網絡帶寬和信息存在的不穩定。
web服務和網格計算是在因特網上進行大規模分布式計算的兩大關鍵技術,它們主要是專注于解決分布式計算的系統管理和資源共享問題,web服務和網格計算的出現,無論是在理念上,還是在技術上都取得了巨大的進步。
(一)Web服務
Web服務(Web Service)技術是對Web進行擴展,為相互間連接的軟件提供服務。Web服務是一種構建在簡單對象訪問協議之上的分布式應用程序,其實質是由XML通過HTTP協議來調度的遠過程調用[6]。
Web服務技術是新一代的分布式計算和處理技術,它具有如下諸多優點,可以說是新一代的真正動態的分布式系統。
優點:1)Web服務在因特網上的高度的擴展性;2)Web服務技術是跨平臺的,聯接非常松散,采用的是性能穩定的、基于消息的異步技術,在改變任何一端接口的情況下,應用程序仍可以不受影響地工作。3)完全的平臺、語言的獨立性。Web服務進行了更高程度的抽象,只要遵守Web服務的接口即可進行服務的請求和調用。
當然,Web服務也存在缺點,在有些情況下,它會降低應用程序的性能。
(二)網格計算
網格計算通過因特網把分散在各處的硬件、軟件、信息資源連結成為一個巨大的整體,從而使得人們能夠利用地理上分散于各處的資源,完成各種大規模的、復雜的計算和數據處理的任務[7]。
目前比較重要的網格體系結構有兩個:一個是以GLobus項目為代表的五層沙漏結構,它是一個以協議為中心的框架;另一個是與Web服務相融合的開放網格服務結構OGSA,它與Web服務一樣都是以服務為中心。
網格的體系結構包括:資源層、中間件層和應用層。1)資源層:構成網格系統的硬件基礎。它包括因特網上的各種計算資源,這些資源通過網絡設備連接起來。網格資源層僅僅實現了計算資源在物理上的連通。2)中間件層:一系列工具和協議軟件。其功能是屏蔽資源層中計算資源的分布、異構特性,向網格應用層提供透明、一致的使用接口。網格中間件層也稱為網格操作系統,它同時需要提供用戶編程接口和相應的環境,以支持網格應用的開發。3)網格應用層:用戶需求的具體體現。在網格操作系統的支持下,提供系統能接受的語言、Web服務接口、二次開發環境和工具,并可配置支持工程應用、數據庫訪問的軟件等。
網格計算應用于分布式面臨一些問題:互連網的數據傳輸能力不足的問題;人機通信的問題;網格計算的安全性。
網格計算、web服務等技術在異構平臺上構筑了一層通用的、與平臺無關的信息和服務交換設施,從而屏蔽了因特網中千差萬別的差異,使信息和服務暢通無阻地在計算機之間流動。因此說,網格系統、Web服務是新一代的、真正動態的分布式系統。
1)到目前為止,幾乎所有的分布式計算技術都沒有完整的統一的標準。標準的缺乏使得分布式計算技術研究分散,很難形成穩定的研究方向,更難以開發出得到廣泛接受的產品。不過,統一標準的工作研究已經展開。
2)軟件方法學是軟件能夠進行工業化生產的前提,分布式計算系統沒有相關的軟件方法。缺乏可行的軟件方法學使得分布式計算的軟件質量、開發進度等很難得到保證,普及則更困難。
3)分布式計算系統沒有統一的控制手段,它的質量和可用性難以保證。在沒有滿意的服務質量和可用性保證之前,這項技術很難被接受。
4)網絡是一個異構的環境,分布式計算技術需要解決異構環境的互操作問題。解決異構環境的互操作問題,重要的是如何互相區別。現有資源不可能以同一種方式描述,又沒有自動識別資源的方法,所以分布式計算技術的使用具有范圍性。
自從出現了分布式技術之后,分布式計算技術的發展就沒有停止過。目前已進行了大量的研究,并產生了諸如中間件、移動Agent、P2P、Web服務和網格等技術,但離真正完善還有很大的距離。分布式計算技術是計算機網絡的產物,也是計算機網絡應用未來的發展方向,有機地綜合已有的技術,吸取所有技術的優點,合理地解決分布式計算的需求,是分布式計算技術研究的方向。
[1]李文軍.分布式對象技術[M].北京:機械工業出版社,2006.
[2]申晉祥.BP神經網絡在無損檢測中的應用[J].山西大同大學學報,2009,(2):16-17.
[3]黃承忠,郭中.基于移動代理技術的分布并行計算環境[J].計算機工程,2005,(4):99-100.
[4]鄒明亮,程小輝,劉亞榮.嵌入式移動數據庫中的移動Agent問題探討[J].微計算機信息,2006,(12):61-62.
[5]楊濤,劉錦德.Web Services技術綜述——一種面向服務的分布式計算模式[J].計算機應用,2004,(8):1-4.
[6]都志輝,陳渝,劉鵬,等.網格計算[M].北京:清華大學出版社,2002.
TP
A
1673-0046(2011)06-0187-02