(通信与信息系统专业论文)移动代理系统迁移策略及系统平台的设计与实现.pdf_第1页
(通信与信息系统专业论文)移动代理系统迁移策略及系统平台的设计与实现.pdf_第2页
(通信与信息系统专业论文)移动代理系统迁移策略及系统平台的设计与实现.pdf_第3页
(通信与信息系统专业论文)移动代理系统迁移策略及系统平台的设计与实现.pdf_第4页
(通信与信息系统专业论文)移动代理系统迁移策略及系统平台的设计与实现.pdf_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

型! 叁墼笙生 塑墨 移动代理系统迁移策略及系统平台的设计与实现 摘要 随着计算机互联网技术的发展、新技术的不断涌现以及各种应用需求的不断提 高,应用程序已经不仅仅满足于单个p c 机的独立集中式运算,而是越来越趋向于 网络大规模的分布式运算。移动代理是种新兴的分布式网络技术,它被用来构建 以移动计算为特征的网络应用。移动代理技术把代理迁移到服务器端运行,在运行 之后只需要返回相应结果。使用移动代理技术会将信息的交互流量大大减少。在 i n t e r n e t 迅速发展的情况下,对基于移动代理这类低流量的网络技术的需要将是极为 迫切的。 移动代理技术在分布式网络环境中有着广阔的应用前景,它在入侵检测系统、 智能网络管理、电子商务、移动计算、网格计算、矩阵并行计算等领域中研究的日 渐深入标志着其在分布式网络技术中的地位是举足轻重的。 本课题使用j a v a 语言进行开发。因为j a v a 语言具有很好的可移植性,安全性, 类加载机制,远程方法调用( r m i ) 机匍,这一切都有效遗保证系统平台得以方便 顺利地开发。 本文对移动代理的代码迁移策略和代理的迁移路由算法进行了深入的研究,通 过对目前多种迁移路由算法的总结,归纳出自适应代码传送,避免不必要的类文件 加载,代码缓存,类文件的分割等方法来对代码的迁移进行优化,同时讨论了移动 代理迁移时机的确定方法。随后,提出了一种基于路由可靠度的移动代理路由选择 方法。在此磷究基础上,阐述了系统平台的设计实现,包括平台的层次结构模块的 划分,系统中主要实体模块的设计与编码,系统的消息处理机制模块与系统安全性 模块的设计以及代理动态迁移的实现。 关键诵:移动代理;类搬载;远程方法诵用;代码缓存;类文件的分割;路由可靠 度 u 东北大学硕士论文 t h ed e s i g na n d i m p l e m e n t a t i o no f t h em o b i l e a g e n t sm i g r a t i o ns t r a t e g ya n d t h em o b i l e a g e n ts y s t e mp l a t f o r m a b s t r a c t w i t ht h ed e v e l o p m e n to ft h ec o m p u t e rs c i e n c ea n dn e t w o r kt e c h n o l o g y ,t h eb i r t ho f m a n yn e ws k i l l sa n dt h ei m p r o v e m e n t o f t h ea p p l i c a t i o n ,t h es o f t w a r ep r o g r a mn ol o n g e r s a t i s f yw i t hs i n g l ep cc o m p u t ei t s e l f , n o w a d a y s t h er e s e a r c ho nd i s t r i b u t e dn e t w o r ks k i l l i sv e r yh e a t m o b i l ea g e n ti st h el a t e s ts k i l lw h i c hi sf i tf o rt h ec h a r a e t e ro fn e t w o r k m o b i l ec o m p u t e t h em o b i l ea g e n tt e c h n o l o g yc a l lm i g r a t et h ea g e n tt os e r v e rf o r r u n n i n g ,a f t e rf i n i s ht h et a s k ,i tj u s ts e n db a c kr u n n i n gr e s u l t b yu s i n gt h i ss k i l l c a n d e c r e a s es om u c hd a t at h a ti st r a n s f e r r e dt h r o u g ht h en e t w o r k w i t ht h ef a s td e v e l o p m e n t o ft h ei n t e r n e t ,m o b i l ea g e n tt e c h n o l o g yi sn e e d e dk e e n l y 。 m o b i l ea g e n th a sab r i g h tf u t u r ei nd i s t r i b u t e dn e t w o r ka r e a t h er e s e a r c ho nm o b i l e a g e n ti sd e e p e ri ni n t r u s i o nd e t e c t i o n ,i n t e l l e c t i v en e t w o r km a n a g e m e n t ,e l e c t r o n i c c o m m e r c e ,m o b i l ec o m p u t e ,g r i dc o m p u t e ,m a t r i xp a r a l l e lc o m p u t ea r e as ot h a tm o b i l e a g e n tt e c h n o l o g yi si m p o r t a n ti nd i s t r i b u t e dn e t w o r kt e c h n o l o g i e s o u rm o b i l ea g e n ts y s t e mp l a t f o r mu s ej a v al a n g u a g eb e c a u s et h i sl a n g u a g eh a s m a n ya d v a n t a g e s ,f o re x a m p l e ,i th a st r a n s p l a n tc h a r a c t e r , i ti sm o r es e c u r e ,i th a sr e m o t e c l a s s1 0 a dm e c h a n i s m i ta l s oh a sr e m o t em e t h o di n v o c a t i o n ( r v i i ) m e c h a n i s m ,w h i c h a r ea l lc o n v e n i e n ta n de a s yf o ru st oa s s u r eo u rs y s t e mp l a t f o r md e v e l o p m e n t i nt h i sa r t i c l e ,w ed i dd e e pr e s e a r c ho nt h em i g r a t i o np r o b l e mo ft h em o b i l ea g e n t a f t e rr e a d i n gm a n ym i g r a t i o na l g o r i t h m ,w eb r i n gf o r w a r dm e t h o d sl i k ea d a p tc o d e t r a n s m i s s i o n ,u n n e c e s s a r yc l a s sl o a d ,c o d ec a c h e ,c l a s ss p l i t t i n g t oo p t i m i z ec o d e m i g r a t i o n ,a tt h e s a m et i m e ,a l s op u tf o r w a r da nr o u t ea l g o r i t h mb a s e do n r o u t e r e l i a b i l i t y t h e nt e l lh o ww ed e s i g nt h es y s t e mp l a t f o r m ,i n c l u d et h es y s t e ms t r u c t u r e , t h ei m p o r t a n ts o f t w a r ee n t i t yi nt h es y s t e m ,t h em e s s a g eh a n d l i n gm e c h a n i s m ,t h ed e s i g n o ft h es e c u r i t yo ft h es y s t e mp l a t f o r ma n dt h ed y n a m i cm i g r a t i o no ft h ea g e n t k e yw o r d s :m o b i l ea g e n t ;c l a s sl o a d ;r m i ;c o d ec a c h e ;c l a s ss p l i t t i n g ;r o u t er e l i a b i l i t y 一一 独创性声明 本人声明,所呈交的学位论文是在导师的指导下完成的。论文中取 得的研究成果除加以标注和致谢的地方外,不包含其他人已经发表或撰 写过的研究成果,也不包括本人为获得其他学位而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明 并表示谢意。 学位论文作者签名:嚆,神多 日期:2 口f ,2 2 0 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位 论文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印 件和磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文 的全部或部分内容编入有关数据库进行检索、交流。 ( 如作者和导师不同意网上交流,请在下方签名;否则视为同意。) 学位论文作者签名: 签字日期: 导师签名; 签字日期: 东北大学硕士论文 第一章绪论 第一章绪论 1 1 研究背景 软件代理系统的产生和发展是有深刻的应用背景的,其产生和发展也为提高软 件系统处理复杂问题提供了有效的途径。随着计算机硬件技术、网络技术的不断发 展,软件的覆盖范围和应用领域在不断扩大,特别是i n t e r n e t 技术的迅速发展,导 致软件系统的复杂程度呈迅速增长的趋势,另外除了软件系统的复杂性增加外,软 件系统的分布式特性也不断明显,由位于多个物理地点的许多计算机系统协作完成 科研和实际应用任务的工作模式已经取得了显著的成绩。应用和数据的复杂性、动 态性和分布性的增加对软件系统能力不断提出更高的要求。人们希望,软件系统除 了能被动地满足相应信息处理的需求,完成实现指定的任务外,还应具有一定程度 的智能性,能够主动地预测、适应乃至积极地寻找途径以支持用户完成任务。除了 由人来协调不同系统之间的运作,要求各个系统的软件间也能自动地进行合作以实 现更加复杂的功能。从这种需求出发,来自计算机、人工智能、信息处理、自动控 制等几个领域的研究人员开始对软件代理技术及多代理系统方法进行研究开发。进 入2 0 世纪9 0 年代,软件代理的研究得到了迅猛的发展,各种各样的应用及方法的 出现是软件代理成为潮流的重要标志。 网络分布式计算的迅速发展,使得移动代理技术在很多领域都得到广泛应用。 例如,移动代理在网络管理技术中的应用、移动代理在入侵检测系统中的应用、移 动代理在电子商务技术中的应用、移动代理在并行分布式计算系统中的应用、移动 代理在数据挖掘技术中的应用、基于移动代理的动态路由算法的研究等等。 以上所有的研究都是以移动代理系统平台为基础,所以如果想更好地研究上层 应用,底层可靠的代理平台系统是必不可少的。目前,多种移动代理平台已经被开 发出来。例如,a g l e t ( i b m 日本研究所) 、c h a o s ( f u j i t s u 开发) 、v o y a g e r ( 0 b j e c t s p a c e 开发) 、o d y s s e y ( g e n e r a l m a g i c 开发) 、y e l e s c r i p t 、m o l e 等等。其中比较著名的是 i b m 开发的a g l e t 。以上这些移动代理系统平台大都是作为基础平台,允许在此基 础上继续进行应用开发。 1 2 课题的提出 移动代理技术在分布式计算领域的应用前景可谓是一片大好,这种技术不采用 基于连接的机制,大大地减小了网络之间的数据流量,对于i n t e m e t 网络带宽资源 紧张的今天来说,移动代理技术确实是一个划时代的发展。但是任何一种技术的产 生都是伴随着不断更新,不断完善。要使移动代理技术能在现实中真正得到广泛而 1 东北大学硕士论文 第一章绪论 可靠的应用,那么移动代理的系统平台应该是这项技术今后发展的主要一环。确保 平台的性能良好,运行稳定,安全可靠,才能保证移动代理的各种高级应用的顺利 实施。 移动代理的应用离不开下层运行的稳定安全的平台系统,针对上节提到的各个 平台,它们各自都存在着一些不足之处。以a g l e t 系统为例,由于最初设计的时候 代理的应用还没有像今天一样广泛,所以很多的问题在设计之初没有被考虑进去。 随着技术发展,a g l e t 进行了版本的更新,但是由于是在原来系统基础上的改进,所 以内部代码之间的调用关系变得混乱,层次上不分明,导致系统性能的下降,并且 在消息处理机制和安全性的实现上更是表现出模块之间调用过多,关系复杂的缺点。 本课题宗旨就是要开发一个能在性能方面,运行稳定性方面,安全可靠性方面 都有良好表现的移动代理系统平台,并对移动代理的迁移机制进行进一步的深入的 研究,为移动代理技术在今后的真正应用打下坚实的基础,提供可靠的保障。 1 3 研究意义 2 0 世纪,人类在科学领域取得了辉煌的成就,人类科学技术发生了深刻的革命, 信息科学的诞生和发展是其中最为重要的组成部分之一。信息科学的两大技术,计算 机技术和通信技术,在不到t 0 0 年里一日千里地飞速发展。科技的革命,使人类具 有了前所未有的用科技实现梦想的能力。随着信息技术、网络技术的日新月异,“秀 爿不出门,能知天下事”已经不是比喻、不是夸张,甚至也不是件难事,这是本世纪 科学技术领域最大的成就之一。信息科学的发展带给人类便利,带给新时代最大的 机遇和挑战。 在今天这种网络不断升级更新的大环境中,传统的网络与计算机网络的融合与 过渡是大势所趋。计算机网络将在人们的生活中扮演着越来越重要的角色,这同时 也给我们提出了一个问题,针对如此庞大的应用需求,如何才能做到合理地使用网 络资源,利用更少地带宽去完成我们的应用需求。移动代理技术的出现解决了这个 问题,它可以利用自身的智能型,很好地利用网络当中的计算资源,网络资源,软 件资源来完成用户的交给的任务。同时也可以保证在入侵检测系统、电子商务系统, 并行分布式计算系统中耗费更少的资源,达到更快速、更稳定的目的。 移动代理的概念最先是在人工智能领域被提出的,所以代理的智能性是整个系 统需要考虑的另一个重点,它如何能根据网络中的情况动态做出智能移动决定、并 且确定迁移目的地都是移动代理技术在具体应用中的关键。 本课题的研究就是综合以上的思想,目的是开发一个性能完善并有具体应用价 值的移动代理系统平台,在此平台基础上进行下一步基于具体应用的研究,把移动 代理的技术真正应用在基于分布式计算的异构网络环境中。 一2 东北大学硕士论文 第一章绪论 1 4 论文结构 本文主要分为三部分,第一部分主要介绍移动代理代码的迁移策略;第二部分 介绍移动代理迁移的路由问题;第三部分主要介绍移动代理平台的设计与实现。 全文共分五章,第一章为绪论,主要介绍课题的研究背景,课题的提出及研究 意义;第二章介绍移动代理代码迁移策略的选择方式,包括强迁移,弱迁移,推策 略和拉策略;第三章主要介绍移动代理迁移的路由策略,阐述一种基于路由可靠度 的路由选择方法模型;第四章主要介绍一下系统平台主要实体的代码设计和实现: 第五章为结论部分,主要介绍了移动代理平台的应用方向,目前工作取得的成果以 及对课题下一阶段目标的展望。 3 一 东北大学硕士论文 第二章移动代理的代码迁移策略选择 第二章移动代理的代码迁移策略选择 2 1 移动代理的迁移原因 迁移是移动代理的内部机制,它的定义是移动代理离开当前所在的主机而移动 到网络当中其它主机继续运行的过程。迁移策略是指移动代理代码的转移方式,代 理如何选择目的地以及如何在已知网络中确定移动路线的一系列过程。 那么移动代理为什么迁移呢? 不同情况下代理的迁移原因不尽相同。 访问服务或资源:代理运行所需的资源只在远程主机上提供,那么代理就 必须迁移到远程主机来运行。 负载均衡:本地主机繁忙的时候,运行在本地主机上运行效率很低,这时 候代理最好的选择是迁移到其它非繁忙的主机系统继续执行,这样整个系 统能有更好的性能体现。 减少网络流量:有时代理在运行过程中将会产生大量的中间数据,而将这 些数据从服务器端传送到客户端会占用大量的网络带宽。在这种情况下, 代理可以迁移到服务器端执行而只携带最终的结果返回。 减少在线时间:当用户在低带宽,高延迟,不稳定的移动设备上运行代理 的时候( 如p d a ) ,它不必在该代理的生命周期内时刻保持在线,而可以在 派遣出代理后切断连接并在随后某个时间恢复连接来接收结果。 代理迁移问题有几个方面值得注意: ( 1 ) 迁移机制:一些系统如t e l e s c r i p t ,a g e n tt c l 甜,a r a 3 】通过专门的语 言解释器来捕获进程状态来为迁移提供帮助。其它系统如t a c o m a l 4 j , m o l e 5 1 ,o d y s s e y 6 1 ,a g l e t l 7 1 实现的是代码的迁移,并没有迁移代理的 当前运行状态。f u n f r o c k e n 在语言级实现了相似的功能,并没有对j a v a 虚拟机做改动,它利用一个预处理器将状态捕获并将代码添加到代理自 身代码中,从而可在目的主机上重建代理的初始运行状态。 ( 2 ) 传输的安全性:m o l e 和o d y s s e y 支持利用单一命令或方法实现的透明迁 移。与此相比,i b m 日本研究小组开发了一套基于标准t c p i p 的专用 协议- - a g e n tt r a n s f e rp r o t o c o l ( a t p ) 。而c o n c o r d i a t 5 j 利用j a v a 语言中 现有的序列化机制来实现传输。 ( 3 ) 互操作性和兼容性:文献移动代理迁移【9 1 中作者探讨了在异构平台间代 理迁移的问题。该文提出的解决方案是,将代理程序中的平台无关部分 和平台相关部分分离。对于某平台,平台无关部分通过调用平台相关部 分中针对该平台特别实现的方法来与该平台进行交互。 4 东北大学硕士论文 第二章移动代理的代码迁移策略选择 ( 4 ) 服务定位与信息搜索:文献代理搜索【1 0 】中提出了一种代理搜索算法, h p f s 。该算法假设代理的运行时间二项式分布于某时间范围内,并利 用基于该假设的相关算法降低迁移过程中的搜索代价和由搜索引起的 网络流量。文献代理信息发现f l l 】中提出了一种基于人工神经网络的信息 探测方法,利用模糊逻辑来处理代理通信中的不确定性和协作性。 ( 5 ) 迁移次序:在文献代理最优迁移【12 】中,作者针对在代理交互过程中有特 定限制情况下该怎样确定最佳迁移次序的问题提出了明确的算法。 以上几个方面是代理迁移问题的几个不同的侧重点,这些方面目前都是有待于 深入研究的课题。 2 2 代码迁移的定义 代码迁移被定义为动态改变代码段和代码执行位置的绑定的能力1 3 】。在分布式 操作系统的平台上,很多研究人员就操作系统层上的进程及对象的代码和状态迁移 的课题作了大量的深入的研究。进程的迁移是指正在运行的进程从一台主机迁移到 另外一台主机的过程。操作系统提供了迁移需要的工具,包括迁移进程和它执行环 境的绑定。这些工具被作为负载均衡的思想透明地提供给编程人员和程序。对象迁 移指的是对象在地址空间内的迁移并且在迁移时提供更多的粒度。在分布式系统中 无论是进程的迁移还是对象的迁移都是在高带宽、可预测延迟、同构可信赖的小规 模网络中传送代码和状态。 另一方面如果移动代码系统想要运行在大规模,可变带宽并由异构主机组成的 网络中。移动代码系统具有以下的一些特性: 考虑程序的编写位置。 编程者控制移动应用。 移动性不只在负载均衡系统中应用,还在专用化服务,入侵检测,诊断和 容错系统中有应用。 2 3 迁移类型 定义了执行单元( e u ) 作为连续计算的流,并且把资源( r e s o u r c e ) 定义为多 个e u 间共享的实体。 强迁移:移动代码系统允许e u 的代码和状态从一台主机迁移到另外一台主机e 弱迁移:移动代码系统仅仅允许e u 的代码( 或一些初始化数据) 在不同的主 机间迁移,而状态被禁止迁移。 2 4 设计范例 代码的移动主要应用在以下三个范例中: 东北大学硕士论文 第二章移动代理的代码迁移策略选择 1 ) 远程赋值:当一个主机h 】上的e u a ,需要用到主机h 2 上的一些资源, a 将会向h 2 发送一段请求代码。h 2 上的组件b 将会通过执行a 发送过来 的代码来操作资源进行应答,并且把结果返回给a 。 2 ) 需要代码:假设a 在主机h l 上执行需要利用主机h 】上的一些资源,但是 却没有能操作这些资源的代码段。它将利用有此代码段的主机h 2 的组件b 上执行a 的请求并送回能操作该资源的代码段,代码a 利用收到的结果可 对资源进行操作。 3 ) 移动代理:这是我们最感兴趣的范例。还是应用上面的例子,这回a 将迁 移到主机h 2 ,并且携带任何a 在执行过程中需要的主机h 1 中的数据或资源, 然后利用所需的资源在主机h :上运行。与前两种情况不同的是,这次不再 是组件a 和b 间代码的转换,而是组件本身作为一个独立的实体利用执行 任务所需的状态资源在网络中迁移。 2 5 迁移策略 大部分的移动代理系统都是用j a v a 语言开发的,而一直以来人们避而不谈j a v a 语言开发的一些不尽如人意之处,近期,b i n d e r h j 指出资源的管理问题而r o t h ” 发现了一些安全上的漏洞,即代理平台不可能完全意义上的避免恶意代理的攻击。 所以说迁移是伴随着风险的,一个好的迁移策略对移动代理系统来说是必不可少的。 当一个代理决定迁移到另外一台主机时,下层的代理平台负责终止代理在本平 台的运行,串行化代理,并把代理的状态发送到目标代理平台,目标平台收到后重 新创建一个线程来继续执行代理,这是所有的移动代理系统都需要实现的最基本的 迁移框架。移动代理的迁移策略有拉( p u l l ) 策略和推( p u s h ) 策略,拉策略就是利 用已有的j a v a 技术来加载需要的类文件。如果在执行的时候需要的用到的类文件在 本地无法获得,则j a v a 的类加载器会尝试远程寻找所需的类文件。此策略可分为拉 一个类文件和拉多个类文件。 推策略是指代理的代码( 包括相关的对象的代码) 和串行化的代理状态一同发 送。移动代理使用这个策略的很重要的一个特性是自主:代理不需要与母平台进行 联系。乍看上去,这种策略的代理移动速度应该很快,因为对于一个完全的代理来 说仅仅需要一次传送。但是,这种策略的主要缺点是有可能传送到目标平台的代码 从未被使用,这对移动代理系统的性能是有一定影响的。 在所有能发生的情况中,纯粹的拉策略和纯粹的推策略在网络负载和应用方面 的表现都不是最优的情况。针对以上两种策略做一个简单的比较,一个代理经过七 次迁移到。七个不同的代理平台,本地局域网的最高带宽是1 0 0 m b i d s 。性能如图2 1 所示,如果仅仅有几个类代码需要在所有的平台上都执行,拉策略的表现相对好一 些。相反,如果很多类需要在所有平台上执行,推策略将是一个很好的选择。在这 6 东北大学硕士论文 第二章移动代理的代码迁移策略选择 里究竟以什么样的值来衡量类的多少并没有确定,因为分别使用两种策略以保证网 络有相同负载的情况下所需要的类的数量取决于很多参数。 我们的目标是要增强迁移效率,也就是说,来研究迁移技术以便我们可以仅仅 高效地传送远程代理平台需要的代码和数据。我们在传送前没有对类文件进行压缩 或者使用其它的中间代码来代替j a v a 字节码。使用的方法如下: 使用代码和数据的自适应传送方式,这种方式可以保证在运行期间决定哪 些类应该推到下个目标平台,哪些类应该在随后被拉到目标平台。代理可 以决定哪些数据项必须要传送到下一个目标平台并且决定哪些数据项必须 被送回母平台。 如果使用拉策略,j a v a 的类加载机制可能会加载一些永远都不被使用的类 文件,这将大大削弱迁移的效率。下文给出一个例子来说明这个问题并提 出一个全自动的解决办法来阻止不必要的类加载。 5 0 0 叼4 0 0 厦 蔓3 0 0 血 生2 0 0 潍 捌1 0 0 o 0l 2345 使用类文件的数量 图2 1 两神策略比较结果 f i g 2 1 t w os t r a t e g y sc o m p a r a t i o nr e s u l t 代码缓存是避免大量代码重复传送以增加迁移效率的强有力的技术。由于 安全方面的限制和相同类文件不同版本问的区分问题,很多j a v a 代码的工 具包被禁止使用。下文介绍一种在j a v a 提供能力之外的代码缓存技术来显 著增强代码迁移的效率。 提出基于方法的代码传送机制,也就是传送代码中的单个方法而不是传送 整个代码的类文件。相同类文件中的不同方法可能有很多种执行的可能性, 因此可以把类文件分割成更小的传送单元。 7 一 东北大学硕士论文 g z - 章移动代理的代码迁移瓮略选择 2 。5 。1 自适应的代码传送 移动代理可以根据相应的环境变量来动态决定它所使用的迁移策略。需要的环 境变量包括每个类文件的代码大小,类文件在下一目标平台使用的概率,网络带宽 和延迟等。也可以把推测略和拉策略结合使用。例如,可以把代理的主类文件推到 下一平台并且动态加载其它类。代理可以在运行期间影响迁移策略以便选择哪些类 应该被推或者拉到目标平台。 我们提出可编程的迁移策略。想象一下迁移策略作为移动代理平台的一个程序 负责代理的迁移,基本的操作有发送代理的状态或者发送代理的代码单元( 一个单 元应该是一个类文件或者一系列的类文件) 。迁移过程中没有发送的粪文件必须在随 后被拉到目标平台。 描述推策略的时候,定义所有的类文件来形成独立的代码单元,这些代码单元 将随着代理数据一起发送到下个目标平台。当描述拉策略的时候,定义每个类文件 来形成独立的代码单元并且它们都不随着代理的代码一起传送。 2 5 2 不必要的类文件的加载情况 我们注意到即便是不被使用的类文件同样也是被j a v a 虚拟机加载的,在代理的 反序列化过程中j a v a 虚拟机已经加载对象属性所需要的所有的类文件,即使在一个 对象的属性将不被使用的情况下。只有本地变量,参数和返回值的代码被使用时加 载。因此,拉代码对于减少网络的负载的好处被本地变量限制。 通过变换所有对象属性的类型来在使用过程中序列化和进行有效的类型转换。 效果是如果对象被使用,那么相应的类文件就被加载。 2 5 3 代码缓存 代码缓存技术主要是避免经常使用的数据通过远程访问重复被加载,而在本地 对这些数据进行保存。针对移动代理的情况,在本地保存代理的代码以避免过多的 远程代码加载操作。如果在代理只访问确定代理平台两次的情况下,使用代码缓存 不仅能提高系统的性能,还能阻止相同类型的代理访问同一个代理平台。 j a v a 的代码缓存技术是类加载机制的一部分。类加载器是一个对象,它负责加 载一个或多个类;每个类被一个确定的类加载器对象加载。在类加载器内部,类文 件被用它们的名字进行标识。不同的类加载器必须创建并使用不同的命名空间,这 样才能保证不同的类加载器在加载类文件时不能彼此互相加载。 与类缓存机制相比,现有的j a v a 机制有两个弱点。第一个是j a v a 的类缓存只 是阻止代码的加载( 拉策略) 并不阻止代码的推策略。第二个是代理工具包的设计 者必须在考虑代码缓存的基础上在两种转换中作出决定。对于相同类型的不同代理, 一8 东北大学硕士论文 第二章移动代理的代码迁移策略选择 代码缓存禁止类加载。当不同版本的类文件具有相同的名字时,缓存机制可以进行 自动区分。第一种情况下所有的代理都被相同的类加载器加载,这将导致相同类文 件的不同版本不能被区分。第二种情况下每个代理都被不同的类加载器加载。这种 情况下,如果一个类文件被不同的代理使用,将不能阻止它们加载相同的类文件。 图2 2 所示代码在使用缓存机制的情况下的传送过程: 我们的系统实现了代码缓存,解决了前面提到的一系列问题。在迁移的过程中, 需要检查在没有发送全部代码的情况下代码在目标平台是否可以使用。如果可以使 用则由于目标平台对代码进行过缓存,这时不需要发送全部代码;如果不可以使用, 说明目标平台之前没对代码进行缓存,需要发送全部代码。我们通过使用m d 5 算 法的信息摘要来比较两个类文件。 _隧 目i 奠缓存机制的实现 f i g 2 2 c o d eo a c h ei m p l e m e n t a t i o n 图2 3 表示了代码缓存的实验结果,当一个代理在生存周期内走两次同一路线 执行任务。第一次,所有的代码必须被传送到路线经过的每个代理平台;而代理第 二次经过此路线的时候,代码将不被传送,因为所经过的各个平台已经缓存了代码。 9 - 东北大学硕士论文 第二章移动代理的代码迁移策略选择 冒 旦 厘 富 窖 4 睁 士 旧 静 制 01 0 0 0 02 0 0 0 03 0 0 0 04 0 0 0 05 0 0 0 06 0 0 0 0 代码大- , xe b y t e 图2 3代码缓存实验结果 f i g 2 3 t h er e s a u l to ft h ec o d ec a c h ee x p e r i m e n t 2 5 4 类文件的分割 到目前为止,分析描述的所有的迁移策略都是基于类文件的传送或者类文件打 包( j a r 文件) 的传送。下面将要介绍一种基于方法的传送模式而不是先前的类文 件传送模式。 可以想象一个例子,移动代理在网络中按照一定的路线迁移,搜索不同种类的 数据库中的相同类型的消息,例如图像,电影,文本文件,音频文件。代理利用专 门的算法分析每个数据类型。此时按照方法迁移思想的迁移效率被在每个平台发现 的不同数据类型的数目影响( 如发现图像,电影,文本文件,音频文件几种数据类 型的一种或几种) 。最坏的情况就是如果没有找到任何数据类型,那么代理的代码被 完全加载。 通过进一步研究代理的典型结构,可以定义四种不同类型的方法: ( 1 ) 仅在代理的母平台启动阶段使用的方法。 ( 2 ) 代理在网络中迁移过程中使用的方法。 ( 3 ) 在代理生存周期的结束时刻使用的方法,这样的方法很可能在产生代理 的母平台再一次执行。 ( 4 ) 对异常处理的方法。 如果把上述方法2 和代理的m a i n 方法组合在一起进行加载,而其它方法在需要 使用的时候再临时加载,那么迁移的效率将会大大提高。 分割类要服从以下两个步骤: 1 ) 把原来的方法移到一个新的类文件中并且保证它们在新的环境中还是可执 1 0 啪o o 9 8 7 6 5 4 3 2 l 东北大学硕士论文 第二章移动代理的代码迁移簸略选择 行的。新的类文件与原来的放置在同一个包中。 2 ) 建立一个存根方法替代原来的方法。存根方法必须同原来方法有相同的行 为方式。例如,它必须具有相同数量的参数,具有相同的返回值类型,相 同的标志位。当存根方法被调用,它将调用分割类中相应的方法。 分割之前类的源代码为: p u b l i cc l a s sa g e n ti m p l e m e n t ss e r i a l i z a b l e p u b l i cv o i dr u n ( ) m a i ne n t r y p r i v a t ev o i ds t a r t a g e n t ( ) f 分割类以后的源代码: p u b l i cc l a s sa g e n ti m p l e m e n t ss e r i a l i z a b l e p r i v a t ea g e n t $ s o 1s 01 ; p u b l i cv o i dr n n ) s t u bm e t h o dt of o r w a r dr e q u e s t p r i v a t ev o i ds t a r t a g e n t ( ) i f ( s o l = = n u l l ) s 0 12 n e w a g e n t $ s 0 1 ( ) : s 0 1 s t a r t a g e n t ( ) ; ) ) n e wc l a s sw i t hh o m em e t h o d s c l a s sa g e n t $ s 01i m p l e m e n t ss e r i a l i z a b l e v o i ds t a r t a g e n t ( ) ) ) 利用下面的方法来测试类分割的效果,先实现一个由六个方法构成的代理。例 如,其中一个方法在所有的代理平台上执行,一个方法( s t a r t a g e n t ) 只在产生代理 的母平台上使用,其它四个方法用来执行不同的数据类型( 针对图像,电影,文本 文件还是音频文件) 。代理的大小是2 0 k 字节。类分割后,得到六个新类,每个新 类只含有一个方法,含有r u n 方法的类大小为3 5 6 6 字节,含有s t a r t a a g e n t 方法的类 大小为1 8 5 2 字节,而另外四个类大小各3 6 2 2 字节。本测试是在本地网络中进行, 我们改变了最大带宽。代理分别利用推策略和拉策略迁移至q 四个代理平台,两种策 略情况下,我们改变了代理在每台主机上发现的数据类型的数量。在拉策略的情况 下,数据类型数量影响代理要加载的类的数量。如图2 4 ,分割代码可以对低带宽 情况下的迁移有很显著的效果,这种情况下,拉策略并不比推策略慢。在高带宽网 络中,推策略要比拉策略表现好的多。 1 1 东北大学硕士论文 第二章移动代理的代码迁移策略选择 冒 旦 宦 蟹 静 划 d 睁 剐 臣 树 网螽带宽 k b i “s 】 图2 4 类分割后两种迁移策略对比 f i g 2 4 t w om i g r a t i o ns t r a t e g y sc o m p a r a t i o na f t e rc l a s ss p l i t t i n g 2 5 5 移动代理迁移时机的确定 综合考虑网络负载均衡的情况下,对于运行在动态变化的网络环境中的移动代 理,怎样才能自主确定一个时机从当前所在的主机迁移到网络中其它主机继续执行 也是我们要考虑的一个重要问题。这个问题的实质就是评测主机运行环境与软件代 理实体问的契合程度。 解决此问题时不主张利用代理频繁探测主机的状态,因为如果这样做其一将会 耗费很大的系统资源;其二如果利用代理进行探测主机状态,代理通过对采集到的 数据进行分析后决定它需要迁移到另一台主机继续运行的时候,当前的网络及各个 主机的情况可能已经发生了变化,因为从采集数据到决定迁移之间有一个时间差, 而网络环境是瞬息万变的,所以针对这一点,也不宜使用代理进行主机状态的探测。 为了更及时地响应网络环境的变化,应该使用一种可以对下一时刻网络环境有 提前预测的方法,这样就能最大限度地缩小时间差,保证代理迁移决定的准确性。 2 5 5 1 对迁移有影响的主机状态参数 利用与代理运行相关的主机资源消耗量来做为主机状态的量度。由于代理运行 的主要工作是计算和磁盘的访问,所以代理主要利用的主机资源包括: c p u 的执行速度及利用率; 内存大小及利用率; 磁盘读写速度、缓存大小及当前磁盘队列长度; 主机运行的进程数量; 中断的时间。 1 2 东北大学硕士论丈 第二章移动代理的代码迁移策略选择 其中w i n 3 2d e v e l o p e rr e f e r e n c e 有这些系统参数的详细说明。 主机状态是随着时间变化的,只有在主机状态中涉及到的所有资源都可用时该 主机的状态才适合代理的运行,用r m 。表示资源r 的可用度阈值。当一种资源的消 耗低于r 。时可用,而超出该值时则该资源对代理不可用,这时代理需要迁移到其 它的主机继续执行。 将系统时间看做由微小单位时间构成,一个单位时间是代理计算资源耗用情况 并做出迁移决定的常规周期。尽管实际中的网络是连续的时间系统,但只要单位时 间取的足够小,在此基础上得到的结果将会接近对一个连续时间系统寓接分析得出 结果。 2 5 5 2 主机状态的概率模型 利用p i 来表示资源r ,的消耗量在某个单位时间内落在 r 。i 。,r 。】闻的概率;p i 表示在代理剩余运行时间内,p i 总是落在 r 。i n ,r 。、 间的概率;p 。表示在代理剩余 运行时间内,主机状态c 总是适合代理运行的概率。对于主机状态利用到的每种资 源,用消耗量的概率分布对其变化趋势建模。在每个时间步,算法可获得关于近期 资源消耗的最新统计数据,并在此基础上对概率函数进行修正。同时,代理预测其 剩余运行时间,并将该数值传递给主机。主机可计算每种资源的p i 和p i 。此外, 也要计算出p 。,它是做迁移决定的参考,假如它比预先规定的基准高,代理可认为 在其剩余时间内主机状态的变化不会对其产生显著影响。否则的话,代理应该迁移 到网络中另外台更合适其运行的主机继续完成剩余的任务。 该模型建立在资源消耗量为随机变量并服从高斯分布的假设基础上。算法中的 关键数据是对资源耗用量平均值合标准偏差的统计。在此基础上,利用了一种时机 选择算法【m 】,使得代理在某一时刻能够自主判定是否应该进行迁移。 1 3 东北大学硕士论文 第三章移动代理迁移的路由选择 第三章移动代理迁移的路由选择 3 1 移动代理路由选择的发展情况 路由选择是支撑网络传输的关键技术,是随着网络的出现而诞生,随着网络规 模的扩大而发展起来的。网络、流量规模的大小和路由选择算法的有效性永远是一 对相互矛盾、相互促进的因素。短短十几年来,全世界网络的数量和业务流量的总 数以惊人的速度增长,这无疑对路由选择算法提出了更高的要求,也极大地推动了 对路由算法的研究。但是我们注意到目前主要应用的几种路由选择算法存在着一些 缺陷。比如距离矢量路由协议有收敛速度慢,不适用于大型、复杂的网络的缺点; 链路状态路由协议存在初始的发现过程中可能出现泛滥( f l o o d ,由一点同时向多 个方向发送) ,降低网络传输数据能力和对路由器硬件需求过高,需消耗大量网络 资源等不足。 现阶段随着对移动代理的迁移路由研究的日渐深入,研究者提出了很多种路由 算法,例如不同阶段利用蚂蚁算法研究代理路由的有, 1 8 】,【1 9 】;基于移动代理的可 变安全路由协议【2 0 l ,【2 l 】;移动代理的随机路由算法 2 2 1 ;基于m p l s 的移动代理路由算 法 2 3 : 这里介绍一种基于不可靠网络环境中路径可靠度的路由选择方法【2 ”。利用这种 方法代理必须可靠地完成事先交给它的任务。要想让代理可靠完成任务必须先要具 各三个条件:可靠的计算机通信网络,可靠的任务处理过程和可靠的资源分配策略。 我们的目的是想让代理可靠的程度最大化,在软件可靠的假设满足的条件下,代理 可靠性要依赖于代理经过路径的完全可靠。 3 2 基于可靠度的路由选择的基本定义 看映射g = ( v ,彳) ,它由n 个节点主机v 和m 条直接路径a 组成。t 代表代理的任务( t a s k ) ,代理从母平台所在的主机连续访问这些节点主机完成事先 交给它的任务t 。 定义l 对任意两个节点主机,v i ,v j v ,定义如下操作: 1 ) v 。j v j ,代表v 。到v 之间至少有一条路径使用。 2 ) v 寸v i ,代表v 。到v 之间有且只有一条路径可以使用。 如果v h 。代表母平台所在的节点主机, t :v h o m ejkj j , p 。i 代表从节点主机罐0 节点主机j 路径的使用概率。p 。d 是从源节点主机s 到目的 节点主机d 的一条路径,以下定义由路径集合a 中的一条路线: 1 4 东北大学硕士论文 第三章移动代理迁移的路由选择 p s d :s 哼圪。寸。寸斗d 以下定义了此问题研究的假设: 1 ) 网络拓扑固定的情况下; 2 ) 节点主机可靠的情况下; 3 ) 路径的延迟是己知确定的; 4 ) 任意两个节点主机间路径的通断互不相关,都是独立的; 5 ) 不考虑网络的修复情况。 利用假设4 我们进行路径可靠度的定义。 定义2r ,做为路径的可靠度 i p 。d :s 斗斗巧,寸。_ _ d ,屯的定义为 r = p xp h hx - p i k k xp i 矗 i i r e 可以被认为路径的可靠度psd 推论如果代理有任务:v h o 。jkj ,为了完成任务t , 定义了t 的可靠度r r2 强气r 。一龟。,r e 是路径p

温馨提示

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

评论

0/150

提交评论