摘要:分布式計算是研究如何利用網(wǎng)絡(luò)上大量的閑置計算資源來解決大型計算問題的一種計算科學。文中介紹了分布式計算的工作原理,包括中間件技術(shù)、網(wǎng)格技術(shù)、移動Agent技術(shù)、Web Service等在內(nèi)的幾種典型的分布式計算技術(shù)。
關(guān)鍵詞:分布式計算;中間件;網(wǎng)格;移動Agent;Web Service
中圖分類號: TP393文獻標識碼:B文章編號:1009-3044(2008)20-30283-02
Analysis on Client-server Computing’s some Technology
MA Wei
(Qinhuangdao Institute of Technology, Qinhuangdao066004,China)
Abstract: Client-server computing is a kind of count science. It makes use of a great deal of leave unused count resource in network to solve big count problems. This paper introduced Client-server computing principle and a few typical technology , including Middleware, GRID technology, mobile Agent, web service and so on.
Key words: Client-server computing; Middleware; GRID; mobile Agent; web Service
1 概述
分布式計算通過有效的調(diào)動網(wǎng)絡(luò)上成千上萬臺計算機中CPU的閑置處理資源及存儲資源,來組成一臺虛擬的超級計算機,為超大規(guī)模的計算事務(wù)提供強大的計算能力。一些有名的分布式計算項目如今已經(jīng)使用了分布于世界各地的大量志愿機的計算能力,如GIMPS、RC-72、United Devices、SETI@Home等,并不斷有越來越多的志愿者了解并積極加入到這一行列中來。隨著Internet的迅速發(fā)展和普及,分布式計算已成為網(wǎng)絡(luò)發(fā)展的主流趨勢。但是,現(xiàn)有的分布式計算技術(shù)都存在著一些沒有解決的問題,從而也影響了分布式計算技術(shù)的使用。
2 分布式計算技術(shù)的工作原理
分布式網(wǎng)絡(luò)體系結(jié)構(gòu)是以C/S結(jié)構(gòu)為基礎(chǔ)的三層或多層分布式對象體系結(jié)構(gòu),通常由安裝了超輕量軟件代理的客戶端系統(tǒng)和專用分布式計算管理服務(wù)器組成。在一個志愿機申請加入分布式計算的行列時,即會下載一個客戶端軟件到本地,在安裝完畢后就成為此項分布式計算項目的客戶端系統(tǒng)。專用服務(wù)器負責將大型計算問題劃分成若干個小的計算片段,同時序探測可用客戶端狀況,當代理程序檢測到某客戶端處于空閑時,就會通知管理服務(wù)器將此客戶端加入運算行列,然后發(fā)送計算請求??蛻舳讼到y(tǒng)接收到服務(wù)器發(fā)送的計算請求后,就會在機器的空閑時間里運行該程序進行計算,并且將計算結(jié)果返回給管理服務(wù)器。計算過程會以屏保程序或后臺運行的方式執(zhí)行,不會影響用戶的正常操作,當客戶端需要運行本地應(yīng)用程序的時候,CPU的控制權(quán)會立即返回給本地用戶, 而分布式計算的應(yīng)用程序也會中止運行。如果客戶端在超過一定時限仍未返回計算結(jié)果時,管理服務(wù)器會將該計算請求轉(zhuǎn)給其它空閑客戶端進行。
3 幾種典型的分布式計算技術(shù)
3.1 中間件
中間件是分布式系統(tǒng)中介于操作系統(tǒng)(或網(wǎng)絡(luò)協(xié)議)與分布式應(yīng)用之間的基礎(chǔ)軟件,它能夠屏蔽環(huán)境底層的復雜性,使應(yīng)用系統(tǒng)相對獨立于計算機軟硬件平臺,幫助用戶靈活、高效的開發(fā)和集成復雜的應(yīng)用軟件。基于中間件的分布式計算技術(shù)以中間件為橋梁,通過把數(shù)據(jù)轉(zhuǎn)移到計算之處的計算方式,把網(wǎng)絡(luò)系統(tǒng)的所有組件集成為一個連貫的可操作的異構(gòu)系統(tǒng),從而達到網(wǎng)絡(luò)“透明”的目的。
中間件發(fā)展極其迅速,是發(fā)展最快的軟件產(chǎn)品,但在技術(shù)上還處于成長階段,還缺乏完全統(tǒng)一的標準和模型,通常用C++語言以面向?qū)ο蟮募夹g(shù)來實現(xiàn)的,但是它的特性已超出面向?qū)ο蟮谋磉_能力,目前趨向于用構(gòu)件技術(shù)來實現(xiàn)。中間件產(chǎn)品的類別包括消息中間件(MOM :Message-Oriented Middleware)、數(shù)據(jù)庫中間件(Database Middleware)、遠程過程調(diào)用中間件(RPC :Remote Process Call)、對象請求代理中間件(ORB :Object Request Broker)和事務(wù)處理中間件(TP Monitor:Transaction Process Monitor)等。
3.1.1 CORBA技術(shù)規(guī)范
CORBA是 OMG 組織在 1991 年提出的公用對象請求代理程序結(jié)構(gòu)技術(shù)規(guī)范,是最早出現(xiàn)的分布式對象計算模型,其核心是一套標準的語言、接口和協(xié)議,由OMG 接口描述語言( OMG Interface Definition Language, OMG IDL )、對象請求代理( Object Request Broker, ORB )和 IIOP 標準協(xié)議( Internet Inter-ORB Protocol )3個關(guān)鍵模塊組成。 CORBA 的主要目標是實現(xiàn)分布異構(gòu)環(huán)境中對象之間的透明請求調(diào)用,解決面向?qū)ο蟮漠悩?gòu)應(yīng)用之間的互操作問題,并提供分布式計算所需的一些其它服務(wù)。
3.1.2 EJB技術(shù)規(guī)范
EJB ( Enterprise Java Beans )是 J2EE 的核心技術(shù)之一,它是一種基于 Java 的服務(wù)器端的軟件組件模型,包含了EJB服務(wù)器、EJB容器、Home接口、Remtoe接口等。EJB不局限于一種特定的操作系統(tǒng),也不局限于任何一種特別的機構(gòu)、服務(wù)器解決方案、中間件或通信協(xié)議,具有高度可移植性、平臺獨立性的特點,簡化了分布式對象的開發(fā)、部署和訪問,另外為了支持Java 語言在分布式計算環(huán)境中的使用,EJB 新標準中還引入了其它特性,使得Java 語言在基于CORBA 的體系結(jié)構(gòu)中也能夠很好地應(yīng)用。
3.1.3 DCOM技術(shù)規(guī)范
DCOM (Distributed Compontent Object Model)是微軟公司與其他廠商合作提出的一種分布組件對象模型, 是微軟的COM (Component Object Model) 的一個分布式的擴充,在COM 技術(shù)的基礎(chǔ)上,添加了處理底層的網(wǎng)絡(luò)協(xié)議細節(jié),主要是對位于Internet不同環(huán)境中的分布對象提供交互的標準。大多數(shù)運行著32位版本W(wǎng)indows 的個人電腦都或多或少地使用了內(nèi)建的DCOM 支持,使得在Windows 環(huán)境下DCOM成為一個分布式對象標準的強有力的競爭者。
3.2 網(wǎng)格技術(shù)
網(wǎng)格( GRID )是通過Internet將分布在不同地理位置的計算機軟硬件資源連結(jié)成為一個巨大的整體,從而提供一種高性能計算、管理及服務(wù)的能力。網(wǎng)格計算建立的是一種新型的Internet基礎(chǔ)支撐結(jié)構(gòu),目標是將與Internet互聯(lián)的計算機設(shè)施社會化。隨著互連網(wǎng)的迅速發(fā)展和普及,網(wǎng)格技術(shù)發(fā)展迅速,網(wǎng)格計算無疑是分布式計算技術(shù)通向計算時代的一個非常重要的里程碑。
目前,各種網(wǎng)格系統(tǒng)的公共體系結(jié)構(gòu)都包括:資源層、中間件層和應(yīng)用層。
(1)網(wǎng)格資源層:它是網(wǎng)格系統(tǒng)的硬件基礎(chǔ)。包括Internet上分布的各種計算資源,這些計算資源通過網(wǎng)絡(luò)設(shè)備連接起來。
(2)網(wǎng)格中間件層:它是一系列工具和協(xié)議軟件。其功能是屏蔽網(wǎng)格資源層中分布、異構(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ù)
軟件Agent是一個具有自主性、社會能力、反應(yīng)性和能動性等性質(zhì)的基于硬件或( 更經(jīng)常的)基于軟件的計算機系統(tǒng),而移動Agent是其中一類特殊的對象,是軟件Agent技術(shù)與分布式計算技術(shù)相結(jié)合的產(chǎn)物,它除了具有軟件Agent 的基本特性外,還具有本身最大的特點--移動性,即它可以在異構(gòu)的軟硬件網(wǎng)絡(luò)環(huán)境中自由移動,因此這種模式能夠有效地降低分布式計算中的網(wǎng)絡(luò)負載、提高通信效率、動態(tài)適應(yīng)變化的網(wǎng)絡(luò)環(huán)境,并具有很好的安全性和容錯能力。目前,移動Agent 的研究已取得了一些成就,產(chǎn)生了包括Open Group 公司的MOA 、Stuttgar大學的Mole、Ochanomizu 大學的MobileSpaces等在內(nèi)的大量的移動Agent 系統(tǒng),但相應(yīng)的移動Agent技術(shù)還都很不成熟,存在著各種各樣的缺陷。
3.4 Web Service技術(shù)
Web Service是近幾年產(chǎn)生的一種新的分布式計算技術(shù),是對Web 進行擴展,為相互間連接的軟件提供服務(wù),其主要目標就是在現(xiàn)有的各種異構(gòu)平臺的基礎(chǔ)上構(gòu)筑一個通用的與平臺無關(guān)、語言無關(guān)的技術(shù)層, 各種不同平臺之上的應(yīng)用依靠這個技術(shù)來實施彼此的連接和集成。Web Service目前還沒有一個統(tǒng)一的定義,典型的有:國際標準化組織W3C 的定義是:Web Service是一個通過URL 識別的軟件應(yīng)用程序,其界面及綁定能用XML 文檔來定義、描述和發(fā)現(xiàn),并且基于Internet協(xié)議上的消息傳遞,使用X M L 支持和其它軟件應(yīng)用程序的直接交互;IBM 公司的定義是:Web Services是自包容的、模塊化的應(yīng)用,它們能在一個網(wǎng)絡(luò)上被描述、發(fā)布、查找和調(diào)用,一般是在Web 上。
Web Service被普遍認為是下一代分布式系統(tǒng)開發(fā)的模型,主要是因為它在Internet 上表現(xiàn)出來的高度擴展性,由于Web Service技術(shù)是跨平臺的,聯(lián)接非常松散,采用的是性能穩(wěn)定的、基于消息的異步技術(shù),在改變?nèi)魏我欢私涌诘那闆r下,應(yīng)用程序仍可以不受影響地工作。它為集成分布式應(yīng)用中的中間件及其它組件提供了一個公共的框架,無須再考慮每一個組件的具體實現(xiàn)方式。這項技術(shù)目前得到了工業(yè)界的廣泛支持,許多大型的計算機廠商已推出了支持Web Service開發(fā)的集成環(huán)境 。還有許多如路由、可靠性以及事務(wù)等方面的更高層的協(xié)議有待進一步的開發(fā)。
4 發(fā)展前景
分布式計算技術(shù)是計算機網(wǎng)絡(luò)的產(chǎn)物,也是計算機網(wǎng)絡(luò)應(yīng)用未來的發(fā)展方向,目前,各個國家對分布式計算技術(shù)的研究規(guī)模都在不斷的擴大。如何更好的組織和使用分布在Internet上巨大的、潛在的資源是人們所關(guān)注的,而要創(chuàng)建大型的、松散的、健壯的分布式系統(tǒng)除了各種資源本身的技術(shù)和管理之外,關(guān)鍵的因素是標準的建立,從底層信號的傳輸?shù)綇碗s業(yè)務(wù)的流程等各種不同的層次都要形成統(tǒng)一的標準。打破單個技術(shù)局限性,將多種現(xiàn)有分布式計算技術(shù)進行有機的整合,吸取所有技術(shù)的優(yōu)點,合理地解決分布式計算的需求,是分布式計算技術(shù)研究發(fā)展的方向。
參考文獻:
[1] 周曉峰,王志堅.分布式計算技術(shù)綜述[J].計算機時代.2004(12).
[2] 王柏,王紅熳,鄒華.分布計算環(huán)境[M].北京郵電大學出版社,2000.
[3] 胡道元.計算機網(wǎng)絡(luò)(高級)[M].清華大學出版社,1999.
[4] 蔣雄偉,馬范援.中間件與分布式計算[J].計算機應(yīng)用, 2002:4.
[5] 王懷民,吳泉源.基于Agent的分布計算環(huán)境[J].計算機學報,1996:3.
[6] John Charles.Middleware Moves to the Forefront[J].IEEE Computer,1999:5.