999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Agent的分布式計算

2010-05-13 08:46:00生桂勇
現代電子技術 2009年12期

生桂勇

摘 要:Agent作為一種全新的分布式計算模型,其優越的性能受到越來越多的重視。Java語言的平臺獨立性、對象序列化及動態類裝載等機制,為設計和研究基于Agent的分布式計算提供了獨特的作用。首先分析Agent的工作原理,并設計一個應用Agent計算矩陣乘法的實例,驗證了Agent的特性。實驗結果表明,基于Agent的分布式計算在運行效率、容錯性以及平臺獨立性方面都有良好的表現。

關鍵詞:Java;Agent;線程;分布式

中圖分類號:TP311文獻標識碼:A

文章編號: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 引 言

支持分布式應用軟件開發的環境及工具層出不窮,它們在一定程度上為分布式應用軟件設計和開發提供了方便,但它們也在很多方面,尤其是在面向對象、安全性和可移植性等方面存在著不足。現代網絡技術的高速發展,特別是Internet的日益普及,推動了分布式計算的研究。移動Agent作為全新的分布式計算工具,通過將自身代碼、狀態傳送到遠程主機,而遠程主機本地執行的方式克服了client/server結構的不足之處,因此成為分布式計算的主要發展方向之一。最初實現移動Agent的工具語言主要是Tcl、Scheme等。Java的出現改變了這一切,由于Java語言的平臺無關性、多線程及對象序列化機制等特點使之成為實現移動Agent的首選語言。目前,大部分商業性和研究性的移動Agent系統都是基于Java語言,例如IBM公司的Aglets和General Magic公司的Odyssey等,Java為網絡世界帶來了可靠的面向對象的程序設計方式。

討論Agent的機制和實現,并把Agent用于矩陣的分布式計算。分析表明,基于Agent的分布式計算在運行效率、容錯性以及平臺獨立性方面都有良好的表現。

1 Agent

目前,仍然沒有一個關于Agent的統一定義,就像什么是智能一樣。一般認為Agent是一種在分布式系統或協作系統中能持續自主發揮作用的計算機主體,即軟件智能體。它具有以下基本特征:

(1) 自治性(Autonomy);

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

(3) 反應能力(Reactivity);

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

1.1 移動Agent

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

(1) 節省帶寬。移動Agent移動到工作服務器端,并把最終數據傳回客戶機,可以節省通信帶寬;

(2) 節省時間。主要是因為移動Agent減少了網絡傳輸,在規模較大的數據庫操作中Agent能實現本地操作;

(3) 減少延遲。移動Agent移動到服務器端,直接傳回最終結果,避免了中間數據的傳輸延遲;

(4) 異步方式。一旦移動Agent從客戶端傳輸到另一臺主機上,這臺機器就可以與網絡斷開連接,直至想回收Agent或再次傳送Agent;

(5) 負載平衡。移動Agent能輕易地從一個平臺移動到另一個平臺,它們帶著自身代碼移動到目的機器上無需預先安裝就能運行,可以很方便地實現負載平衡;

(6) 動態配置。移動Agent可以感知環境的變化并做出反應,多個移動Agent可以動態地調整分布,以維持最優配置;

盡管上述優點沒有一個是移動Agent所惟一擁有的,但是沒有一種技術能像移動Agent一樣同時具備以上6個優點。

1.2 基于移動Agent的分布式計算模式

移動Agent模式的關鍵特征就是網絡中的任一主機都擁有處理資源、處理器和方法的任意組合的高度靈活性。方法(在移動Agent的形式下)沒有鎖定在一臺主機上,而是在整個網絡內可共享。

移動Agent模式為分布式系統的設計,實現和維護都帶來了活力,該模式有如下的優點:

(1) 減輕網絡負載。移動Agent可以將一個會話過程打包,然后將其發送到目標主機上進行本地交互。此外,當進行遠程主機的大量數據處理時,這些數據不應在網絡上傳來傳去,而應在本地處理完成;

(2) 克服網絡隱患。移動Agent技術可以從中央控制器傳送到各局部點激活,并在當地直接執行控制器的指令;

