




已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)移动agent系统freema的设计和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文首先介绍了移动a g e n t 的基本概念、技术优势、面临的挑战。然后,本文提 出一种基于a g e n t 和p l a c e 的层次结构移动a g e n t 模型,以及基于此模型的移动a g e n t 系统f r e e m a 。在该模型中,又把移动a g e n t 被拆分为主a g e n t 和兄弟a g e n t ,分别对 应是移动a g e n t 的行为集和资源集,并赋予该模型一定的容错能力。另外,介绍了移 动a g e n t 模块化结构设计思想,提出了一种动态加载模块、适合于a g e n t 迁移过程 实现和并发执行的调度方法,合理地运用模块复用思想,减少不必要的数据及代码迁 移,缩短了移动a g e n t 的平均执行时间。之后,又为f r e e m a 提供了种新的名字解 析机制和基于孤儿检测的控制机制。最后,为f r e e m a 提供了基于时间戳的安全机制。 我们提出的动态加载a g e n t 模块的思想以及层次影子、层次p r o x y 的孤儿检测控 制机制,充分适应了网络环境的特点,具有很好的稳定性、容错能力,可控性很强, 还具有良好的可扩展性。 关键词a g e n t :移动a g e n t ;f r e e m a 北京工业大学硕士学位论文 a b s t r a c t in p a r ti ,i in t r o d u e et h eb a s i cc o n c e p t s t e c h n o i o g ys u p e ri o ri t ya n d c h a ii e n g e so fm o b iiea g e n t w ep r o v i d eah i e r a r c h i c a im o d e ib a s e do na g e n t a n dp ia c e ,a n df r e e m a am o b ii ea g e n ts y s t e mb a a e do ni tf nt h em o d e i w e d iv i d em o b ii ea g e n ti n t om a ( m a i na g e n t ) a n db a ( b r o t h e ra g e n t ) w i t hd e f i n i t e f a u f tt o f e r a n c e c o r r e s p o n d i n gt o m o b ii ea g e n t sb e h a v i o ra n dr e s o u r c e s 。i n a d d i t i o n w eb r in gf o r w a r dam o d e ib a a e do nm o d u i e sw h e nc o n s t r u c t in ga g e n t s ao o t l c l f rr e n ts c h e d uj em e t h o di sp r e s e n t e d ,an e wm e t h o do fc r e a t in ga g e n t s b y u s in gc o m b in a t i o no fd ir e c ti o a da n dd y n a m i ci o a di sp r o v i d e d b yw h i c h t h ea g e n tm i g r a t i o nc a nb ee a s ii yi m p i e m e n t e d m o s to ft h eu n n e c e s s a r y t r a n s m is s i o no fc o d e sa n dd a t ac a nb ea v e i d e db ym o d u ier e u s e c o n s e q u e n t i y t h ee x e c u t i n gp e r i o do fm o b ;l ea g e n t s isr e d u c e da n dt h e ir e f f i o i e n c y js i m p r o v e d i np a r tiiia n di v w eo f f e ran e wn a m er e s o i u t i o na n dc e n t r e im e t h o d b a s e do no r p h a nd e t e c tio n int h ee n d ,w ea d o p tin o r e m e n t aitim e s t a m pw hic h c a np r o t e c te x e c u t es y s t e mf r o md a m a g e so fh o s t if em o b ii ea g e n t s t h em e t h o dt h a tu s e sc o m b in a t i o no fd ir e c tl c a da n dd y n a m i ci c a dw h e n c o n s t r u o t i n gm o b ii ea g e n t s 。t h ec e n t r e lw a yo fh i e r a r c hs h a d o w sa n dp r o x y , a r ef u ii ya d a p t i v et on e t w o r ke n v ir o n m e n t t h e yh a v eg o o ds t a b iii t y ,f a u i t t o e r a n c e ,c e n t r e ij a b ii i t ya n de x t e n d a b j t y , k e y w o r d s :a g e n t 。m o b i iea g e n t f r e e m a 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文。 j 不包含其他 人已经发表或撰写过的研究成果,电不包含为获得北京_ _ | ,业火学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名: 日期:趣垒:7 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 虢产锄签垆验日期 醯 吁 1 1 基本概念 第1 章绪论 近年来,计算机网络的规模以前所未有的速度得以发展。网络的发展促进了信 息的交流和数据的共享,然而,其规模增长和形式多样性并没有直接带来计算能力 的相应提高。 目前,人们正在研究和探索新的网络编程技术,以使网络更加有效地发挥作用。 通过将执行代码从客户端传送至服务器的这种新的c l i e n t s e r v e r 程序执行思想 已得到广大从事智能网络服务的研究和开发人员的认可,基于移动a g e n t 的计算 被视为该思想的一个代表。 从广义上来讲,移动a g e n t 是计算机网络中的程序,它能够自动地从一个站点 迁移到另一个站点,并代表其用户执行计算。 移动a g e n t 是一种软件对象,它能携带执行代码、数据和运行状态,在复杂的 网络系统中自治的、有目的迁移,并能响应外部事件,在迁移过程中能保持其状态 的一致性。 简单地说,移动a g e n t 是一个能在异构网络中自主地从一台丰机迁移到另一台 主机,并可与其他a g e n t 或资源交互的程序,它实际上是a g e n t 技术与分布式计算 技术的混合体。 移动a g e n t 技术将服务请求a g e n t 动态地移到服务器端执行,使此a g e n t 较少 依赖网络传输这一之间环节而直接面对要访问的服务器资源,从而避免了大量数据 的网络传送,降低了系统对网络带宽的依赖。 移动a g e n t 不需要统一的调度,有用户创建的a g e n t 可以异步地在不同的节点 上运行,待任务完成后在将结果传送给用户。为了完成某项任务,用户可以创建多个 a g e n t ,同时在一个或多个节点上运行,形成并行求解的能力。此外,它还有自治性 北京工业大学硕士学位论文 和智能路由等特性。移动a g e n t 就是一个能在异构网络中自主地从一台主机迁移到 另一台主机,并可与其他a g e n t 或资源交互的程序,如图1 1 所示。 图1 1 移动a g e n t 运行过程 f i g u r e1 1e x e c u t i o np r o c e s so fm o b i l ea g e n t 移动a g e n t 技术是分布式技术与a g e n t 相结合的产物,它除了具有智能a g e n t 的最基本特性:自主能力、社交能力、适应能力和一致主动性,还具有移动能力、 可靠性和安全性。移动a g e n t 不同于基于过程的r p c ,也不同于面向对象的对象引 用,其独特的对象传递思想和卓越的特性给分布式计算乃至开发系统带来了巨大的 革新。 移动a g e n t 技术在实际中得到了广泛的应用,主要应用于电子商务、个人助理、 分布式信息检索、无线通信服务、工作流和并行处理”2 “1 等各个方面。 1 2m o b i l ea g e n t 的技术优势 m a 是一种新的信息服务与任务求解方式。要考虑不同信息源的集成、安全性、 网络带宽、信息的组织( 数据库的设计) 的要求,同时系统还必须有效地适应各信 息源的动态变化,使得设计工作极具挑战性。面对这样的应用要求,传统的c s 计 算模式难以胜任,而分布式对象技术分布式人工智能技术和数据库技术的有机结合 才是解决这一问题的有效途径。 与传统的c l i e n t s e r v e r 模式相比,m a 系统具有许多技术优势“”3 : 第i 章绪论 ( 1 ) 移动执行方式。m a 摆脱了传统的c l i e n t s e r v e r 框架,通过将服务请求 a g e n t 移动到服务器端执行,使得a g e n t 能够不经过网络传输而直接访问服务器资 源。在m a 系统中,网络传输的是a g e n t 代码,而不是拥有大量冗余的数据,从而降 低了系统对通信带宽的依赖,可大幅度减少网络的拥塞。 ( 2 ) 动态路由。m a 的具体移动路线和移动目标不是由用户预先设定的,而是 由a g e n t 在运行过程中,通过自身的感知器动态地取得外界网络环境和服务器负载 情况后再进行规划。 ( 3 ) 异步计算。m a 的运行不需要统一的调度,也不需要用户端与服务器端保 持长时间的稳定连接。由用户创建的m a 可以异步地运行或暂存于不同的网络节点 上,待任务完成后再将结果传给用户。 ( 4 ) 并行计算。为完成某项任务,用户可以创建多个a g e n t ,同时在相同或不 同的节点上运行。m a 的并行性可将单一节点的负载分散到网络的多个节点上,并能 减少局部网络的传输拥塞,这将使得小系统拥有处理大规模复杂问题的能力。 ( 5 ) 隐藏网络细节。a g e n t 的移动性对应用的开发者而言隐藏了网络的细节, 提供了一种通用的开发手段,并且使得在执行其任务时不用考虑网络的质量和可靠 性,为w a n 或无线环境提供了一种解决方案。 1 3 移动a g e n t 技术面临的挑战 1 3 1 安全性 安全性问题的解决是移动a g e n t 技术被广泛接受的前提。例如,在一个基于移 动a g e n t 的电子商务系统中,保证系统和代表各种利益的a g e n t 的安全是进行正常 商务活动的前提条件。如何建立一个高效的安全体系,如何保护主机不受恶意a g e n t 攻击而不过多地限制移动a g e n t 的访问权限,如何保护a g e n t 不受恶意主机地攻击, 如何区分a g e n t 是善意还是恶意并避免恶意a g e n t 像病毒一样在网络上传播,肆意 北京工业大学硕士学位论文 攻击低层通信网络和其它系统“”,这些问题到目前为止还没有一个完美的解 决方案,仍将是今后研究的关键问题。 1 3 2 效率和性能 移动a g e n t 系统的执行效率有待提高。移动a g e n t 技术减少了中间数据的传输量, 节省了网络带宽,克服了网络延迟,但增加了代码移动的额外开销,另外a g e n t 移动 过程中的状态( 代码、数据、运行) 捕捉、序列化、安全检查、注册、恢复运行等工 作也会增加额外的开销“。只有在低速、高延迟、连接不可靠的网络环境中或中间 数据传输量非常大时,移动a g e n t 技术才显示出效率上的优势,而在一般的分布式应 用中并不比其它技术高效。 从支持平台无关性、安全性等方面考虑,几乎所有的移动a g e n t 系统都采用解释 型语言。解释型语言和编译型语言相比,执行速度要慢很多,这也是移动a g e n t 系统 效率不能显著提高的一个重要原因,因此提高解释型语言的执行速度是提高移动 a g e n t 执行效率的一个重要手段,这方面比较突出的工作是j a v a 语言的j u s t i n t i m e 技术。 提高效率的另一个重要手段是设计出好的移动策略,根据m a 的任务、当前网络 负载和服务器负载等外界环境,决定是否需要移动,如果需要移动则动态地为m a 规 划出移动路径,使m a 在开销最小地情况下,晟快、最好地完成其任务。当前所有移 动a g e n t 系统的容错机制都十分简单,这将严重影响移动a g e n t 系统的性能,这也是 制约移动a g e n t 技术流行的重要原因之一。更高一级的容错机制应包括对用户屏蔽错 误、及时发现和改进错误、确保错误发生前和发生后系统利a g e n t 的状态一致等。 1 3 3 对移动a g e n t 的有效控制 由于当前的a g e n t 方法还不成熟,整个系统不可预测,不可确定,某个a g e n t 将 与其他a g e n t 以什么方式交互实现什么目标,这是不能事先确定的。由于a g e n t 可以 自由的作出决策,不能保证a g e n t 之间的依赖关系能得到有效管理。“,由此,可能 导致死锁。所以,要尽可能避免移动a g e n t 失控( 如不停地复制、迁移等) 。 4 1 3 4 移动a g e n t 的负载均衡服务 为了提高系统分布处理的吞吐量,在a r b 上挂接一个负载均衡控制a g e n t ,当接 受到客户a g e n t 的请求时,此控制a g e n t 将请求动态路由到服务a g e n t ,为了达到最 优化,控制a g e n t 在动态路由时将采用蚁群算法嘲。 1 3 5 标准化 标准的建立是m a 技术走向成熟的前提。目前,商业化和实验性的移动a g e n t 系 统多达6 0 多个,这些系统在体系结构和系统实现上都存在着较大的差异,严重阻碍 了m a 系统的互操作和m a 技术的推广。为此,很多公司向o m g 提交了有关m a 的规范 建议书。其中最新、而且比较有影响的是o p e ng r o u p 、i b m 、g e n e r a lm a g i c 等多家 单位和公司共同提出的”移动a g e n t 系统互操作草案”m a s i f ( m o b il ea g e n ts y s t e m i n t e r o p e r a b i l i t yf a c i l i t y ) ,它可以看做是目前 i a 系统的一个标准。m a s i f 定义 了a g e n t 系统之间、以及a g e n t 系统与原有非a g e n t 系统( 1 e g a c ys y s t e m ) 之间的 接口,它主要从m a 系统的命名、m a 系统类型和定位、m a 的移动以及m a 的管理等几 个方面制订了一系列标准。但m a s i f 也存在着如下的不足之处:它没有有关语言瓦操 作的内容,m a s i f 只限于用相同语言实现的m a 系统间的互操作;另外,m a s i f 也没有 对局部的a g e n t 操作,如解释、序列化、执行等进行标准化。 f i p a 组织也在致力于a g e n t 技术和互操作规范的制定和推广,使不同公司和组织 开发的a g e n t 系统进行最大限度的互操作,与o m g 不同的是,该组织制定的规范主要 针对智能a g e n t 系统。该组织已经开发出f i p a 9 7 、f i p a 9 7v 2 0 、f i p a 9 8v o 2 等一 系列规范,目前仍在不断的修正和推出新的规范。 图l 一2f i p a 模型图 f i g u r el 一2a g e n tm o d e lo ff i p a 当前移动a g e n t 领域还没有形成一个像c o r b a 那样的工业标准,标准化仍有许多 工作要做。 移动a g e n t 系统一般包括两个部分:移动a g e n t ( m a ) 和移动a g e n t 运行环境 ( m a e ) 。移动a g e n t 运行环境是系统的核心部分,它实现移动a g e n t 在主机间的迁移, 并为其建立远程执行环境。移动a g e n t 运行环境提供对移动a g e n t 的各种操作的支 持,包括:创建、运行、挂起、中止、传送和接收等。移动a g e n t 运彳亍环境创造了 一个位置透明、便于控制、安全可靠的平台。移动a g e n t 运行环境要实现容错策略、 安全控制策略,并提供基本服务设施和各种通信机制。 一个完整的移动a g e n t 系统由几个部分构成,如图1 3 所示:用户接口、 a g e n t ( 包括静态a g e n t 和移动a g e n t ) 、a g e n t 服务环境、a g e n t 服务通信中心和停 靠( d o c k ) 服务器。a g e n t 运行环境利用a g e n t 传输协议( a g e n tt r a n s f e r r i n g p r o t o c o l ,a t p ) 实现a g e n t 在主机之间迁移,并为其建立运行环境和提供各种服务 接口。 a g e n t 在服务环境中执行,并通过a c l ( a g e n tc o m m u n i c a t i o nl a n g u a g e ) 与其 它a g e n t 通信或访问服务环境所提供的服务。停靠服务器是为了适应低可靠性的网 络和解决网络拥塞而设置的a g e n t 中转站,提供暂时保存a g e n t 的服务。通信中心 为移动a g e n t 提供可靠、容错的通信服务。 图卜3 一般移动a g e n t 系统结构 f i g u r e1 3a r c h i t e c t u r eo fc o m m o nm o b i l ea g e n t 在移动a g e n t 系统中,每个a g e n t 都对应一个c l a s s 。当要生成一个a g e n t 的时 候,a g e n t 运行环境就根据c l a s s 来创建a g e n t 实例”6 ”7 “2 。然后为a g e n t 分配一 个唯一的名称来进行身份验证,并启动a g e n t 的执行线程。当需要派发a g e n t 时, 需要先中止a g e n t 的执行线程,然后序列化其代码和状态,并以a t p 协议进行传输。 当a g e n t 到达目的地时,运行环境对a g e n t 解调序列化,并恢复a g e n t 对象。然后 对移动a g e n t 进行身份认证,继续a g e n t 的运行。 1 4 研究内容及意义 本文提出一种基于容错技术的移动a g e n t 模型( 注:基于容错技术的移动a g e n t 模型简称为本模型) ,并且在此基础上开发原型系统f r e e m a 。 本模型是基于a g e n t 和p l a c e 的,p l a c e 提供安全执行本地和来访a g e n t 的环境。 我们对移动a g e n t 采取层次结构设计。 北京工业大学硕士学位论文 在本模型中,我们把移动a g e n t 被拆分为主a g e n t ( m a i na g e n t ,即m a ) 和兄 弟a g e n t ( b r o t h e ra g e n t ,即b a ) 。m a 主要包括核心线程,是移动a g e n t 的行为集, 而兄弟a g e n t 即b a 则主要包括各种资源信息和请求线程,可以简单看成是移动a g e n t 的资源集。为了使移动a g e n t 具有较强的故障恢复能力,能够进行可靠的通信,需要 定期将b a 数据更新到备份b a 中。 本文还为移动a g e n t 设计了模块化结构,提出了一种适合于a g e n t 迁移过程实 现和并发执行的调度方法,合理地运用模块复用思想,减少不必要的数据及代码迁移, 缩短了移动a g e n t 的平均执行时间。 在本模型的基础上,我们设计了f r e e m a 的原型,为该系统提供了种基于孤儿 检测的控制机制,通用的名字解析机制,并采用了基于时间戳的安全机制。 当然,移动a g e n t 不是万能的,它并不是对每个问题都很适用。首先,传统的 r p c 已经非常成熟。采用移动a g e n t 技术可能会增加设计和实现的复杂性。其次,当 前有些计算环境的网络带宽和稳定连接基本上不是问题。因此,移动a g e n t 技术的一 些特点还不能显现效果。 但是,随着人们对移动a g e n t 技术的深入理解,对移动a g e n t 实现平台不断完 善,特别是一些计算( 例如网格计算等等) 从科学应用逐步向商业应用过渡,移动 a g e n t 技术上的优势就可以充分体现了。 总之,移动a g e n t 技术的运用不但具有研究价值,而且具有很好的现实意义。 第2 章移动a g e n t 模型 2 。1 移动a g e n t 的层次结构设计 移动a g e n t 是能够在不同计算机间游动的自动程序,它是一个软件实体。当一 个a g e n t 迁移时,不仅仅是a g e n t 的代码能被传输到目标位置,其状态也能被传到 指定目标。我们对移动a g e n t 采取层次结构的设计,所谓层次,就是指一个移动a g e n t 能够被另一个移动a g e n t 所包含。也就是说,移动a g e n t 是个树形的组织结构。 而移动a g e n t 也可以以整体形式,包括它所包含的所有内部a g e n t 迁移到其他移动 a g e n t ,只要目标能够接受此移动a g e n t 就可以( 如图2 1 ) 。一个容器a g e n t 自动 提供自己的服务和资源给其内部a g e n t ,并且服从内部a g e n t 。 来自存器a g e n t 或运行环境的事扑 图2 一lm o b i l ea g e n t 层次结构 f i g u r e2 - ih i e r a r c h i c a ls t r u c t u r eo fm o b i l ea g e n t 北京工业大学硕士学位论文 i i 在这个层次模型中,每一个服务a g e n t 都是涉及用来为内部移动a g e n t 提供其 服务的。因此,每个低层的服务a g e n t 能被看作高层的服务提供者。 2 2 移动a g e n t 的迁移 为了尽早地使移动a g e n t 技术实用化,国内外学术界和企业界的研究机构在进 行努力的探索,具有代表性的工作有i b m 的a g l e t ,g e n e r a lm a g i c 公司的 t e l e s c r i p t ,m i t s u b i s h i 公司的c o n c o r d i a “3 ,d a r t m o u t h 学院的a g e n t t c l “。”, g e n e v a 大学的j a v a s e a l 和南京大学的m o g e n t 等。移动a g e n t 的迁移,即如何使 a g e n t 在异构节点之间进行迁移,是实现移动a g e n t 系统的关键问题之一。 t e l e s c r i p t 平台是用t e l e s c r i p t 语言来完成的,可以被编译成字节码运行在虚拟 机上。尽管它是一个比较成功的移动躯e n t 平台,但是由于j a v a 的流行和优势,必 然导致它的失败。a g e n tt c l 是美国d a r t m o u t h 大学研究的移动a g e n t 系统,它提 供一个g 0 指令,可以自动捕获和恢复a g e n t 的完整状态,意味着a g e n t 可以在任意 点中断执行,然后移动到其他环境中继续执行。a g l e t 作为第一代基于j a v a 的移动 a g e n t 平台,它不能捕获a g e n t 的线程状态,因此,a g e n t 每次移动之后都是从登陆 点( k n o we n t r yp o i n t ) 开始运行的,采用序列化代码和对象状态及类装载实现迁 移。然而移动a g e n t 的技术目前尚不成熟,一些关键性技术尚需进一步研究,如 a g e n t 及其宿主的安全身份验证授权、停靠机制等问题其中迁移机制是移动a g e n t 的核心技术之一。同基于专用解释性语言实现的移动a g e n t 系统相比,基于j a v a 语言实现的移动a g e n t 系统具有更强的功能和更大的灵活性。 下图简单演示了层次结构的a g e n t 的迁移方式: 图2 - 2 、m o b i l ea g e n t 迁移之前 f i g u r e2 - 2b e f o r em i g r a t i o no fm o b i l ea g e n t l o 图2 - 3 、a g e n t 迁移之后 f i g u r e2 - 3a f t e rm i g r a t i o no fm o b i l ea g e n t a g e n t 具体迁移过程如下: 当a g e n t 要迁移时,先调用相应的方法,序列化a g e n t 代码和对象状态,发送 代码和对象状态等( 这里采用强制发送方式) 。迁移步骤如图2 4 所示。 直 图2 4a g e n t 的迁移或派遣 f i g u r e2 - 4m i g r a t i o no rd i s p a t c ho fa g e n t i 、当移动a g e n t 将要发生迁移时,移动a g e n t 向目标主机上的m o b i l ea g e n t s e r v e r ( m a s ) 发送一个迁移请求,并挂起将要迁移的a g e n t 的线程,并询问它是否作 好接收信息的准备。 2 、在发送方,发出请求信息后,采取强制发送方式,移动a g e n t 被序列化并通 过网络传输到目的地。 3 、如果m a s 允许迁移,则它发回一个确认信息,否则发回一个拒绝迁移信息, 并且停止接受该m a ,清除该m a ,告知发送方停止发送序列化数据。 4 、接收方用接收到的应用程序数据创建一个新的相同的移动a g e n t ,并发回确 认信号。 北京工业大学硕士学位论文 目前通常采用三种方法研究移动a g e n t 的迁移: 1 ) 移动a g e n t 把它的所有代码从一个位置移动到另一个位置。 2 ) 有些系统根本不传送任何代码,而是将a g e n t 所需的所有代码预装入各个主 机上。 3 ) 移动a g e n t 在移动过程中不包括代码,而仅携带代码库的执行序列。在执行 过程中,a g e n t 和存储代码库的服务器交互,从该服务器上下载所需的代码。 第一种方法显然会造成不必要的数据传输,并且不利于网络多机并行执行。 第二种方法将所有的代码存储于主机。我们知道,程序代码各个部分的使用频 率会有所不同,将低使用率代码长时间存储于主机,将会占用大量的存储空间,这 种方式对于大部分主机来讲是无法容忍的。 第三种方法是在a g e n t 执行过程中,用到哪个功能模块就从服务器下载相应的 代码,该方法虽然能够减少代码数据的传输,但整个过程中代码的传输和a g e n t 的 执行是串行的,而且不进行代码复用。 一般来讲,a g e n t 在每个位置上都有相当一部分代码未被使用,但在a g e n t 进行 迁移的过程中这些代码每次都需要进行传输。 另外,通常有许多功能模块应该能够并发执行,但传统的方法中模块的执行是 串行进行的。显然,传统的方法不但进行了大量不必要的数据传输,而且还影响了 计算执行的并发性。 当a g e n t 出现通信故障后,往往会丢失原有的执行环境和相关数据,从而需要 重新发送移动a g e n t 到相应的位置重新执行。这种情况在关键计算中出现时,对用 户来讲往往是难以接受的。因此具有容错能力的移动a g e n t 逐渐成为了一个新的研 究热点。 2 3 f r e e m a 的容错移动a g e n t 模型 在描述模型之前,我们来看看移动a g e n t 的容错策略: a g e n t 在移动过程中很可能存在网络故障、服务设施故障、长时间停机等情况造 成的移动a g e n t 破坏和失败,所以必须有一定的容错方法。通常有以下几种策略: 弟2 章移动a g e n t 模型 创建相同任务的多个备份:它们在网络中独立运行,任务结束后比较结果。 集中式容错:特定的服务器保留移动a g e n t 的原始备份并实施跟踪,通过重发原 始备份恢复失效的移动a g e n t 。 分布式容错:将容错责任分配到网络中多个非固定的站点上进行。 客观地说,容错机制是移动a g e n t 系统服务质量的重要评价标准,也是移动a g e n t 优势得以体现的重要手段。 我们的基于a g e n t 的系统模型像其他的模型一样,是丰要基于a g e n t 和p a c e 的。p l a c e 提供安全执行本地和来访a g e n t 的环境。一个a g e n t 系统包括大量的 p l a c e ,作为各种服务的平台,a g e n t 都是主动实体,能够从一个位置到其他位置来 会见其他的a g e n t 并访问p l a c e 的服务。每个a g e n t 有一个全局的标示符标示,一 个a g e n t 的标示符在a g e n t 创建时由系统生成,创建的位置可以来源于这个名字, 它与a g e n t 的当前位置是独立的。 比如,当a g e n t 移动到其他p l a c e 时不发生改变。换句话说,应用的标示符提供 位置透明性。一个p l a c e 完全坐落在潜在网络的单个节点,然而多个p 1 a c e 可能位 于同一个给定的节点上。比如,一个节点可以提供许多的p l a c e ,每个p l a c e 被分 配到特定的a g e n t 社区,允许访问一个某些服务集或者实现一个特定的功能。 p l a c e 被分为两类,依赖于下层的系统的连接性。如果一个系统始终被连接到网 络( 禁止网络失败和系统崩溃) ,这个系统上的p l a c e 被称为c o n n e c t e dp l a c e 。 如果一个系统只是时断时续地联接到网络上,比如用户的p d a ,那么这个p l a c e 被称 为a s s o c i a t e dp l a c e 。 图2 5 移动a g e n t 和p l a c e f i g u r e2 - 5a g e n ta n dp l a c eo fm o b i l ea g e n t 在本模型中,我们又把移动a g e n t 被拆分为主a g e n t ( m a i na g e n t ,即m a ) 和 兄弟a g e n t ( b r o t h e ra g e n t ,即b a ) ,见图2 - 6 。 m a 主要包括核心线程,是移动a g e n t 的行为集,而兄弟a g e n t 即b a 则主要包括 各种资源信息和请求线程,可以简单看成是移动a g e n t 的资源集。 为了使移动a g e n t 具有一定的故障恢复能力,从而进行可靠的通信,需要定期 将b a 数据更新到备份b a 中。 移动a g e n t 构造服务器用来协助用户自动地生成移动a g e n t ,对各相关模块进 行语法分析得出各模块的调度序列,并对消息进行快速处理,及时更新移动a g e n t 的最新位置等。当移动a g e n t 由a g e n t 构造服务器创建时,得到了对应的b a 、胎 和备份b a 。 图2 - 6 移动a g e n t 容错模型 f i g u r e2 - 6f a u l tt o l e r a n c em o d e lo fm o b i ea g e n t 2 4m a 模块化结构及动态加载机制 以前的移动a g e n t 平台大都是将a g e n t 的代码作为一个整体进行迁移。经过分 析我们发现,a g e n t 随着在不同的站点上的任务的不同,一般都分别执行a g e n t 不 同部分的代码。如果能对其代码进行合理分割或按功能进行模块化设计”“,有计划 地调度代码中各个模块的去向,可以有效地减少数据的传输量,同时还可以使无数 据相关的代码模块在各个站点上并发执行,从两个方面提高a g e n t 的执行效率。为 此,本文为移动a g e n t 设计了模块化结构模型,提出了一种适合于a g e n t 迁移过程 实现和并发执行的调度方法,合理地运用模块复用思想,减少不必要的数据及代码 迁移,缩短了移动a g e n t 的平均执行时间。 下面将介绍移动a g e n t 的模块化结构框架、a g e n t 构造服务器以及a g e n t 的迁 移方法。 北京工业大学硕士学位论文 2 4 1 a g e n t 的结构框架 为了尽可能地减少a g e n t 迁移过程中的数据传输量,提高a g e n t 设计的灵活性 本系统为移动a g e n t 设计了如图2 7 所示的模块化结构模型。 图2 - 7 移动a g e n t 的模块化结构 f i g u r e2 - 7m o d u l es t r u c t u r eo fm o b i l ea g e n t 为了使移动a g e n t 适合于各种平台,整个系统采用j a v a 语言进行编写,其中每 个功能模块作为一个线程来实现。 m a 的k e r n e lm o d u l e 作用是对调度序列进行分析,并根据它来调度各个功能模 块。对于某个领域的用户来讲,常用的功能模块较多,在执行位置加载常用模块, 动态加载不常用的模块,显然是一种高效的做法。 2 4 2 移动a g e n t 构造服务器 为了使用户不必为繁琐的a g e n t 编程所缠绕,系统设置了一个a g e n t 构造服务 器( 如图2 8 所示) ,协助用户自动地生成移动a g e n t 。该构造服务器包括功能模块 库、移动a g e n t 服务、模块调度序列记录表、a g e n t 登记表和a g e n t 发送器。 图2 - 8 移动a g e n t 构造服务器 f i g u r e2 - 8c r e a t i n gs e r v e ro fm o b i l ea g e n t 功能模块库是为了便于a g e n t 设计而设置的,它为用户提供一些常用的功能模 块。服务器管理员可以根据用户的需求,通过g u i 来管理该模块库。 移动a g e n t 服务模块的作用是接收来自于用户站点的请求,为用户生成a g e n t 。 当站点u 上的用户在完成一个调度序列的设计后,则可向移动a g e n t 服务器发出一 个请求原语,请求移动a g e n t 服务器为其生成一个a g e n t 请求原语格式如下: r e q u e s t c r e a t e 。a g e n t s e r v e r l pi p a d d r e s s1 : u s e r l pi p a d d r e s s2 : u s e r t a s kt a s k i d : s c h e d u l e q u e u es c h e d u l e q u e u e : 其中,s e r v e r i p 的参数给出服务器的i p 地址,u s e r i p 的参数给出用户的站点 i p 地址,l j i s e r t a s k 的参数给出请求生成该a g e n t 的任务i d ,s c h e d u l eq u e u e 的 参数给出该a g e n t 的调度序列。 服务模块收到该原语后,分析该请求中的调度序列是否存在错误。如果没有发 现错误,服务模块将用户所设计的调度序列存入调度序列记录表中,并在a g e n t 登 北京工业大学硕士学位论文 记表中进行登记,等待a g e n t 发送器按照调度序列将该a g e n t 发往目的站点,并发 送确认信息给用户,否则发错误警告给用户。 2 4 3 移动a g e n t 动态加载机制 下面介绍一下移动a g e n t 动态加载机制。 在该机制中,b a 包括迁移路径信息、各模块所需的变量、参数、需要加载的模 块列表、可能需要加载的模块列表、m a 的调度序列等信息,还包括一个向a g e n t 构 造服务器请求加载模块的线程。需要加载的模块列表和可能需要加载的模块列表, 以及 l a 的调度序列都是经过a g e n t 构造服务器语法分析获得的。 例如,模块a 代码中肯定执行模块b 的函数,有可能执行模块d 和g 的函数。 模块b 代码中肯定执行模块d 、模块e 的函数,模块b 代码中有可能执行模块c 和g 的函数。模块d 代码中肯定执行模块c 、模块f 的函数,模块d 代码中可能执行模 块e 、模块g 的函数。可以得到简单的模块关联列表如下 模块名称肯定关联的模可能关联的模块 块 abd 、g bd 、ec 、g dc 、f e 、g 表2 1 简单的模块关联列表 t a b l e2 - 1s i m p l er e l a t i o nlj s to fm o d u l e s 那么,执行模块a 需要直接加载的模块是:b 、c 、d 、e ,可能需要加载的模块 是g ;执行模块b 需要宣接加载的模块是:c 、d 、e 、f ,可能需要加载的模块是g ; 执行模块d 需要直接加载的模块是:c 、f ,可能需要加载的模块是e 、g 。如表2 2 所示 模块名称直接加载的模块动态加载的模块列 列表表 ab 、c 、d 、eg bc 、d 、e 、f g dc 、f e 、g f i g u r e2 1l j s to fm o d u l e st ol o a d 第2 章移动a g e n t 模型 需要加载的模块列表和可能需要加载的模块列表都在b a 生成的时候保存在对应 的字段中。语法分析后,得到了模块执行过程中肯定会加载的模块集和可能会加载 的模块集。对于肯定会加载的模块集,在执行的位置,我们事先将它们一一加载。 对于可能加载的模块,在需要它的时候,将在可能需要加载的模块列表中查询到它 的相关信息,并向a g e n t 构造服务器发出加载对应模块到该位置的请求,并进行动 态的加载。 m a 内核由两个线程组成,分别是m o d u l e s e h e d u l i n g 和m o d u l e l i s t e n i n g 。 线程m o d u l e s c h e d u l i n g 的作用是从b a 的调度序列中读取需启动的第一个模块执行 条件及其相关关系。如果该模块的执行条件还没有满足,就跳过该模块。如果执行 条件已经得到满足,检查该模块在当前位置是否已经存在以及该模块是否需要等待 别的某个功能模块的处理结果。当该模块的代码已经存在并且所需的数据条件也已 经准备妥当,则启动该模块工作,否则等待加载模块或者相关条件得到满足。一个模 块启动后,再分析各相关模块调度序列,重复上述过程,直至按调度序列的要求将各 功能模块全部启动执行为止。利用特定网络中的各个站点的缓冲区,共同为移动 a g e n t 提供一个大的功能模块缓冲区,存储更多的常用功能模块,减少数据的传输, 提高移动a g e n t 的平均性能。 线程m o d u l e l i s t e n i n g 的作用是监测所有正在执行的模块。当某个功能模块执 行完毕后,该线程按照调度序列中的数据相关关系的需要,将功能模块的执行结果 发往相应的位置。对于上述的例子,在m a 工作过程中,模块a 、b 、d 都具有数据相 关性,需要等待其他位置的数据。在创建移动a g e n t 时,根据网络中各站点的缓冲 区及网络情况,在不同的站点可能加载了相应的模块。这样a g e n t 的内核一开始直 接启动模块b 、c 、d 、e 执行,得到相应的结果发送到a 所在的站点。当a 所需的数 据到来后,再启动该模块( 可能加载模块g ) 执行。a 执行完毕后,将最终结果传送 给客户。 若要确定b a 、m a 准备迁移的某新位置时,首先与新位置的功能模块管理服务程 序交互,查询目的地是否有需要的相应模块存在,过滤掉那些新位置上已有的功能 模块,如果新位置有所需的大部分模块,那么在当前位置由b a 向a g e n t 构造服务器 北京工业大学硕士学位论文 发出加载对应模块到目的地的请求。一旦各模块加载成功,立刻b a 、m a 进行迁移。 由于新位置只需动态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毛织品牌竞争战略创新驱动工艺考核试卷及答案
- 农药制剂降解产物分离工艺考核试卷及答案
- 塑件模具排气系统改进工艺考核试卷及答案
- 云网技术面试题及答案
- 应用化学面试题库及答案
- 银行中级试题及答案
- 银行运营内控部门面试题及答案
- 银行营销管理试题及答案
- 银行业务知识考试题及答案
- 银行宣传部面试题及答案
- 古代汉语教程张世禄简体字版
- 高中英语-单词3500分类记忆
- JGJT294-2013 高强混凝土强度检测技术规程
- 房产代持协议
- 电路检查记录表
- 轨道交通先张法预应力U型梁预制施工工法
- 材料力学第4版单辉祖习题答案
- 物流法律法规物流法律法规概述
- 常用机电设备安装与调试课程标准
- 2023年安徽省公安机关警务辅助人员条例训练题库211题及答案
- 华为质量管理评估模型(31个评估要素和评估报告)
评论
0/150
提交评论