基于Agent的分布式计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Agent 的分布式计算
生桂勇
(江海职业技术学院 江苏扬州 225101)
摘 要:A g ent 作为一种全新的分布式计算模型,其优越的性能受到越来越多的重视。Java 语言的平台独立性、对象序列化及动态类装载等机制,为设计和研究基于A gent 的分布式计算提供了独特的作用。首先分析A gent 的工作原理,并设计一个应用A gent 计算矩阵乘法的实例,验证了A g ent 的特性。实验结果表明,基于Ag ent 的分布式计算在运行效率、容错性以及平台独立性方面都有良好的表现。
关键词:Java;Ag ent;线程;分布式
中图分类号:T P311 文献标识码:A 文章编号:1004 373X(2009)12 052 03
Distributed C omputing Based on Agent
SH ENG Guiy ong
(Ji ang hai P olyt echnic Co llege,Yang zho u,225101,China)
Abstract :A s a nov el paradig m for distr ibuted computing,Ag ent ex hibits some ex cellent character istics and receives atten t ion increasingly.T he platfo rm independent of Jav a lang uag e,and object serializatio n mechanisms such as dynamic loading cat e g or y pro vide a unique ro le for the desig n and r esear ch o f A g ent based distributed computing.T his paper fir st analyses the wo rking pr inciple o f A gent,then desig ns an example of ca lculatio n of matrix multiplicatio n by using A gent to v erif y t he char ac ter istics of the A gent.T he results show that Ag ent based distr ibuted co mputing in o per ating efficiency,fault tolerance,as well as t he platfo rm independent has go od per formance.
Keywords :Jav a;A g ent;thread;distributed
收稿日期:2008 09 24
0 引 言
支持分布式应用软件开发的环境及工具层出不穷,它们在一定程度上为分布式应用软件设计和开发提供
了方便,但它们也在很多方面,尤其是在面向对象、安全性和可移植性等方面存在着不足。现代网络技术的高速发展,特别是Internet 的日益普及,推动了分布式计算的研究。移动Ag ent 作为全新的分布式计算工具,通过将自身代码、状态传送到远程主机,而远程主机本地执行的方式克服了client/ser ver 结构的不足之处,因此成为分布式计算的主要发展方向之一。最初实现移动Agent 的工具语言主要是Tcl 、Schem e 等。Java 的出现改变了这一切,由于Jav a 语言的平台无关性、多线程及对象序列化机制等特点使之成为实现移动Ag ent 的首选语言。目前,大部分商业性和研究性的移动Agent 系统都是基于Java 语言,例如IBM 公司的Aglets 和General Mag ic 公司的Odyssey 等,Java 为网络世界带来了可靠的面向对象的程序设计方式。讨论Ag ent 的机制和实现,并把Ag ent 用于矩阵的分布式计算。分析表明,基于Agent 的分布式计算
在运行效率、容错性以及平台独立性方面都有良好的表现。1 Agent
目前,仍然没有一个关于Agent 的统一定义,就像什么是智能一样。一般认为Agent 是一种在分布式系统或协作系统中能持续自主发挥作用的计算机主体,即软件智能体。它具有以下基本特征:
(1)自治性(Autonom y);(2)社会能力(Social Ability);(3)反应能力(Reactivity);
(4)基于目标(Goal Dir ected Behav io r)的自发行为(Pro activeness)。
1.1 移动Agent
移动A gent 是一种独立的计算机程序,它可以自主地在异构网络上按照一定的规程移动,寻找合适的计算机资源、信息资源或软件资源,利用与这些资源同处一台主机或网络的优势,处理或使用这些资源,代表用户完成特定的任务。换句话说,它拥有一个显著的特点,移动性(M obility ),即Ag ent 可以从一个主机移动到另一个主机而保持其内部状态不变,它可以携带数据
软件技术生桂勇:基于A gent 的分布式计算
和远程执行的智能指令(多数情况下就是它本身)。移动Agent除了具有A gent的特征外,还具有以下优点:
(1)节省带宽。移动Agent移动到工作服务器端,并把最终数据传回客户机,可以节省通信带宽;
(2)节省时间。主要是因为移动Agent减少了网络传输,在规模较大的数据库操作中Ag ent能实现本地操作;
(3)减少延迟。移动Agent移动到服务器端,直接传回最终结果,避免了中间数据的传输延迟;
(4)异步方式。一旦移动Ag ent从客户端传输到另一台主机上,这台机器就可以与网络断开连接,直至想回收Agent或再次传送Agent;
(5)负载平衡。移动A gent能轻易地从一个平台移动到另一个平台,它们带着自身代码移动到目的机器上无需预先安装就能运行,可以很方便地实现负载平衡;
(6)动态配置。移动A gent可以感知环境的变化并做出反应,多个移动Ag ent可以动态地调整分布,以维持最优配置;
尽管上述优点没有一个是移动A gent所惟一拥有的,但是没有一种技术能像移动Ag ent一样同时具备以上6个优点。
1.2 基于移动Ag ent的分布式计算模式
移动Ag ent模式的关键特征就是网络中的任一主机都拥有处理资源、处理器和方法的任意组合的高度灵活性。方法(在移动Agent的形式下)没有锁定在一台主机上,而是在整个网络内可共享。
移动Ag ent模式为分布式系统的设计,实现和维护都带来了活力,该模式有如下的优点:
(1)减轻网络负载。移动Ag ent可以将一个会话过程打包,然后将其发送到目标主机上进行本地交互。此外,当进行远程主机的大量数据处理时,这些数据不应在网络上传来传去,而应在本地处理完成;
(2)克服网络隐患。移动Ag ent技术可以从中央控制器传送到各局部点激活,并在当地直接执行控制器的指令;
(3)封装协议。数据在分布式系统中进行交换时,每一台主机都有自己的网络协议,该协议将对传出的数据进行编码,对传入的数据进行解释。移动A gent能够直接迁移到远程的主机,建立起一个基于私有规程的数据传输通道;
(4)具有应变能力。移动Ag ent具备感知其运行环境,并对环境变化做出反应的能力;
(5)具有自然异构性。网络计算平台往往是异构的,由于移动Agent通常独立于计算机和传输层,而仅仅依赖于其运行环境,所以移动A gent提供了系统无缝集成的最优条件;
(6)异步自主运行。移动设备上的任务可以嵌入到移动Ag ent中去,然后将它通过网络派遣出去,此后,移动Agent就独立于生成它的过程,并可异步自主操作;
(7)健壮性和容错性。移动Ag ent具有对非预期状态和事件的应变能力,这是更容易创建健壮和容错性好的分布式系统。
由于移动Agent技术具有上述优点,它在电子商务、并行处理、移动计算等应用领域具有很好的发展前景。
2 Aglet
Ag let是由IBM公司用纯Java开发的移动Agent技术,并提供实用的平台 Aglet Workbench,让人们开发或执行移动Agent系统。Aglet这个词是由Agent!和Applet!合成。简单地说,Aglet就是具有Agent行为的Java Applet对象。但Aglet同时传送代码及其状态,而Applet只传送代码。Aglet以线程的形式产生于一台机器上,可随时暂停执行的工作,而后整个Aglet可以被分派到另一台机器上,再重新启动执行任务。因为它占有的是线程,所以不会消耗太多的系统资源。
2.1 Ag let系统框架
由Aglet的系统框架(见图1)可以看出A glet的执
行分为若干阶段。
图1 A g let的系统框架
首先当一个正在执行的Aglet想要将自己迁移到远端时,会对Aglet Runtime层发出请求;接着Ag let Runtime层将Ag let的状态信息与代码转换成序列化(Serialized)的字节数组。这时如果请求成功,系统将字节数组传送至AT CI(Agent T ranspo rt and Co mmu nication Interface)层处理,这一层可使用的AT P(A gent Transports and Pr otoco l)接口。接着,系统会将字节数组附上相关的系统信息,如系统名称以及Ag let 的id等,并以比特流方式通过网络传至远端机器,远端机器利用A TCI层提供的ATP接口,接收到传来的字
∀现代电子技术#2009年第12期总第299期 计算机应用技术