(3) 封裝協議。數據在分布式系統中進行交換時,每一臺主機都有自己的網絡協議,該協議將對傳出的數據進行編碼,對傳入的數據進行解釋。移動Agent能夠直接遷移到遠程的主機,建立起一個基于私有規程的數據傳輸通道;

(4) 具有應變能力。移動Agent具備感知其運行環境,并對環境變化做出反應的能力;

(5) 具有自然異構性。網絡計算平臺往往是異構的,由于移動Agent通常獨立于計算機和傳輸層,而僅僅依賴于其運行環境,所以移動Agent提供了系統無縫集成的最優條件;

(6) 異步自主運行。移動設備上的任務可以嵌入到移動Agent中去,然后將它通過網絡派遣出去,此后,移動Agent就獨立于生成它的過程,并可異步自主操作;

(7) 健壯性和容錯性。移動Agent具有對非預期狀態和事件的應變能力,這是更容易創建健壯和容錯性好的分布式系統。

由于移動Agent技術具有上述優點,它在電子商務、并行處理、移動計算等應用領域具有很好的發展前景。

2 Aglet

Aglet是由IBM公司用純Java開發的移動Agent技術,并提供實用的平臺——Aglet Workbench,讓人們開發或執行移動Agent系統。Aglet這個詞是由“Agent”和“Applet”合成。簡單地說,Aglet就是具有Agent行為的Java Applet對象。但Aglet同時傳送代碼及其狀態,而Applet只傳送代碼。Aglet以線程的形式產生于一臺機器上,可隨時暫停執行的工作,而后整個Aglet可以被分派到另一臺機器上,再重新啟動執行任務。因為它占有的是線程,所以不會消耗太多的系統資源。

2.1 Aglet系統框架

由Aglet的系統框架(見圖1)可以看出Aglet的執行分為若干階段。

圖1 Aglet的系統框架

首先當一個正在執行的Aglet想要將自己遷移到遠端時,會對Aglet Runtime層發出請求;接著Aglet Runtime層將Aglet的狀態信息與代碼轉換成序列化(Serialized)的字節數組。這時如果請求成功,系統將字節數組傳送至ATCI(Agent Transport and Communication Interface)層處理,這一層可使用的ATP(Agent Transports and Protocol)接口。接著,系統會將字節數組附上相關的系統信息,如系統名稱以及Aglet的id等,并以比特流方式通過網絡傳至遠端機器,遠端機器利用ATCI層提供的ATP接口,接收到傳來的字節數組及系統信息;最后Aglet Runtime層對字節數組反序列化,得到Aglet的狀態信息與代碼,此時Aglet可以在遠端機器上執行。

2.2 Aglet對象模型

Aglet系統提供了一個上下文環境(Context)來管理Aglet的基本行為,如創建(Creat)Aglet、復制(Clone)Aglet、分派(Dispatch)Aglet到遠端機器、召回(Retract)遠端的Aglet、暫停(Deactive)、喚醒(Active)Aglet,以及清除(Dispose)Aglet等,過程如圖2所示。

圖2 Aglet的對象模型

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

3 矩陣乘法的分布式計算實例

為驗證Agent的特性,設計一個應用Aglet計算矩陣乘法的實例。

首先,對任務進行分解,并創建一個主Agent;然后主Agent創建從Agent,并將任務分派給它們,從Agent完成計算后把結果返回給主Agent。然而主Agent等待從Agent的回答,將計算結果拼接起來組成計算結果,并將得到的結果返回給用戶。主-從模式如圖3所示。

圖3 主-從模式

為此,在局域網中兩臺機器運行,一臺為Master,另一臺為Slave。在Master端啟動Aglet平臺創建Matrix類,并創建Calculator類,發送到Slave機器上運行。Master機器將Slave機器上運行完成后的Agent回收(結果),再與本機上的運行結果合并,并顯示結果。

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

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

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

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

createGUI();//創建窗口

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

startTrip(msg);//遠程計算部分,發送Agent,即Calculator到遠端

Output(msg);//顯示最后計算結果

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

onCreation(obj);//初始化

run();//計算并返回結果

