亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Agent的分布式計(jì)算

        2010-05-13 08:46:00生桂勇
        現(xiàn)代電子技術(shù) 2009年12期
        關(guān)鍵詞:線程分布式

        生桂勇

        摘 要:Agent作為一種全新的分布式計(jì)算模型,其優(yōu)越的性能受到越來(lái)越多的重視。Java語(yǔ)言的平臺(tái)獨(dú)立性、對(duì)象序列化及動(dòng)態(tài)類裝載等機(jī)制,為設(shè)計(jì)和研究基于Agent的分布式計(jì)算提供了獨(dú)特的作用。首先分析Agent的工作原理,并設(shè)計(jì)一個(gè)應(yīng)用Agent計(jì)算矩陣乘法的實(shí)例,驗(yàn)證了Agent的特性。實(shí)驗(yàn)結(jié)果表明,基于Agent的分布式計(jì)算在運(yùn)行效率、容錯(cuò)性以及平臺(tái)獨(dú)立性方面都有良好的表現(xiàn)。

        關(guān)鍵詞:Java;Agent;線程;分布式

        中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1004-373X(2009)12-052-03

        Distributed Computing Based on Agent

        SHENG Guiyong

        (Jianghai Polytechnic College,Yangzhou,225101,China)

        Abstract:As a novel paradigm for distributed computing,Agent exhibits some excellent characteristics and receives attention increasingly.The platform-independent of Java language,and object serialization mechanisms such as dynamic loading category provide a unique role for the design and research of Agent-based distributed computing.This paper first analyses the working principle of Agent,then designs an example of calculation of matrix multiplication by using Agent to verify the characteristics of the Agent.The results show that Agent-based distributed computing in operating efficiency,fault tolerance,as well as the platform-independent has good performance.

        Keywords:Java;Agent;thread;distributed

        0 引 言

        支持分布式應(yīng)用軟件開(kāi)發(fā)的環(huán)境及工具層出不窮,它們?cè)谝欢ǔ潭壬蠟榉植际綉?yīng)用軟件設(shè)計(jì)和開(kāi)發(fā)提供了方便,但它們也在很多方面,尤其是在面向?qū)ο蟆踩院涂梢浦残缘确矫娲嬖谥蛔恪,F(xiàn)代網(wǎng)絡(luò)技術(shù)的高速發(fā)展,特別是Internet的日益普及,推動(dòng)了分布式計(jì)算的研究。移動(dòng)Agent作為全新的分布式計(jì)算工具,通過(guò)將自身代碼、狀態(tài)傳送到遠(yuǎn)程主機(jī),而遠(yuǎn)程主機(jī)本地執(zhí)行的方式克服了client/server結(jié)構(gòu)的不足之處,因此成為分布式計(jì)算的主要發(fā)展方向之一。最初實(shí)現(xiàn)移動(dòng)Agent的工具語(yǔ)言主要是Tcl、Scheme等。Java的出現(xiàn)改變了這一切,由于Java語(yǔ)言的平臺(tái)無(wú)關(guān)性、多線程及對(duì)象序列化機(jī)制等特點(diǎn)使之成為實(shí)現(xiàn)移動(dòng)Agent的首選語(yǔ)言。目前,大部分商業(yè)性和研究性的移動(dòng)Agent系統(tǒng)都是基于Java語(yǔ)言,例如IBM公司的Aglets和General Magic公司的Odyssey等,Java為網(wǎng)絡(luò)世界帶來(lái)了可靠的面向?qū)ο蟮某绦蛟O(shè)計(jì)方式。

        討論Agent的機(jī)制和實(shí)現(xiàn),并把Agent用于矩陣的分布式計(jì)算。分析表明,基于Agent的分布式計(jì)算在運(yùn)行效率、容錯(cuò)性以及平臺(tái)獨(dú)立性方面都有良好的表現(xiàn)。

        1 Agent

        目前,仍然沒(méi)有一個(gè)關(guān)于Agent的統(tǒng)一定義,就像什么是智能一樣。一般認(rèn)為Agent是一種在分布式系統(tǒng)或協(xié)作系統(tǒng)中能持續(xù)自主發(fā)揮作用的計(jì)算機(jī)主體,即軟件智能體。它具有以下基本特征:

        (1) 自治性(Autonomy);

        (2) 社會(huì)能力(Social Ability);

        (3) 反應(yīng)能力(Reactivity);

        (4) 基于目標(biāo)(Goal Directed Behavior)的自發(fā)行為(Pro-activeness)。

        1.1 移動(dòng)Agent

        移動(dòng)Agent是一種獨(dú)立的計(jì)算機(jī)程序,它可以自主地在異構(gòu)網(wǎng)絡(luò)上按照一定的規(guī)程移動(dòng),尋找合適的計(jì)算機(jī)資源、信息資源或軟件資源,利用與這些資源同處一臺(tái)主機(jī)或網(wǎng)絡(luò)的優(yōu)勢(shì),處理或使用這些資源,代表用戶完成特定的任務(wù)。換句話說(shuō),它擁有一個(gè)顯著的特點(diǎn),移動(dòng)性(Mobility),即Agent可以從一個(gè)主機(jī)移動(dòng)到另一個(gè)主機(jī)而保持其內(nèi)部狀態(tài)不變,它可以攜帶數(shù)據(jù)和遠(yuǎn)程執(zhí)行的智能指令(多數(shù)情況下就是它本身)。移動(dòng)Agent除了具有Agent的特征外,還具有以下優(yōu)點(diǎn):

        (1) 節(jié)省帶寬。移動(dòng)Agent移動(dòng)到工作服務(wù)器端,并把最終數(shù)據(jù)傳回客戶機(jī),可以節(jié)省通信帶寬;

        (2) 節(jié)省時(shí)間。主要是因?yàn)橐苿?dòng)Agent減少了網(wǎng)絡(luò)傳輸,在規(guī)模較大的數(shù)據(jù)庫(kù)操作中Agent能實(shí)現(xiàn)本地操作;

        (3) 減少延遲。移動(dòng)Agent移動(dòng)到服務(wù)器端,直接傳回最終結(jié)果,避免了中間數(shù)據(jù)的傳輸延遲;

        (4) 異步方式。一旦移動(dòng)Agent從客戶端傳輸?shù)搅硪慌_(tái)主機(jī)上,這臺(tái)機(jī)器就可以與網(wǎng)絡(luò)斷開(kāi)連接,直至想回收Agent或再次傳送Agent;

        (5) 負(fù)載平衡。移動(dòng)Agent能輕易地從一個(gè)平臺(tái)移動(dòng)到另一個(gè)平臺(tái),它們帶著自身代碼移動(dòng)到目的機(jī)器上無(wú)需預(yù)先安裝就能運(yùn)行,可以很方便地實(shí)現(xiàn)負(fù)載平衡;

        (6) 動(dòng)態(tài)配置。移動(dòng)Agent可以感知環(huán)境的變化并做出反應(yīng),多個(gè)移動(dòng)Agent可以動(dòng)態(tài)地調(diào)整分布,以維持最優(yōu)配置;

        盡管上述優(yōu)點(diǎn)沒(méi)有一個(gè)是移動(dòng)Agent所惟一擁有的,但是沒(méi)有一種技術(shù)能像移動(dòng)Agent一樣同時(shí)具備以上6個(gè)優(yōu)點(diǎn)。

        1.2 基于移動(dòng)Agent的分布式計(jì)算模式

        移動(dòng)Agent模式的關(guān)鍵特征就是網(wǎng)絡(luò)中的任一主機(jī)都擁有處理資源、處理器和方法的任意組合的高度靈活性。方法(在移動(dòng)Agent的形式下)沒(méi)有鎖定在一臺(tái)主機(jī)上,而是在整個(gè)網(wǎng)絡(luò)內(nèi)可共享。

        移動(dòng)Agent模式為分布式系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)和維護(hù)都帶來(lái)了活力,該模式有如下的優(yōu)點(diǎn):

        (1) 減輕網(wǎng)絡(luò)負(fù)載。移動(dòng)Agent可以將一個(gè)會(huì)話過(guò)程打包,然后將其發(fā)送到目標(biāo)主機(jī)上進(jìn)行本地交互。此外,當(dāng)進(jìn)行遠(yuǎn)程主機(jī)的大量數(shù)據(jù)處理時(shí),這些數(shù)據(jù)不應(yīng)在網(wǎng)絡(luò)上傳來(lái)傳去,而應(yīng)在本地處理完成;

        (2) 克服網(wǎng)絡(luò)隱患。移動(dòng)Agent技術(shù)可以從中央控制器傳送到各局部點(diǎn)激活,并在當(dāng)?shù)刂苯訄?zhí)行控制器的指令;

        (3) 封裝協(xié)議。數(shù)據(jù)在分布式系統(tǒng)中進(jìn)行交換時(shí),每一臺(tái)主機(jī)都有自己的網(wǎng)絡(luò)協(xié)議,該協(xié)議將對(duì)傳出的數(shù)據(jù)進(jìn)行編碼,對(duì)傳入的數(shù)據(jù)進(jìn)行解釋。移動(dòng)Agent能夠直接遷移到遠(yuǎn)程的主機(jī),建立起一個(gè)基于私有規(guī)程的數(shù)據(jù)傳輸通道;

        (4) 具有應(yīng)變能力。移動(dòng)Agent具備感知其運(yùn)行環(huán)境,并對(duì)環(huán)境變化做出反應(yīng)的能力;

        (5) 具有自然異構(gòu)性。網(wǎng)絡(luò)計(jì)算平臺(tái)往往是異構(gòu)的,由于移動(dòng)Agent通常獨(dú)立于計(jì)算機(jī)和傳輸層,而僅僅依賴于其運(yùn)行環(huán)境,所以移動(dòng)Agent提供了系統(tǒng)無(wú)縫集成的最優(yōu)條件;

        (6) 異步自主運(yùn)行。移動(dòng)設(shè)備上的任務(wù)可以嵌入到移動(dòng)Agent中去,然后將它通過(guò)網(wǎng)絡(luò)派遣出去,此后,移動(dòng)Agent就獨(dú)立于生成它的過(guò)程,并可異步自主操作;

        (7) 健壯性和容錯(cuò)性。移動(dòng)Agent具有對(duì)非預(yù)期狀態(tài)和事件的應(yīng)變能力,這是更容易創(chuàng)建健壯和容錯(cuò)性好的分布式系統(tǒng)。

        由于移動(dòng)Agent技術(shù)具有上述優(yōu)點(diǎn),它在電子商務(wù)、并行處理、移動(dòng)計(jì)算等應(yīng)用領(lǐng)域具有很好的發(fā)展前景。

        2 Aglet

        Aglet是由IBM公司用純Java開(kāi)發(fā)的移動(dòng)Agent技術(shù),并提供實(shí)用的平臺(tái)——Aglet Workbench,讓人們開(kāi)發(fā)或執(zhí)行移動(dòng)Agent系統(tǒng)。Aglet這個(gè)詞是由“Agent”和“Applet”合成。簡(jiǎn)單地說(shuō),Aglet就是具有Agent行為的Java Applet對(duì)象。但Aglet同時(shí)傳送代碼及其狀態(tài),而Applet只傳送代碼。Aglet以線程的形式產(chǎn)生于一臺(tái)機(jī)器上,可隨時(shí)暫停執(zhí)行的工作,而后整個(gè)Aglet可以被分派到另一臺(tái)機(jī)器上,再重新啟動(dòng)執(zhí)行任務(wù)。因?yàn)樗加械氖蔷€程,所以不會(huì)消耗太多的系統(tǒng)資源。

        2.1 Aglet系統(tǒng)框架

        由Aglet的系統(tǒng)框架(見(jiàn)圖1)可以看出Aglet的執(zhí)行分為若干階段。

        圖1 Aglet的系統(tǒng)框架

        首先當(dāng)一個(gè)正在執(zhí)行的Aglet想要將自己遷移到遠(yuǎn)端時(shí),會(huì)對(duì)Aglet Runtime層發(fā)出請(qǐng)求;接著Aglet Runtime層將Aglet的狀態(tài)信息與代碼轉(zhuǎn)換成序列化(Serialized)的字節(jié)數(shù)組。這時(shí)如果請(qǐng)求成功,系統(tǒng)將字節(jié)數(shù)組傳送至ATCI(Agent Transport and Communication Interface)層處理,這一層可使用的ATP(Agent Transports and Protocol)接口。接著,系統(tǒng)會(huì)將字節(jié)數(shù)組附上相關(guān)的系統(tǒng)信息,如系統(tǒng)名稱以及Aglet的id等,并以比特流方式通過(guò)網(wǎng)絡(luò)傳至遠(yuǎn)端機(jī)器,遠(yuǎn)端機(jī)器利用ATCI層提供的ATP接口,接收到傳來(lái)的字節(jié)數(shù)組及系統(tǒng)信息;最后Aglet Runtime層對(duì)字節(jié)數(shù)組反序列化,得到Aglet的狀態(tài)信息與代碼,此時(shí)Aglet可以在遠(yuǎn)端機(jī)器上執(zhí)行。

        2.2 Aglet對(duì)象模型

        Aglet系統(tǒng)提供了一個(gè)上下文環(huán)境(Context)來(lái)管理Aglet的基本行為,如創(chuàng)建(Creat)Aglet、復(fù)制(Clone)Aglet、分派(Dispatch)Aglet到遠(yuǎn)端機(jī)器、召回(Retract)遠(yuǎn)端的Aglet、暫停(Deactive)、喚醒(Active)Aglet,以及清除(Dispose)Aglet等,過(guò)程如圖2所示。

        圖2 Aglet的對(duì)象模型

        Aglet與Aglet之間的通信,是使用消息傳遞的方式來(lái)傳遞消息對(duì)象的。從安全角度考慮,Aglet并非讓外界直接存取其信息,而是通過(guò)一個(gè)代理(Proxy)提供相應(yīng)的接口與外界溝通。這樣Aglet的所在位置就會(huì)透明化,也就是Aglet需要與遠(yuǎn)端的Aglet溝通時(shí),只在本地主機(jī)的上下文環(huán)境中產(chǎn)生對(duì)應(yīng)遠(yuǎn)端Aglet的代理,并與此代理溝通即可,不必直接處理網(wǎng)絡(luò)連接與通信的問(wèn)題。

        3 矩陣乘法的分布式計(jì)算實(shí)例

        為驗(yàn)證Agent的特性,設(shè)計(jì)一個(gè)應(yīng)用Aglet計(jì)算矩陣乘法的實(shí)例。

        首先,對(duì)任務(wù)進(jìn)行分解,并創(chuàng)建一個(gè)主Agent;然后主Agent創(chuàng)建從Agent,并將任務(wù)分派給它們,從Agent完成計(jì)算后把結(jié)果返回給主Agent。然而主Agent等待從Agent的回答,將計(jì)算結(jié)果拼接起來(lái)組成計(jì)算結(jié)果,并將得到的結(jié)果返回給用戶。主-從模式如圖3所示。

        圖3 主-從模式

        為此,在局域網(wǎng)中兩臺(tái)機(jī)器運(yùn)行,一臺(tái)為Master,另一臺(tái)為Slave。在Master端啟動(dòng)Aglet平臺(tái)創(chuàng)建Matrix類,并創(chuàng)建Calculator類,發(fā)送到Slave機(jī)器上運(yùn)行。Master機(jī)器將Slave機(jī)器上運(yùn)行完成后的Agent回收(結(jié)果),再與本機(jī)上的運(yùn)行結(jié)果合并,并顯示結(jié)果。

        Master端的Matrix類的基本算法如下:

        handleMessage(msg);//處理消息,根據(jù)消息選擇執(zhí)行程序

        setMessage(msg);//窗口顯示消息

        onCreation(obj);//設(shè)置初始化窗口

        createGUI();//創(chuàng)建窗口

        matrixrun();//本地計(jì)算部分

        startTrip(msg);//遠(yuǎn)程計(jì)算部分,發(fā)送Agent,即Calculator到遠(yuǎn)端

        Output(msg);//顯示最后計(jì)算結(jié)果

        Slave端的Calculator類的基本算法如下:

        onCreation(obj);//初始化

        run();//計(jì)算并返回結(jié)果

        矩陣的計(jì)算過(guò)程是Master端的Matrix類與Slave端的Calculator類之間的交互過(guò)程,其關(guān)系如圖4所示。

        圖4 矩陣的計(jì)算

        4 結(jié) 語(yǔ)

        Java語(yǔ)言作為跨平臺(tái)網(wǎng)絡(luò)編程語(yǔ)言,其自身所具有的很多特點(diǎn)與實(shí)現(xiàn)Agent的需要恰好完全吻合,使其成為設(shè)計(jì)移動(dòng)Agent系統(tǒng)的首選語(yǔ)言。與基于Socket或RMI實(shí)現(xiàn)分布式計(jì)算不同的是,Aglet通過(guò)傳遞代碼到遠(yuǎn)程計(jì)算機(jī)而不是傳送數(shù)據(jù)到遠(yuǎn)程計(jì)算機(jī)上進(jìn)行分布式計(jì)算。隨著移動(dòng)Agent技術(shù)的日益成熟,Agent必將在許多領(lǐng)域產(chǎn)生更大的影響。

        參考文獻(xiàn)

        [1]Sohda Y,Nakada H,Matsuoka S.Implementation of a Portable Software in Java[A].Java Grande/IS0PE′01[C].2001:163-172.

        [2]Bubak M,Kurzyniec D,Luszczek P,et al.Creating Java to Native Code Interfaces with JANET[J].Scientific Programming,2001(1):39-50.

        [3]李三紅,吳永明,馬云龍.基于Java RMI計(jì)算模型的智能查詢技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(2):122-123.

        [4]朱聾良,邱瑜.移動(dòng)代理系統(tǒng)綜述[J].計(jì)算機(jī)研究與發(fā)展,2001,38(1):16-25.

        [5]朱福喜.J2EE經(jīng)典實(shí)例詳解[M].北京:人民郵電出版社,2003.

        [6]朱福喜,傅建明,唐曉軍.Java項(xiàng)目設(shè)計(jì)與開(kāi)發(fā)范例[M].北京:電子工業(yè)出版社,2005.

        [7]余俊,耿金花,任敬喜.利用Http隧道技術(shù)實(shí)現(xiàn)Java的分布式對(duì)象計(jì)算[J].青島大學(xué)學(xué)報(bào):工程技術(shù)版,2007,22(1):41-44.

        [8]齊德昱,謝景明.一個(gè)基于Java虛擬機(jī)的分布式計(jì)算模型[J].計(jì)算機(jī)科學(xué),2007,34(6):248-250.

        [9]何旭.基于Java遠(yuǎn)程類引用的面向?qū)ο蠓植际接?jì)算[J].四川文理學(xué)院學(xué)報(bào):自然科學(xué)版,2007,17(5):71-73.

        [10]譚昊勛,龍海洋,鄭娟.基于Java RMI的分布式計(jì)算[J].湘潭大學(xué)自然科學(xué)學(xué)報(bào),2005,27(2):59-61.

        [11]張浩,駱正虎,楊敬安.基于Java語(yǔ)言的移動(dòng)Agent開(kāi)發(fā)平臺(tái)[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2001,24(5):907-912.

        猜你喜歡
        線程分布式
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        淺談linux多線程協(xié)作
        基于DDS的分布式三維協(xié)同仿真研究
        西門子 分布式I/O Simatic ET 200AL
        Linux線程實(shí)現(xiàn)技術(shù)研究
        么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
        JAVA多線程同步解決生產(chǎn)者—消費(fèi)者問(wèn)題
        久久精品国产亚洲av影院毛片| 91久久久久无码精品露脸| 亚洲一区精品中文字幕| 天堂一区二区三区精品| 少妇愉情理伦片丰满丰满| 午夜dj在线观看免费视频| 91久久福利国产成人精品| 亚洲精品综合一区二区| 亚洲av无码成人精品国产| 永久免费观看国产裸体美女| 免费毛片性天堂| 亚洲中文字幕乱码免费看| 日本h片中文字幕在线| 亚洲色在线v中文字幕| 亚洲线精品一区二区三区八戒| 国语自产啪在线观看对白| 亚洲中文无码av永久| 国产精品免费观看久久| 久久精品免视看国产明星| 久久精品国产亚洲av试看| 欧美性猛交99久久久久99按摩| 亚洲一区精品无码色成人| 无码中文字幕av免费放| 在线观看一区二区中文字幕| 国产伦精品免编号公布| 国产一级大片免费看| 一区两区三区视频在线观看| 免费av片在线观看网址| 中文字幕爆乳julia女教师| 人妻少妇精品无码专区app| 免费国产一区二区视频| 亚洲av永久无码精品放毛片| 国产99re在线观看只有精品| 国产亚洲精品视频在线| 绝顶高潮合集videos| 亚洲av伊人久久综合密臀性色| 中文字幕乱码人妻无码久久久1 | 天堂中文а√在线| 亚洲另类自拍丝袜第五页| 国产毛片三区二区一区| 91精品亚洲成人一区二区三区|