(计算机应用技术专业论文)一种资源部件可动态调整的ma通信模型.pdf_第1页
(计算机应用技术专业论文)一种资源部件可动态调整的ma通信模型.pdf_第2页
(计算机应用技术专业论文)一种资源部件可动态调整的ma通信模型.pdf_第3页
(计算机应用技术专业论文)一种资源部件可动态调整的ma通信模型.pdf_第4页
(计算机应用技术专业论文)一种资源部件可动态调整的ma通信模型.pdf_第5页
已阅读5页,还剩55页未读, 继续免费阅读

(计算机应用技术专业论文)一种资源部件可动态调整的ma通信模型.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 移动计算最大的贡献便是使得服务个性化,在传统的c s 模型中,服务器提 供的是预先设置好的一系列服务,并且通过静态的接口定义实现。但这通常会出 现预先设置的服务并不适合一些不可预见的用户需求,而解决的办法却只有在无 法增强其灵活性的前提下以增大系统开销为代价的新功能升级。相反,代码移动 却可以灵活的解决这个矛盾,代码移动从整体上增强了系统的灵活性却没有增加 系统的规模和复杂度。但是代码移动的致命缺陷却在于代码迁移所带来的网络开 销,如果无法控制网络开销,代码移动只能是空谈,因此如何控制移动a g e n t 系统 中的网络开销成为了一个公开课题,而通过资源部件的合理移动则是解决这一问 题的办法之一,本文提出了一个新的适用于内部资源部件移动的m a 体系结构模 型,不仅可以实现代码移动的高效性,同时遵循资源部件移动的原则,让资源部 件具有动态调整的功能,从而解决单一服务器所带来的m a 内部通信瓶颈问题。 并根据m a 体系结构本身的特征以及现有国内外的m a 通信研究状况分析了m a 体系结构模型的通信实现。我们提出了m a 内部资源部件分散驻留的优越性以及 如何利用这些优越性来满足移动计算模型设计的要求,而资源部件的动态调整策 略我们则使用加入了从安全性等其他因素考虑的节点状态参数d + 的改进后的 a l v r a m p o p o u l o 算法,并在试验中分析了可行性。除此之外,m a 体系结构模型也 满足移动计算模型设计的其他要求,如能快速、准确的对移动a 2 e n t 进行全局定位, 系统内消息传递透明、可靠等。 关键词:移动a g e n t ;消息传递机制;资源部件; 资源部件迁移策略 a b s t r a c t a b s t r a c t a m a j o ra s s e tp m v i d e db yc o d em o b i l i t yi st h a ti te n a b l e ss e n ,j c ec u s t o m i z a t i o n i nc o n v t i o n a ld i s 仃i b u t e ds y s t e m sb u i l tf o o w i n gac ,sp a r a d i g m ,s e r v e r s p r o v i d eap r i o r if i x e ds e to fs c i c e sa c c e s s i b l et h m u g hs t a t i c a l l yd e f i n e di n t e r f a c e s ni s o f t e nt h ec a s et h a tt l l i ss e to fs e r v i c e sa r ei l o ts u i t a b l ef b ru n f o r e s e e nu s e rn e e d s t h e s o l u t i o nt om i sp r o b l e mi st ou p 伊a d et h es y s t e mw i t hn e wf u n c t i o n a l “y t h u si n c r e a s e t h es y s t e m sc o m p l c x i t y 孤ds i z eb u tt t l ef l e x i b i l i t y c o n v e r s e l yc o d em o b i l i t yc 趾s o l v e t h i sc o n t r a d i c t i o nb yt m n s f 谢n gn e wf i l n c t i o n a l i t yc o d e st ou s e rw i t h o u ti i 心e a s i n g s y s t e m ss i z e 柚dc o n l p l e x i t y h o w e v e r t i l ed e a d l yd e f e c ti c o d em o b i l i t yi sn e m o r k c o s tc a u s e d b yt f a n s m i t t i n g ,h o wt oo o n 们lt 1 1 ec o s “sa no p e np r o b l e m f 0 n l l i i a t c l y t h e r e s e a r c :h e t si nd i s t r i b u t e ds y s t e md o m a i nh a v ep m p o s e ds e v e r a lw a y st og e tp o i n to ni t r a t i 伽a l l ym o v i n gr e s o u f c e m p o n e n t sp m v i d e db yt i l em o b i l ea g e n ts y s t e ma m o n g t h en e t w o r kn o d e si s eo ft h e m t h i sa n i d eg e t st l l ep o i n to nr e d u c i l l gt h en e t w o r k c o s ti n t r at l l em aa r c 硫e c t u r c 柚dl a s tg e t t i n gt h eb e s tp e r f b m a n c ei l l “1 w e i n t m d u c e dac o m p 0 n tr e c o n f i g i l r a t i o nm o d e lc r e a t e db ya v r 锄p o p o u l o s ,a i l dw e m a k ea ni m p r o v e m e n tb a s c do nt h eo r i 百n a lm o d e l ,n a m ei tm a r d cm o d e l a f t e rt h a t , w ea n a l y s e st h ec o m m u n i c a t i o m e t h o d sa h e a d ye x i t e di n t e m a t i o n a l l y ,a n dp r o v i d ea n e wc o m p o u n dm e t h o dt os a t i s f ym o d e lm a r d c sn e e d s k e yw o r d s :m o b i l ea g e n t ;m e s s a g ep a s s i n gm e c h a n j s m ;r e s o u r c ec o m p o n e n t ;s t r a t e g y o ft h e s o u r c ec 0 忉p o 玎e n t s r e c o n 矗g u r a t i o n l i 缩写词 缩写词 m a : 移动代理 m a r d c :移动鹕e n t 资源动态分布 m a h : 移动代理主机 l r s :本地注册服务 c a l : 当前a g e n t 所在地址服务 m r s : 消息接收缓存服务 a c l : 代理通信语言 p s : 代码状态 d s : 数据状态 e s :执行状态 n c :本地代码 d k n : 分布式知识网络 m w : 中间件 d c o m : 分布式组件对象模型 s c : 空间耦合 t c : 时间耦合 m 0 : 面向集会的协作模型 i i i 独创性声明 本人声明所旱交的学位论文足本人在导师指导下进行的研究工作及取得的研 究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示谢意。 签名: 奎凌日期:2 6 年年月2 5 曰 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 奎凌导师签名:睦鑫兰鑫 日期:2 0 0 6 年4 月2 5 日 第一章引言 1 1 课题背景与意义 第一章引言 代码移动以及移动a g c n t 是分布式计算领域中取得众多关注的一种新兴计算模 式,它以其软件分布性、通信耗费少、可以异步完成任务【1 】等众多优点得到了大家 的普遍认可。在移动醒e n t 的众多应用领域中,分布式信息寻获是一个相当重要的 应用,m a 系统通过将执行搜索任务的代码迁移到离需要分析的信息源非常接近的 地方来达到提高效率的目的。然而,如果不能很好的控制由于a g e n t 的迁移而带来 的巨大网络开销问题,那么相对于移动代码技术来说,c 幅仍是最佳选择【1 ”。因此, 如何利用m a 所带来的高效率又要有效的将网络开销控制在可接受的范围内则成 为一个公开课题。本文提出了一种新的m a 设计模型,它不仅可以实现代码移动 的高效性,同时遵循资源部件可移动的原则,让资源部件具有动态调整的功能, 从而解决单一服务器所带来的m a 内部通信瓶颈问题。除此之外,这个新的体系 结构也满足移动计算模型设计的其他要求,如能快速、准确的对移动a g e n t 进行全 局定位,系统内消息传递透明、可靠等。 1 2 课题来源与研究内容 早在1 9 9 8 年,f u g g c t t a 等人就已提出了移动计算模型的几个重要概念【2 】:1 ) 组件,也称为部件( c o m p o n c n t s ) 2 ) 交互( i n t e r a c t i o n ) 3 ) 位置( s i t e s ) 。其中 组件又分为:1 代码组件,即封装在一个知道做什么的计算单元内。2 资源组件, 提供计算中所需要的数据和设备。3 计算组件,可以完成计算的主动执行器。交互 是指两个或多个组件间所涉及到的事件,位置则是指组件所在的网络节点。显而 易见,同一个节点上的组件比不同网络节点上的组件进行交互要更为容易。 从上面的概念定义分析现有的移动a g c n t 系统设计,不难发现它们大都只支持 代码组件移动,并没有达到f u g g e t t a 所要求的还包括资源组件的移动。f u g g e t t a 同 时还指出通过资源组件的合理移动是有效控制网络开销的最好办法。 电子科技大学硕士学位论文 为了解决资源组件的移动问题,2 0 0 2 年a v r a m p o p o u l o s 等人提出了一种资源 组件可自适应的算法1 6 j 。文中提出只要通过对网络中资源组件间的交互进行量 化,并加以监控,使其小于移动组件所带来的耗费,就可以从拓扑图中找出一种 使得整体通信量最小布局。同时,在a v r 锄p o p o u l o s 所提出的算法中,它将整个网 络开销的优化作为最终目的,将所涉及的情况简单的归纳为由于组件问的通信而 产生的主动迁移情况,即所有节点在任何时刻都适合组件的迁移和驻留,而忽略 掉由于网络节点安全问题或其他原因所引起的资源组件的被动迁移情况。由此可 以看出,在a v 姗p o p o u l o s 提出的模型中,虽然可以找到一种算法使得资源组件可 以灵活的移动,但前提是一定要资源组件已经被抽象到了应用层。而现有的m a 系统体系结构却大都采用固定服务器提供固定服务的模式,并将所需要的资源组 件嵌入到设计结构中。因此,本文提出了新的体系结构_ m a - r d c 来解决上述 问题的不足。为了将资源组件抽象到了应用层,我们在资源进行动态调整的同时 加入组件状态决定参数,使算法能够适应主动迁移和被动迁移两种情况,并引入 了动态服务器设计概念i “】,废除了单一服务器提供所有服务的设计模式。它不仅 可以实现代码移动的高效性并且可以足够灵活的满足资源组件的动态调整的需 求,从而解决单一服务器所带来的m a 内部通信瓶颈问题。 1 3 论文所做工作 为了实现a 、硼m p o p o u l o s 所要求的整个网络开销的优化目的,本文提出了一个 适用于m a 内部资源组件可以移动的m a 体系结构模型m a r d c ,m a r d c 是在 动态服务器设计概念的基础上增加了具体的资源调整策略和通信方式的体系构 架。虽然早在1 9 9 8 年就有人提出了动态服务器设计的概念,但是却没有在此基础 上开发出新的应用,而本文则是引入这个概念,根据f u 韶e n a 的要求,量身订造 了资源组件可以移动的m a 体系结构模型m a _ r d c ,并根据m a r d c 本身的特征 以及现有国内外的m a 通信研究状况选用了类网络快照与消息传递机制复合使用 的通信模式和具体的资源组件动态调整策略。 论文主要在以下几个方面进行了改进: 1 提出了一个具体的资源组件可以移动的m a 体系结构模型m a r d c ,初步 达到了通过资源组件的动态调整来控制整个系统内部通信开销的目的。 2 从安全性等其他因素考虑改进了a v 础p o p o u l o s 算法,在不增大开销的前 第一章引言 提f 引入了安全节点参数,并通过试验证明了改进后的有效性和适用性。 3 提出了一种适用于m a - r d c 的复合通信模式,并通过试验证明了该复合 通信模式与其他通信机制相比,不仅性能有所提高,同时保持了通信透明性,消 息传递可靠性等优点。 1 4 论文内容的安排 第一章,引言。介绍论文的研究背景,研究内容和主要的工作。 第二章,移动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 资源动态分布( m a i c ) 模型。本章给出了移动a g e n t 资源动态分布( m a r d c ) 模型的结构图,模型特性,以及具体的调整策略和试 验结果。 第四章,通过分析现有的各种m a 通信模式,给出其原理和特性分析,最后 提出复合通信模式的特性和设计原理。 第五章,通过系列的试验结果和结果分析证明了本论文所提出的基于 m a r d c 的复合通信模式与其他通信机制相比,不仅性能有所提高,同时保持了 通信透明性,消息传递可靠性等优点。 第六章,小结与未来展望。给出了论文试验结果与工作总结。归纳研究中的 特点和不足之处,指出进一步的研究方向。 电子科技大学硕士学位论文 第二章移动a g e n t 的相关理论 2 1 移动a g e n t 的定义 对于移动a g e n t 的定义,不同的文献或应用系统各不相同。例如,文献1 1 2 】认为, 移动a g e n t 是代码,数据和执行环境的封装,它可以在执行过程中在计算机网络中 自治,有目的地迁移,并且能响应外部事件,并在迁移过程中保持其状态的一致 性。w h j t e f l 9 l 认为移动a g e n t 是具有移动性的a g e n t 。w b o l d r i d g c 【笠】等人认为移动a g e n t 是一个代替人或其他程序执行某种任务的程序,它在复杂的网络系统中能自主地 从一台主机移动到另一台主机,该程序能自主地决定何时移动,向何处移动。 同时,为了适应各种各样的要求和需求,工业界和学术界研究者曾提出过一 系列的m c s 。这种活跃的,甚至有时候有点混乱的研究活动产生了许多关于移动 代码概念和技术语义的混淆,特别是对术语“移动a g c m ”的滥用,这个词语在分 布式系统和人工智能研究领域是重叠的语义。在这里我们分别描述了这两种不同 研究领域的不同定义: 在分布式系统中,术语“移动a g e n t ”指一些可以在执行环境间进行移动的软 件性质的组件| 1 8 l 【1 9 】。 在人工智能领域中“a g c n t ”是指一个具有通过某些动作达到一定目的并且可 以在动态环境中对事件积极反应的具有软件性质的组件i 捌。这个组件的操作由事 件、行为和目的所拥有的知识来决定。并且其他a g e n t 之间的知识是可以交换的, 或是通过一些推理活动对知识进行扩展1 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 系统特征,而不涉及任何与人工智能领域相关的特征知 识。 4 第二章移动a g e n t 的相关理论 综合以上对移动a g e n t 的各种定义以及本文的需要,我们暂时给移动a g e n t 的 定义如下:移动a g e n t 是具有移动特性( m o b i l i t y ) 的智能a g e n t ,它可以自主的在 网络上从一台主机移动到另一台主机,并代表用户完成指定的任务,如检索、过 滤和收集信息等,甚至可以代表用户进行商业活动。移动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 系统的体系结构各不相同,但几乎所有的移动a g e n t 系统都 包括如下两部分:a g e n t 和m a 环境( m a e 或称m a 服务器、m a 主机( m a h ) 、 m a 服务设施、p l a c e 、c o n t e x t 、l 脚t i o n ) 【2 8 1 【2 9 】例【3 l 】。m a 环境为a 鲇n t 提供安 全、正确的运行环境,实现m a 的移动、m a 执行状态的建立、m a 的启动、实施 m a 的约束机制、容错策略、安全控制、通信机制,并提供基本服务模块,如:事 件服务( e v e n ts e i c e ) 、黄页服务( y e l l o wp a g es e r v i c c ) 、事物服务( t r 姐s a c t i o n s e r v i c e ) 和域名服务( d n s ) 等。一台主机上可以有一个或多个m a e 。通常情况下, 一个m a e 只位于一台主机上,但当主机之间是以高速、持续、稳定可靠的网络连 接时,一个m a e 可以跨越多台主机而不影响整个系统的运行效率。如图2 1 所示: 图2 1 移动a g e n t 系统 a g e n t 可以分为移动a g c n t ( 也称用户a g e n t ,u s e r a g c n t 【m o l e 】) 和服务a g e n t 电子科技大学硕士学位论文 ( 也称系统a g e n t ,s y s t e m a g e n t 或静态a g c n t ,s t a t i c a g c n t ) 。 移动a g e n t 可以从一个m a e 移动到另一个m a e ,在m a e 中执行,并通过 a g e n t 通信语言( a c l ) 与其它m a 通信或访问m a e 提供的服务。移动a g e n t 的 主要作用是完成用户指定的任务,需要实现移动语义( 即目标主机或路由的选择) 、 安全控制( 保护自身) 、与外界( m a 服务环境以及其他a g c n t ) 的通信等功能。 服务a g e n t 不具有移动的能力,其主要功能是向本地的a g e n t 或来访的a g e n t 提供服务。通常,一个m a e 上驻有多个服务a g e n t ,分别提供不同的服务,如文 件服务、黄叶服务等系统级服务,定票服务、数据库服务等应用级服务。由于系 统a g e n t 是不移动的,并且只能由它所在m a e 的管理员启动和管理,因此保证服 务a g e n t 不会是”恶意的”。来访的移动a g e n t 不能直接访问系统资源,只能通过服 务a g c n t 提供的接口访问”受控制的( c o n t r o l l e d ) ”、”安全的( s e c u r e ) ”的服务, 这可以避免恶意的a g e n t 对主机的攻击,是移动a g e t 系统经常采用的安全策略。 另外,采用j a v a 提供的c 语言接口( g j n t c r _ f a c c ) ,服务a g e n t 可以提供和其他软 件( k g a c ys o f t w a r e ) 的交互接口,很容易将非a g e n t 系统集成到a g e n t 系统中。 2 3 移动a g e n t 系统的实现技术 移动a g e m 技术涉及到计算机网络、分布式系统、通信技术、操作系统、计 算机语言以及人工智能等诸多领域【1 4 1 ,为了更好地利用好移动a g e n t 技术,必须 解决好以下关键技术问题。 2 3 1 移动 移动可分为强移动和弱移动两种。移动a g c n t 包括三种状态:代码状态 ( p r o 掣a ms t a t e ) 、数据状态( d a t as t a t e ) 和执行状态( e x e c u t i 0 s t a l e ) 【3 3 】。代码 状态指所属a g e n t 的实现代码;数据状态包含全局变量和a g e n t 的属性;执行状态 包含局部变量值、函数参数值和线程状态等。强移动包含代码状态、数据状态和 执行状态的移动,而弱移动只包含代码状态和数据状态的移动。 强移动的语义是:在移动目的地,从a g e n t 的断点处执行。如果m a 包含多 个线程,则多个线程同时从断点处运行。强移动要求a g c n t 的实现语言提供a g c n t 执行状态的外表化( e x t 唧a l i z e ) 和内在化( i n t e m a l i z e ) 的功能,即要求m a 系 统提供捕捉( e x t r a c t i o n ) 执行状态、恢复( r e i n s e r t i o n l 执行状态的功能。目前只有 第二章移动a g e n t 的相关理论 少数语言能提供上述要求的功能,例如f a d l e 【3 4 】和t y c o o n f 3 5 】。由于a g e n t 的执行 状态通常很庞大( 尤其对多线程a g e n t ) ,所以强移动是开销很大的操作。 a g e n t t cl 1 3 6 1 、a 【3 7 】和t e l e s c r j p t 2 3 l 都属于强移动系统。 弱移动只携带代码状态和数据状态,根据需要只把m a 的部分执行状态存入 数据状态中随a g e n i 一起移动,传输的数据量有限,使弱移动操作的开销小,执 行效率高,但它改变了移动后的执行语义。m a 移动到新主机后,不再接着移动前 的断点处执行,而是执行主线程的某一个入口函数( 如:在m o l e 中是主线程的 s t a r t 方法,在a g l e t s 中是主线程的m n 方法) 。在该函数中,根据数据状态决定应 该如何执行。如果a g e n t 包含多个线程,则移动之后,只启动包含入口函数的线 程,再由它决定启动哪些线程。a 甜e t s 【3 1 】、m o l e f 3 0 】和o d y s s e y f 3 8 】都是弱移动系统。 移动a 暑e n t 为完成用户指定的任务,通常要依次移动到多个主机上,与该主 机交互,使用该主机提供的服务和资源,这就是所谓的m u n i h o p 技术。如何实 现和规划m a 在多主机间的移动是移动机制和移动策略所要解决的问题。 移动机制主要研究移动的实现方式。不同的系统采用的移动机制不同,目前 m a 的移动机制可以分为两大类。类是将m a 的移动路线、移动条件隐含在m a 的任务代码中,其代表系统是m m 的a e t ;另一类是将m a 的移动路线、移动 条件从m a 的任务代码中分离,用所谓的”旅行计划”表示,其代表系统是m i t s u b i s h i 公司的c o n c o r d i a i 。 m a 的移动策略是指根据m a 的任务、当前网络负载和服务器负载等外界环 境,动态地为其规划出移动路径,使m a 在开销最小地情况下,最快、最好地完 成其任务。移动策略的优劣直接影响m a 的性能乃至其任务的完成。移动策略一 般可以分为静态路由策略和动态路由策略。在静态路由中,主机和访问的次序在 m a 执行任务之前就已经由m a 的设计者确定。在动态路由中,访问哪些主机及 访问的次序在m a 任务执行之前是无法预料的,由m a 根据任务的执行情况自主 的决定,一般由用户指定一个初始路由表,m a 在按照该路由表移动的过程中可以 根据周围环境的变化自主的修改路由表。动态路由方式体现出m a 的反映性、针 对环境性、自治性。 目前,m a 的移动机制研究的比较广泛和深入,相比之下,有关m a 移动策 略研究还比较少,未见有系统对m a 移动策略给出一个较为精确和系统的说明。 多数系统在规划m a 移动路由时只考虑了软件资源( 任务语义) ,而忽略了网络传 输资源和主机处理资源等硬件资源的影响,更没有考虑m a 以往的旅行经验,这 显然是不全面的。i b m 的a g l e t 给出了移动a g e n t 的传输协议瑚r p ,但该协议只是 电子科技大学硕士学位论文 规定了m a 在两台主机之间如何传输,并没有考虑硬件资源对移动路由的影响, 也没有给出m a 在多个主机之间移动的移动策略i 蛐j 。a c h a r v a 等意识到了不同硬 件资源及其使用状况对m a 移动的影响,但在实现m a 系统s u m a t r a 时只给出了 网络延迟的监测,而没有考虑到目标主机本地资源对a g c n t 移动的具体影响【4 ”。 d r u s 等在监测网络负载的基础上进一步给出了网络连接以及目标主机是否可达 的监测,但同样忽略了目标主机本地资源对a g c n t 移动的具体影响【4 ”。c c m c o r d i a 例提出了旅行计划的概念,实现了迁移信息和a g e n t 任务体的分离,但其旅行计 划的描述能力和灵活性都不够,不能表达多种迁移方式,另外,它只是从任务语 义的角度决定m a 下一步向哪里移动而不能根据网络资源、目标主机资源动态地 规划m a 的移动路径。d a n m o u t l l 学院的k m o i z u m i 等人在d a g c n t 的基础上开发 了分布式信息查询系统t c c l l n i c a l r e p o ns e a r c h e ri “,在该系统中他们将移动策略 称之为1 a p ( 1 1 r a v d i n ga g e n tp m b l e m ) 。在他们的解决方案中,综合考虑了网络负 载、主机负载、主机上存在所查信息的概率等因素,力图在m a 出发之前为之规 划出一条最佳移动路径,使m a 完成任务的时间最短。1 a p 实际上是静态路由问 题,在他们提出的”贪心算法( g r c e dm e t l l o d ) ”中没有考虑到负载信息过时对其算法 的影响。该系统采用一个”网络感知模块( n e 觚o r k s c n s i n gm o d u l e ) ”来获得网络 负载信息和主机负载信息,存在集中环节,另外在”最佳”的评判标准上,也只考虑 了速度而没有考虑服务价格和服务质量。 2 3 2 通信 移动a g e n t 系统可采用的通信手段很多,有消息传递,r p c ,r m i ,匿名通信 和a g e n t 通信语言等。根据通信对象的不同,移动a g e t 的通信方式可分为以下几 种【3 2 】: 移动a g e n 溯艮务a g e n t 的通信该通信方式实质是移动a g e n t 和m a e 之间 的通信。服务a g c n t 提供服务,移动a g e n t 请求服务,是一种典型的客户服务器 模式。如:移动a g e n t 向黄页服务a g e n t 查询有关服务。该类通信方式可以采用类 似r p c 、r m i 的通信机制。 移动a g e n t 移动a g e n t 的通信这是一对一( p e e r - t o - p e e r ) 的通信方式,通信 双方的地位是平等的。为了完成特定的任务,如协作求解,m a s 必须提供同步和 异步通信机制。 组通信也称为匿名通信。前两种通信方式的前提是,通信双方事先相互 8 第二章移动a g e n t 的相关理论 了解。然而,在有些情况下,通信的双方并不能互相确认对方的身份。例如:在 基于移动a g e n l 技术的分布式信息查询应用中,一组a g e n t 被派遣到i n t e m e t 的各 个信息源上执行搜索操作,在查询的过程中,为了提高搜索的并行度,某些a g e n t 可能又派生多个子a g e n t 组,当这些子a g e n t 和其父a g c m 所在组中的a g e n t 进 行通信时,就是匿名通信。在组通信方式中,通信的一方只能确定对方所在的组, 而不能确定组中具体的成员。目前支持组通信的方法有,组通信协议( g r o u p c o m m u n i c a t i o np r o t o c o l s ) ,如i s i s 【4 4 1 ;共享内存( s b a r e dm e m o r y ) ,如t u p l e s p a c e s 【4 5 1 ;事件管理等。在事件管理方式中,a g e n t 向系统注册其感兴趣的事件, 当其它a g e n t 产生该事件时,交由注册a g c n t 处理。 移动a g e 叫用户的通信属于智能人机接口领域。感兴趣的读者可以参看 文献【4 6 】。 根据通信发生的地点,可以把通信分为本地通信( 又称节点内通信,主机内 通信,h l t e r p l a c ec o m m u n i c a t i o n ) 和远程通信( 又称节点间通信,网络通信, i n 仃a p l a c ec o m m u n i c a t i o n ) 。特别指出的是:同一个主机内不同m a e 之间的通信 通常看作远程通信。 a g e t 通信语言( a g e n tc o m m u n 渤t i o nl a n g i l a g e ,a c l ) 是实现m a 与m a 执 行环境、以及m a 与m a 之间通信的高级方式。开放式m a 系统的a c l 系统应当 具有环境无关、简洁、语法语义一致等特点。k o m l k 球和x m l 是两种具有发 展潜力的通信语言( 或协议) ,前者主要用于知识处理领域,后者在i l l t e m e t 环境 ( 尤其是w w w ) 中具有很好的支持能力。在k q m l 语言【4 7 】 艚】【4 9 】中,一条a c l 消息是一个k q m l 表达式,其参数是符会k l f ( 知识交换格式) 格式的术语或句 子,也是词汇表中的单词。f 是基于一阶谓词演算的前缀表达式,它提供了对简 单数据、约束、规则、带量词表达式、元级信息等的编码;词汇表是一个可扩充 的大字典,包含了许多领域相关的单词。直观地讲,一条k q m l 消息就是发送者 和接收者之间的一段对话。k q m l 提供了对不同类型对话的支持。k q m l 通过通 信原语使a 腑n t 进行知识交换和操作以及协作求解问题。k q m l 基本上是基于言 语行为理论的,其最大的优点在于其开放性,即人们可以在其基本语言集之外任 意增加符合自己需要、并且符合k q m l 规范的消息和对话。甚至k q m l 的语义也 是开放的,它允许用户给出自己的语义解释。k q m l 己被许多软件互操作系统和 m a s 选为基本通信语言,并很有可能成为跨平台异质系统问的通信标准和语言。 在具体的m a s 中,通信的实现方式有很大差别。t a c o m a 通过一个携带数据 的b r i e f c a s e 来交换数据1 5 0 j 。a 则支持c s 方式的服务调用,但没有提供异地a g e n t 9 电子科技大学硕士学位论文 之间的通信手段【5 1 j 。t e l c s c r i p t 中的a g e n t 只能在会话点( m e e tp l a c e ) 中使用本地 方法调用的方式相互通信【2 3 1 。d - a g e n t 既支持底层的消息传递方式,也支持高层通 信方式如:a g c n tr p c 和k q m l f 【”。a 西e t s ,m o l e ,v 0 y a g e 等基于j a v a 的系统 通常采用j a v a 对象来实现分布式事件通信和消息传递机制【3 1 】【3 3 】【5 2 】【9 5 】。另外, a 垂e t s 预留了与c o r b m i o p 的通信接口。 2 3 3 编程语言 移动a g e n t 系统对编程语言有多方面的要求。k n a b e 等人在文献【矧【5 3 1 中对移 动a g e n t 的编程语言提出四个基本要求: 支持移动:该语言必须提供机制以确定将要移动的a g e n t 应携带哪些代码; 必须提供发起”移动”操作的原语或函数。 支持异构性:用该语言编写的移动a g c n t 应当能在一个异构的环境中任意 移动,这个异构的环境可能包含不同拓扑结构的网络、不同类型的计算机硬件设 备、不同的操作系统等。 高性能:移动a g e n t 的移动操作会给系统带来很大的开销,在某些情况下, 移动a g e n t 的执行效率甚至远远低于其它技术。该语言必须能快速、高效的运行。 安全性好:该语言必须具有很好的安全性,使用该语言编写移动a g e n t 不 易受到恶意主机和其它恶意a g e n t 的攻击。 m a 的实现语言可以采用编译型语言,也可以采用解释型语言。从支持移动、 支持异构性、执行效率和安全性等多方面考虑,几乎所有的移动a g e n t 系统都采 用解释型语言。由于j a v a 技术的快速发展和其具有良好的安全性和较高的执行效 率,因而被大多数m a s 所采用。 如果采用编译型语言,m a 被编译成本地代码( n a t i v ec o d e ) ,本地代码与具 体的系统平台有关,当m a 在不同系统平台之间移动时,必须重新编译源代码, 另外,本地代码具有直接访问本地系统资源的权利,使得很难进行安全控制。如 果采用解释型语言,m a 被编译成与本地无关的代码( m a c h i n e j n d e p e n d e n tc o d e ) , 由解释器解释执行,不同平台上的解释器能保证ma 可以在不同系统平台之间移 动执行,并且解释器在解释执行时,对访问系统资源的语句加以严格的控制,实 现语言级安全性。 选用解释型语言作为a g e n t 的实现语言时面临是执行效率问题。编译后的本 地代码执行比解释执行速度快,但目前有些解释型语言提供实时编译技术( 如j a v a 1 0 第二章移动a g e n t 的相关理论 语言的j u s t i n t i m e 技术) 可以显著的提高解释型语言的执行速度。从移动语义考 虑,如果提供强移动( s t r o n gm i 野a t i o n ) ,需要获得ma 的执行状态( e x e c u t i o n s t a t e ) 。对于解释执行而言,要求解释器提供捕捉( e x t t a c c i o n ) 线程执行状态、恢 复( r c 1 n s e n i o n ) 线程执行状态的功能。对采用编译执行而言,线程的执行状态用堆、 栈表示,编译器必须提供捕捉堆栈和恢复堆栈的功能,目的m a s 即使采用的是同 一种编译器,该过程开销也十分巨大。 解释性语言还具有延迟绑定( 2 4 】的优点,程序可以包含本地不存在的函数和类, 这很好的支持了代码的移动。 不同的移动a g e n t 系统采用不同的语言,大体可以分为多语言系统和单语言 系统。多语言系统的代表有:a m ,t a c o m a 和d a g e n t 。如a 致力于用当前现有的 编程语言实现移动a g e m ,支持c 犯+ + ,t c l ,j a v a f 5 1 1 5 4 1 。1 如o m a 支持t c l 厂风,c , s c h e m e ,p e d 和p y t h 彻1 5 0 jf 5 5 】。d t a g e n t 支持1 t c l 【1 】,s c h e m e 和j a v a 。单语言系 统多数采用j a v a ,如:m o i e ,a 西c t ,o 蛐c o r d i a ,、b y a g c r 等。d e c 研究院研制的 o b i i c 旧采用面向对象语言o b l i c 。编程语言的选择对于移动a g c n t 系统的发展至 关重要,第一个商业化的移动a g e t 系统t c l e s 棚p t 的消亡就说明了这一点,过于 专用的r l e s c r i p t 语言极大的限制了t e l e s c r i p t 系统应用范围,使之无法经受基于 j a v a 的m a s 冲击。g c n e r a lm a 百c 公司重新开发了一个基于j a v a 版本的移动a g e n t 系统o d y s s e y l 3 8 1 ,o d y s s e y 继承了t c l e s c f i p t 的所有思想。 2 3 4 安全性 m a 的移动性会带来很多不确定因素,要想将m a 被广泛的接受,成功地应 用于商业( 如:电子商务) ,就必须解决好m a 的安全性问题。m a 的安全性问题 是m a 成功应用的瓶颈,是移动a 帮n t 系统中最重要、最复杂的问题。 通常把移动a 鼬n t 系统的安全问题分为4 个部分【3 3 】:保护主机免受恶意 a g c n t 的攻击;保护a g e n t 免受恶意主机的攻击:保护a g e n t 免受其它恶意 a g e n t 的攻击;保护低层传输网络的安全。 为了阻止恶意m a 对主机的破坏,在主机上通常采用如下安全检测技术: ( 1 ) 身份认证( a u m e n t i c a t i o n ) ;它主要用于检查m a 是否来源于可信的地方。 这要求有关身份认证的详细信息需要从m a 的源主机或独立的第三方传送过来。 身份认证失败的m a 或者被驱逐出主机,或者仅允许以匿名a g e n t 的身份在十分 有限的资源环境下运行。数字签名就是一种常用的身份认证技术。 电子科技大学硕士学位论文 ( 2 ) 代码验证( v 商f i c a t i o n ) :它主要用于检查m a 的代码,看它是否会执行 被禁止的动作。由于有些代码只有在其被执行时才能被验证,如用于函数参数的 变量的内容等,所以代码验证常常按如下步骤进行:首先检查m a 是否试图破坏 其执行环境,然后检查该m a 实际运行所在的m a 系统是否对m a 的管理负责。 若以上验证结果成立,则进一步检查该a g c n t 的操作是否超出其被授权和资源限 制的范围。可以采用一种称为证明携带的代码技术( p r o o f _ c a 玎y i i l gc o d e ) 来完成 对来自于不安全地点的移动代码的验证,以决定对该代码的执行是否安全( 1 0 j 。该 技术将安全性证明( p r o o f ) 附加到每条代码上并与代码一块移动。目标主机可以 迅速验证这些证明并进而判定移动代码的安全性。证明或代码二者之被窜改均 会造成整个代码验证的失败,从而导致移动代码被拒绝执行。j a v a 语言本声提供 了一定程度的代码验证,即完整性验证。代码验证技术的难度很大,超出了本论 文的研究范围,有关这方面的研究工作请参见文【柚】【4 9 】。 ( 3 ) 授权认证( a u t h 删z a t i o n ) :主要检查m a 对主机资源的各种访问许可, 这包括资源可被访问的次数和被使用的数量以及m a 在该资源上进行存取操作的 类型。例如,被高度信任的m a 可以读、写、修改指定的资源并可无限制地访问 它;而不被信任的m a 则仅能对该资源进行读操作,而且只能进行有限次的访问; 有些m a 可能允许访问主机的计算资源;有些m a 则可能被完全禁止。可以通过 使用访问控制表的方法实现授权认证。 ( 4 ) 付费检查( p a y m e n tf o rs e n r i c e s ) :它主要用于检查m a 对服务的付费意 愿和付费能力( 除非服务是免费的) ,这包括检查m a 是否确实付费了、付费过程 是否正确,以及付费者是否对所提供的服务满意等。m a 在运行的过程中至少会使 用服务器的计算资源,也可能进行购买物品的交易。为避免不必要的资源占用和 不合理的交易,需要限制m a 的权利,这也可以通过付费的方式来控制。例如, m a 可以携带一定数量的电子货币,当m a 在某主机上运行时,它需要根据所要 求的服务的数量和质量对主机付费。这样,m a 的权利受限于其所拥有的货币的多 少,用尽货币的m a 会消亡。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论