矩陣的計算過程是Master端的Matrix類與Slave端的Calculator類之間的交互過程,其關系如圖4所示。

圖4 矩陣的計算

4 結 語

Java語言作為跨平臺網絡編程語言,其自身所具有的很多特點與實現Agent的需要恰好完全吻合,使其成為設計移動Agent系統的首選語言。與基于Socket或RMI實現分布式計算不同的是,Aglet通過傳遞代碼到遠程計算機而不是傳送數據到遠程計算機上進行分布式計算。隨著移動Agent技術的日益成熟,Agent必將在許多領域產生更大的影響。

參考文獻

[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].計算機應用與軟件,2005,22(2):122-123.

[4]朱聾良,邱瑜.移動代理系統綜述[J].計算機研究與發展,2001,38(1):16-25.

[5]朱福喜.J2EE經典實例詳解[M].北京:人民郵電出版社,2003.

[6]朱福喜,傅建明,唐曉軍.Java項目設計與開發范例[M].北京:電子工業出版社,2005.

[7]余俊,耿金花,任敬喜.利用Http隧道技術實現Java的分布式對象計算[J].青島大學學報:工程技術版,2007,22(1):41-44.

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

[9]何旭.基于Java遠程類引用的面向對象分布式計算[J].四川文理學院學報:自然科學版,2007,17(5):71-73.

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

[11]張浩,駱正虎,楊敬安.基于Java語言的移動Agent開發平臺[J].合肥工業大學學報:自然科學版,2001,24(5):907-912.

主站蜘蛛池模板: 欧美色视频网站| 最近最新中文字幕免费的一页| 欧美精品在线观看视频| 一区二区三区国产| 国产福利在线免费| 久久这里只有精品8| 成·人免费午夜无码视频在线观看 | 亚洲天堂日韩在线| 黄色网址手机国内免费在线观看| 国产美女在线观看| 青青久视频| 久久国语对白| 99精品视频播放| 欧美性天天| 国产精品第一区| 亚洲人成色在线观看| 成人一区专区在线观看| 91小视频在线观看| yy6080理论大片一级久久| 欧美色综合网站| 免费福利视频网站| 国产日韩久久久久无码精品| 亚洲欧美在线综合一区二区三区| 在线亚洲精品自拍| 日韩成人在线视频| 天堂在线www网亚洲| 国产一线在线| 成人精品免费视频| 国产在线无码av完整版在线观看| 九九九久久国产精品| 久久美女精品| 欧美另类精品一区二区三区| 免费一级毛片不卡在线播放| 2018日日摸夜夜添狠狠躁| 最新精品久久精品| 久久免费精品琪琪| 99热这里只有免费国产精品| 97视频精品全国在线观看| 久久国产精品电影| 99久久无色码中文字幕| 精品欧美日韩国产日漫一区不卡| 精品精品国产高清A毛片| 久久一本日韩精品中文字幕屁孩| 国产一级妓女av网站| 国产95在线 | 四虎免费视频网站| 国产一区在线视频观看| 国产欧美日韩专区发布| 欧美日韩精品一区二区在线线| 99精品视频在线观看免费播放| 欧美日韩精品一区二区在线线 | 天天做天天爱夜夜爽毛片毛片| 欧美人与动牲交a欧美精品| 欧美色综合久久| 国产浮力第一页永久地址 | 亚洲性视频网站| 婷婷激情五月网| 激情五月婷婷综合网| 国产美女精品一区二区| 久久久受www免费人成| 欧美日韩国产成人高清视频 | 日韩欧美中文| 亚洲男人在线天堂| 91 九色视频丝袜| 久久黄色一级视频| 国产视频一区二区在线观看| 国产午夜在线观看视频| 久久熟女AV| 日本免费新一区视频| 欧美性精品不卡在线观看| 视频二区欧美| 国产精品一区二区久久精品无码| 国产色伊人| 成人毛片免费在线观看| 免费国产好深啊好涨好硬视频| 欧美黄色网站在线看| 久久亚洲高清国产| 亚洲国产天堂在线观看| 五月婷婷精品| 亚洲区第一页| 亚洲成a人在线播放www| 亚洲Av激情网五月天|