




已阅读5页,还剩77页未读, 继续免费阅读
(计算机应用技术专业论文)基于移动agent的ejb对象迁移构件技术的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 中文摘要 移动计算环境下,需将组件对象迁移到被访问数据所在的服务器,即数据访问本 地化,避免大量数据在网络上传输,减少网络拥塞。移动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 迁移中引入e j b 企业级组 件对象的动态迁移,在分析移动a g e n t 迁移基本原理、e j b 组件技术以及现有e j b 组 件动态迁移技术基础上,提出了一个通用的基于移动a g e n t 的e j b 对象迁移构件模型 a e m c m ( 包括代码迁移构件a e c m c 、状态迁移构件a e s m c 、迁移监听构件a e m l c ) , 来实现e j b 组件对象的动态迁移;采用构件分析技术,给出了整个迁移构件模型的分 析和设计过程,实现了对e j b 组件对象迁移功能怠好的封装、构件化管理支持;在状 态迁移中,实现了状态信息捕获和恢复机制与快照模式的结合应用。 本文针对对象迁移过程中消息传递问题给出了相关论述、体系结构框架;采用和 改进了基于同步事件驱动表示的移动e j b 对象强迁移同步消息传递算法,可以很好地 同步对象消息的发送和接收,并且在存在多个目的地主机的情况下尤为重要;本文还 提出了一种解决组件迁移过程中可能出现的问题的相关方案,给出了移动对象迁移的 性能分析和评价过程。 针对迁移数据安全性问题,本文讨论和设计了一个基于移动a g e n t 对象迁移代理 s p ( s a f ep r o x y ) 通信模型和基于j a v a 技术的数字签名与签名验证的移动a g e n t 安全体 系。 最后本文实现了一个原型系统应用的实例。 关键词:移动a g e n t ,e j b 对象,迁移构件,同步消息传递算法,数字签名 英文摘要 a b s t r a c t i nm o b i l ec o m p u t i n ge n v i r o n m e n t , i ti se s s e n t i a lf o rc o m p o n e n to b j e c t st om i g r a t e t h e m s e l v e st ot h es e r v e rw h i c h s t o r e sd a t aa c c e s s e d t h a t sf o rr e a l i z i n gt h el o c a ld a t a a c c e s s ,a v o i d i n gt h ef l o wo fr a wd a t ai nt h en e t w o r k ,a n dr e d u c i n gal o to fn e t w o r kt r a f f i c m o b i l ea g e n th a sd i s t r i b u t e dc h a r a c t e r i s t i c s ;t h ee s s e n c eo fm i g r a t i o nc o m p u t i n go fm o b i l e c o m p o n e n to b j e c t si st h et h i n gp r o v i d i n ge x e c u t a b l ec o m p u t i n gp r o c e s s e st oo t h e rm a c h i n e s , b u tn o tt h eo n ec a l l i n gs e r v i c e sa m o n gh o s t s t h em i g r a t i o no fm o b i l ea g e n ti n c l u d e st h e s t r o n g m i g r a t i o na n dt h ew e a k m i g r a t i o n st e c h n o l o g y am o b i l ea g e n t ss t a t eh a sc o d e s t a t e , d a t e s t a t e ,a n de x e c u t i o n s t a t e w e a k m i g r a t i o no n l ym i g r a t e sd a t e s t a t ea n dc o d e ,b u t s t r o n g m i g r a t i o ns t i l lm i g r a t e se x e c u t i o n s t a t e a m o n gs p e c i a lm u l t i - e n v i r o n m e n t ,i ti sa ni m p o r t a n tp r o b l e mf o ru st oa p p r o p r i a t e l y p r o v i d em o b i l ea g e n to b j e c t sw i t he f f i c i e n tm a n a g e m e n ta n ds u p p o r tf o rr e a l i z i n gt h e i r m i g r a t i o nc o m p u t a t i o n t h e r e f o r e ,t h i st h e s i si n t r o d u c e se j bo b j e c t s d y n a m i cm i g r a t i o ni n m o b i l ea g e n t sm i g r a t i o n , a n dp r e s e n t sag e n e r a la e m c m ( m o b i l ea g e n t b a s e de j b o b j e c t s m i g r a t i o nc o m p o n e n tm o d e l ) w h i c hi n c l u d e sa e c m c ( m o b i l ea g e n t b a s e de j b o b j e c t s c o d em i g r a t i o nc o m p o n e n t ) ,a e s m c ( m o b i l ea g e n t - b a s e de j bo b j e c t s s t a t e m i g r a t i o nc o m p o n e n t ) ,a n da e m l c ( m o b i l ea g e n t - b a s e de j bo b j e c t s m i g r a t i o n l i s t e n e rc o m p o n e n t ) f o ri m p l e m e n t i n ge j bo b j e c t s d y n a m i cm i g r a t i o n ;t h i sr e s e a r c h p r o v i d e st h ee n t i r ea n a l y z i n ga n dd e s i g n i n gp r o c e s so ft h em i g r a t i o nc o m p o n e n tm o d e lb y u s i n gc o m p o n e n ta n a l y s i s - b a s e dt e c h n o l o g y , t h e r e b y , t h en i c e re n c a p s u l a t i o no fm i g r a t i o n m a n a g e m e n t sf u n c t i o na n dc o m p o n e n t - o r i e n t e dm a n a g e m e n t ss u p p o r ta r ei m p l e m e n t e d ; s n a p s h o tp a t t e mi sa p p l i e dt ot h em e c h a n i s mo f c a t c h i n ga n dr e s u m i n gs t a t ei n f o r m a t i o ni n s t a t em i g r a t i o n i no r d e rt os o l v et h ep r o b l e m so fm e s s a g ep a s s i n gi nt h ep r o c e s so fo b j e c t s m i g r a t i o n , t h i st h e s i sp r o p o s e st h er e l e v a n td i s c u s s i o na n da r c h i t e c t u r ef r a m e ;as t r o n g m i g r a t i o n s y n c h r o n o u sm e s s a g ep a s s i n ga l g o r i t h m so fm o b i l ee j bo b j e c t sb a s e do ns y n c h r o n o u s h a p p e n i n g - d r i v e nd e s c r i p t i o ni sa d o p t e da n dm o d i f i e d ,w h i c hm a k e ss y n c h r o n o u so b j e c t s 英文摘要 m e s s a g ep a s s m gb e t t e r , a n dt h ea l g o r i t h m si sv e r yi m p o r t a n tf o rt h ec o n d i t i o nw h i c hh a s m a n yd e s t i n a t i o nh o s t ;t h et h e s i ss t i l lp u t sf o r w a r dam e t h o dt os o l v et h ep r o b l e mw h i c h p o s s i b l yh a p p e n sd u r i n gt h ep r o c e s so fc o m p o n e n tm i g r a t i o n ,a n dg i v e sac o u r s ea n a l y z i n g a n de v a l u a t m gm i g r a t i o n sc a p a b i l i t yo f m o b i l eo b j e c t s i no r d e rt os o l v et h ep r o b l e m so fm i g r a t i o n sd a t as a f e t y , t h i st h e s i sd i s c u s s e sa n d d e s i g n sam o b i l ea g e n t - b a s e do b j e c t s m i g r a t i o np r o x yn a m e ds p ( s a f ep r o x y ) a n da m o b i l ea g e n t ss a f e t ya r c h i t e c t u r eo f j a v a b a s e dd i g i t a ls i g n a t u r ea n ds i g n a t u r ev e f i f i c m i o n f i n a l l y , t h et h e s i si m p l e m e n t sa ne x a m p l eo f t h ep r o t o t y p eo f s y s t e ma p p l i c a t i o n w r i t t e nb yw a n g x i a o g a n g s p e c i a l t y :c o m p u t e ra p p l i c a t i o nt e c h n o l o g y d i r e c t e db yp r o f w uy o u - x i n k e y w o r d s :m o b i l ea g e n t , e j bo b j e c t s ,m i g r a t i o nc o m p o n e n t , s y n c h r o n o u sm e s s a g e p a s s m ga l g o r i t h r n s ,d i g i t a ls i g n a t u r e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经 发表或撰写过的研究成果,也不包含为获得南昌文学或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了 明确的说明并表示谢意。 学位黻作者虢夕一一哟签字嗍。口吗年占月f 日 学位论文版权使用授权书 本学位论文作者完全了解南昌太学有关保留、使用学位论文的规定,有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本 人授权南昌大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以 采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名夕卜哟 签字日期;。2 一占 年占月r 日 学位论文作者毕业后去向: 工作单位: 通讯地址: 导师签名 锻埘 签字日期:弘以年月;日 电话 邮编 第一章绪论 1 1 论文背景 第一章绪论 2 0 世纪9 0 年代以来,随着计算机硬件和软件技术的发展,特别是计算机网络技术 的发展,分布式计算系统越来越成为人们的一个热点研究课题。而从传统的分布式计 算到新一代移动a g e n t 、再到基于移动a g e n t 分布式对象迁移技术的深入研究,正体 现了在大型分布式网络环境下,多个应用系统之间迁移计算技术的前沿性和重要性。 下面针对分布式计算、移动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 的基本特性一自治性、响应性、主动性和推理性外,还具有移动性,即它可阻 在网络上从一台主机自主地移动到另一台主机,代表用户完成指定的任务 2 1 。移动 a g e n t 可以看成是软件a g e n t 技术与分布式计算技术相结合的产物,它与传统网络计 算模式有着本质上的区别。移动a g e n t 不同于远程过程调用( r p c ) ,这是因为移动a g e n t 能够不断地从网络中的一个节点移动到另一个节点,而且这种移动是可以根据自身需 要进行选择的。移动a g e n t 也不同于一般的进程迁移,因为一般来说进程迁移系统不 允许进程自己选择什么时候迁移以及迁移到哪里,而移动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 根据自身的目标和环境的状况移动到拥有计算所需资源的节点上进 南吕大学2 0 0 6 届硕士学位论文 基于移动a g e n t 的e j 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 返回时,客户机才需要连接到网络上 2 1 。 1 2 研究意义及理论依据 大型分布式网络环境下,多个应用系统之间迁移计算技术是一个热点研究领域, 而e j 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 分布式对象迁移技术当前研究的主 要方面,是本文的理论依据。一个移动a g e n t 对象的状态由三部分组成:代码状态 ( c o d e s t a t e ) 、数据状态( d a t a s t a t e ) 和执行状态( e x e c u t i o n s t a t e ) ,根据是否迁移执行状态, a g e n t 迁移可分为两类:强迁移( s 仃o n g m i g r a t i o n ) 和弱迁移( w e a k m i 刚i o n ) 【3 】。当a g e n t 申请迁移时,a g e n t 当前的执行状态和数据状态被封装并连同代码传送到目标位置, 一旦到达目的地,a g e n t 恢复并从迁移语句后的指令开始执行。弱迁移仅迁移数据状 态和代码,当a g e n t 迁移到目的地后,并不是从迁移点之后开始执行,而是从可执行代 码的入口开始执行【4 ,5 1 。本文研究内容将依据移动a g e n t 迁移计算原理和应用方向来展 开。 1 3 国内外研究现状 从2 0 世纪9 0 年代初g e n e r a lm a g i c 公司在推出其商业系统t e l e s c r i p t 时第一次提 2 第一章绪论 出移动a g e n t 的概念起,移动a g e n t 技术已经研究了很多年,直到1 9 9 6 年才出现了真 正实用的移动a g e n t 系统。目前使用的移动a g e n t 系统大致可以分为三类:一类是基 于传统解释语言的,一类是基于j a v a 语言的,另一类则是基于c o r b a 平台的。从理 论探索进入到实用阶段,涌现出了一系列较为成熟的开发平台和执行环境,如:g e n e r a l m a g i c 公司开发的面向对象的解释性语言的t e l e s e r i p t 和完全用j a v a 实现的移动a g e n t 系统o d y s s e s ;i b m 公司的基于j a v a 的移动a g e n t 开发平台a g l e t ,一个a g l e t 就是一 个移动j a v a 对象,它支持自动运行的思想,可以从一个基于a g l e t 的主机移动到其它 支持a g l e t 的主机上:r e c u r s i o n 公司的v o y a g e r ,它与j a v a 语言的结合更加紧密,既 可用于开发移动a g e n t 系统,也可用于创建传统的分布式系统,v o y a g e r 是一个纯j a v a 分布式计算平台,可用来迅速生成高性能分布式应用程序,是当前技术水平的一个优 秀的移动a g e n t 开发平台。以上代表了当今移动a g e n t 技术的基本方向和潮流1 2 。 移动a g e n t 分布式对象迁移技术当前主要从两方面展开研究:移动代理的强迁移和 弱迁移。移动代理除了具有一般代理的特性之外,还能够在网络中的各节点之间进行 迁移,利用它们提供的资源和服务,完成用户指定的任务。这种自主迁移是移动代 理的主要特性之一,也是实现移动代理系统要解决的关键问题之一。 捕捉和恢复程序状态是实现a g e n t 强迁移的关键问题,也是其它许多领域中必须解 决的问题【6 】。在分布式环境中,操作系统要完成容错功能【7 】,它每隔一定时间就要进 行一次程序状态的捕捉,将捕捉到的信息存在可靠存储器中。在系统发生故障时,能 根据这些信息恢复程序的执行。由于程序状态信息分散在不同的地方,所有程序代码 及数据可在语言层得到,而执行状态信息却位于较低层,所以状态捕捉和恢复机制必 须从系统的不同层次提取所有需要的信息1 4 】。 序列化机制可以用于对象数据状态的保存和恢复,动态类装载技术则可以支持代 码的迁移捧j 。而由于一般编程语言不能直接捕获运行线程的执行状态,因此无法直接 为具有状态迁移特征的强迁移提供支持。针对这个问题,国内有学者以j a v a 的虚拟 机为例,剖析了虚拟机的体系结构,指出捕获线程运行栈的信息和p c 计数器值是实 现移动代理运行状态迁移的主要问题,设计并实现了一种利用j p d a ( j a v ap l a t f o r l r l d e b u g g e ra r c h i t e c t u r e ) 提供的调用接口,对虚拟机进行动态调试从而捕获和恢复运行 栈信息和p c 计数器的方法,并结合序列化机制实现代理运行状态的捕获和恢复【5 1 。 因为尚存在一些主要问题,如环境灵活性、通信、代码迁移、安全等,作为一种 3 南昌大学2 0 0 6 届硕士学位论文 基于移动a g e n t 的e j b 对象迁移构件技术的研究与应用 有潜力的网络分布式计算技术,移动a g e n t 至今仍没得到广泛的应用。针对这些问题, 有学者提出了一种基于j i n i 技术的移动a g e n t 模型【9 】。通过将j i n i 中的查找、发现、 租约、远程事件、对象存储等概念和服务加入到移动a g e n t 中,创建了一个包含两种 网络中间件( 代理基站和代理站点) 的动态分布式移动a g e n t 模型,该模型提供了一种 新的查找、通信、安全和容错方案以提高移动代理的健壮性、安全性和代理间的交互 性。j i n i 技术是s u n 发布的用于分布式系统的技术,它以j a v a 技术为基础,提供在分 布式系统中进行服务的建立、查找、通信和使用机制。 1 4 论文研究内容及主要成果 本文研究内容总体上来说,是在分析移动a g e n t 迁移原理和e j b 组件技术、结合 现有技术和标准基础上,提出了基于移动a g e n t 的e j b 对象迁移构件模型a e m c m , 采用构件分析技术,给出了整个迁移构件模型的分析和设计过程;针对对象迁移过程 中消息传递问题给出了相关论述和算法;给出了组件迁移过程中可能出现的问题的相 关解决方案;分析了移动对象迁移的性能;讨论和设计了一个可行的移动a g e n t 对象 迁移数据安全体系,来对移动对象迁移前后的数据进行签名和验证工作;最后实现了 一个a e m c m 的原型系统应用的实例。 论文的主要成果和创新点包括: 1 ) 设计了一组较完整的、通用的基于移动a g e n t 的e j b 对象迁移构件模型 a e m c m ( 包括代码迁移构件a e c m c 、状态迁移构件a e s m c 、迁移监听构件a e m l c ) 来实现移动e j b 组件对象的动态迁移,从而实现了对e j b 组件对象迁移功能良好的封 装、通用接口的高效调用,以及在状态迁移时,状态信息捕获和恢复机制与快照模式 的结合应用。构件化开发实现了核心迁移过程的高效集成,e j b 组件对象迁移透明化 了,为移动e j b 对象迁移提供了一种规范、良好的构件化管理支持方式,从而使迁移 能按业务系统要求及时地进行异地计算; 2 ) 采用和改进了基于同步事件驱动表示的移动e j b 对象强迁移同步消息传递算 法,可以同步对象消息的发送和接收,并且在存在多个目的地主机的情况下尤为重要; 3 ) 对比了移动a g e n t 迁移计算模式与w e b 调用计算模式的总响应时间,前者大 大低于后者,从而说明移动对象能更高效地访问目的地主机上的资源,与源主机间的 交互变少,避免了大量数据在网络中的传输,降低了整个系统对网络带宽的依赖,缩 4 第一章绪论 短了通信时延,提高了服务质量; 4 ) 采用一个代理对象的机制,解决当移动对象新位置的客户试图在旧位置调用 移动对象时,设法通知客户,以避免浪费精力的问题。为了实现这点,在移动代理迁 移后,可在本地环境创建一个代理对象: 5 ) 在迁移对象数据访问的安全性方面有所改进。一方面开发了一个口安全检测 组件,并入迁移监听构件中;另一方面讨论和设计了一个基于移动a g e n t 对象迁移代 理s p ( s a f ep r o x y ) 通信模型和基于j a v a 技术的数字签名与签名验证的移动a g e n t 安全 体系; 6 ) 给出了一个迁移构件系统在实现业务处理中的原型应用实例,基本实现了本 文所提出的基于移动a g e n t 的e j b 对象迁移构件模型的总体设计和详细设计过程。 1 5 论文组成结构 本论文由六章组成,各章的主要内容如下: 第一章,也即本章,主要阐述了论文背景、研究意义和理论依据,论文所要解决 的问题目前在国内外的研究发展现状以及本论文的研究内容和主要成果等。 第二章,主要介绍和分析了移动a g e n t 迁移原理、e j b 组件技术标准以及e j b 组 件动态迁移的相关技术。 第三章,本文核心部分,系统地论述了基于移动a g e n t 的e j b 对象迁移构件模型 a e m c m 的分析与设计,分析了移动e j b 对象消息服务体系结构、提出了移动e j b 对 象迁移同步消息传递机制与算法,给出了解决移动e j b 对象迁移后新环境客户调用问 题的方案状态流程,对移动对象迁移性能( 主要是响应时间) 简单地进行了分析与评价, 得出了预期较好的结论。 第四章,讨论了移动a g e n t 对象迁移数据安全性问题,设计了一个移动a g e n t 对 象迁移代理( p r o x y ) 通信模型,讨论了基于j a v a 的移动a g e n t 对象迁移数据的数字签名 流程和签名验证流程,用来有效地保护和验证移动a g e n t 数据、判断数据是否被篡改。 第五章,在介绍一个实际项目例子的基础上,讲述了移动e j b 对象迁移构件模型 在该项目实例子系统上的原型系统应用实现。 第六章,对本论文进行了总结,提出了进一步研究工作,并就移动a g e n t 技术和 基于移动a g e n t 的e j b 对象迁移构件系统模型a e m c m 的未来应用前景进行了展望。 5 第二章移动a g e n t 迁移原理及e j b 组件迁移概述 第二章移动a g e n t 迁移原理及e j b 组件迁移概述 2 1 移动a g e n t 迁移原理 移动代理除了具有一般代理的特性之外,还能够在网络中的各节点之间进行迁 移,利用它们提供的资源和服务,完成用户指定的任务。一个移动代理对象的状态由 三部分组成:代码状态( c o d e s t a t e ) 、数据状态( d a t a s t a t e ) 和执行状态( e x e c u t i o n s t a t e ) ,并 根据移动代理的执行状态是否迁移,一般将代理的迁移分为强迁移和弱迁移两种。序 列化机制可以用于对象数据状态的保存和恢复,动态类装载技术则可以支持代码的 迁移。 2 1 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 迁移更强调由自身发起迁移请求的自主迁移【1 0 】。 定义1 弱迁移( w e a k m i g r a t i o n ) :移动a g e n t 迁移时,仅迁移代码和数据,而不迁移 执行状态的迁移方式。弱迁移是过程级的迁移。 定义2 强迁移( s t r o n g m i g r a t i o n ) :移动a g e n t 迁移时,代码、数据以及执行状态共 同迁移的迁移方式。强迁移是语句级指令级的迁移。 定义3 自主赶移( s e l f - m i g r a t i o n ) :由移动a g e n t 自身发起的迁移。 定义4 被动迁移( f o r c e d - - m i g r a t i o n ) :由外部对象发起的移动a g e n t 迁移。 弱迁移和强迁移又都可以有自主迁移和被动迁移之分。对应于移动a g e n t 的强迁 移,线程迁移的理想目标是透明迁移( t r a n s p a r e n t m i g r a t i o n ) ,即迁移请求由外部对象发 起,且整个迁移过程对线程透明。 6 第二章移动a g e n t 迁移原理及e j b 组件迁移概述 定义5 迁移原语( m i g r a t i n g p r i m i t i v e ) :在自主迁移方式下,移动a g e n t 调用提出迁 移请求并完成迁移的方法。迁移原语执行正常结束,移动a g e n t 至l j 达新的工作位置。迁 移原语一般写作g o o 或m i g r a t e 0 。 定义6 可迁移方法( m i g r a t o r y m e t h o d ) :若一个方法调用了迁移原语或可迁移方法, 则该方法是可迁移方法。 基于j a v a 的移动a g e n t 强迁移的内容如图2 1 所示】。 厂代码迁移r 程序计数器迁移 强迁移 |r 一执行迁移t 多线程迁移强迁移 【| 。l 多线程迁移 l 状态迁移气厂对象迁移 l 数据迁移j 萎慧曩鬈 l 界i 面l t _ 移 图2 - 1 移动a g e n t 强迁移所包含的内容 在图2 1 中,程序计数器迁移指程序控制的迁移,即迁移之后控制能够恢复到断点 处。堆栈迁移指局部变量的迁移。资源迁移指移动a g e m 所访问的资源,如文件、网络 连接等的迁移。界面迁移指移动a g e n t 与用户的交互界面的迁移。 2 1 2 迁移状态分析 与其他具有代码迁移特征的移动计算方式女1 a p p l e t 模型、代码即需( c o d eo n d e m a n d ) 模型、远程求值( r e m o t ee v a l u a t i o n ) 等相比,移动代理是一种具有复杂状态的 执行实体,迁移过程十分复杂。描述代理的三种状态形式如:m a 。t a l e = f m 。d e ,m d a t a , m 。 【5 】。 代码态m c o d 。:实现移动a g e n t l 拘程序代码,用于完成其功能并控制其行为在理 论上,其代码可以使用任何程序设计语言编写。但在应用中要考虑使其代码能够在它 可移动到的任何主机上都能以相同的方式执行,因此直接解释型的或是编译成中间 代码的基于解释的语言更具有优势。第一种类型的包括t c l 、p e r l 、v b s c r i p t 等,j a v a 则属于第二类。 数据态m d m :全局变量和a g e n t l 拘属性( 成员变量) 。这些属性描述了代理本身的 相关信息,如代理标识符、所有者、起始点的地址和起始的时间以及迁移路径等,用 户可以根据自己的需要进行定义。 7 南昌大学2 0 0 6 届硕士学位论文 基于移动a g e n t 的e j b 对象迁移构件技术的研究与应用 执行态m 。:代理执行过程中的相关信息,如运行栈保存的与程序调用顺序有 关的p c 计数器等系统信息。 强迁移一般指将代理的代码、数据和执行状态全部迁移到目的节点,代理对象恢 复成和迁移前完全一样的状态,能够从迁移之前的断点处继续执行,即m e 。矿m 。 m d m = m d a t a ,m c o d 。= m c o d e 。对代理的执行线程来说,这是一种完全透明的方式。弱迁 移则只能保存和恢复代理的代码状态和数据状态,即m a 。m ”。,m d m :m d a 姐, m c o d e = m c o d 。移动代理在迁移到新节点后,不再接着移动前的断点处执行,而是由移 动代理系统提供一个缺省的入口点,在目的节点恢复代理之后从此入口点重新开始 执行。如,m o l e 中提供的s t a r t 方法,a g l e t s 提供的r u i l 方法。弱迁移系统要求编程人员 必须熟悉整个迁移过程,规定代理移动后的继续执行的入口点。但弱迁移只携带代码 状态和数据状态,传输的数据量有限,执行效率高。大部分的移动代理系统实现了弱迁 移,如a g l e t 等。 由于程序的执行状态通常被保存在系统的运行栈中,捕获和恢复起来比较困难, 因此,强迁移实现起来具有很大的难度和复杂性。从编程语言上来看,要求a g e n t 的语 言能提供a g c n t 执行状态的捕获和恢复功能。目前只有少数语言能直接提供上述要求的 功能,例如f a c i l e 和t y c o o n 。同时由于a g e n t 的执行状态通常很庞大( 尤其对多线程 a g e n t ) ,完整的状态传送增加了通信流量,所以强迁移的开销很大,a g e n t t c l ( d a g e n t ) 、a r a 和t e l e s c d p t 都属于强迁移移动代理系统。它们使用特制的语言解释器 来捕获线程的运行状态,在应用上受到限制。 2 1 3 扩展j a v a 虚拟机实现运行态的捕获与恢复 由于j a v a 语言的跨平台特性,一般的移动代理系统都采用j a v a 语言来实现,在 j v m 上运行。由于实现强迁移有一定的难度,从j d k l 3 以后,s u n 公司提供的j p d a t l 2 】 工具,不仅可以用于开发对运行的j a v a 程序进行调试的程序,还提供了新的方法,可 以捕获和恢复线程的执行状态信息【l 引。利用j p d a 工具,可以在不修改j a v a 源代码和 m 的基础上,获得线程在迁移前的运行状态,并在目的节点进行恢复,从而实现代 理运行状态迁移的方法。j p d a 是j a v a 虚拟机规范的一部分,主要是用来开发j a v a 程序 的调试程序。运行态的捕获与恢复包含以下几个部分【5 】: 1 ) 栈信息的捕获和恢复 8 第二章移动a g e n t 迁移原理及e j b 组件迁移概述 基于j p d a 可以实现j a v a 线程的运行状态信息的捕获和恢复,为了将捕获到的信息 迁移到目的节点,这里在代理体的定义中增加一个栈变量s t a t u s ,并将其声明为代理的 成员变量,用来存放栈的状态信息。这样栈变量中存放的运行状态信息就可以随着代 理的序列化而传输到目的节点,实现运行状态的迁移。整个过程为: ( 1 ) 定义栈变量,用于序列化其保存的运行状态信息; ( 2 ) 基于j p d a 捕获运行状态信息,存放到栈变量中: ( 3 ) 通过序列化机制传输栈变量; ( 4 ) 通过反序列化机制恢复栈变量中存放的运行状态信息; ( 5 ) 在目标节点重建方法调用栈及重新设置栈中每个方法的变量值; ( 6 ) 代理继续执行并结束。整个过程如图2 2 所示: 船团攀园 图2 - 2 栈状态信息捕获和恢复 2 1 程序计数器p c 的捕获和恢复 上述设置的栈变量仍然可以用于p c 值的保存与恢复: ( 1 ) 获得p c 值 在迁移前,需要捕获嵌套调用方法的顺序和每个方法中正在执行的指令位置。在 调试模式下,j p d a 允许访问运行中的方法所对应的s t a c kf r a m e 的位置信息,从而可以 获得代理线程的所有方法的当前执行位置,并仍将其存放到栈变量s t a t u s 中。这样,程 序计数器的值也被压入s t a t u s 变量中。因为在恢复时,首先需要恢复程序计算器的值, 然后再恢复变量的值,因此,应该先将变量压栈,然后再将p c 值压栈。 ( 2 ) 恢复p c 值 从栈变量中取出p c 值,再将p c 值设置到相应方法的相应位置,如图2 3 所示: 图2 3 局部变量和p c 的捕获和恢复 9 南昌大学2 0 0 6 届硕士学位论文 基于移动a g e n t 的e j b 对象迁移构件技术的研究与应用 3 ) 事件控制器 完成以上步骤的代码需要由所注册的事件控制器来激活运行。当调用一个方法时 该事件控制器就被激活。由它来执行状态捕获代码从而取得断点处的栈和p c 值,在另 一端进行恢复,然后继续执行这个方法。代理在恢复过程执行时,应该先得到每个方 法中的变量和p c 值,才能在迁移前的中断处继续执行。因此,通过实现一个事件控制 器,每当调用一个方法时,激活事件控制器,由它来执行代码从而取得断点处的栈 和p c 值,并进行恢复,然后继续执行这个方法。 2 1 4 转换源代码实现运行态的捕获与恢复 由于j a v a 没有提供执行状态捕获和恢复机制,不同于2 1 3 中通过修改m 的扩展 j a v a ) 壶拟机来实现运行态的捕获与恢复方式,本节介绍的是通过转换源代码实现运行 态的捕获与恢复,但它需要在源程序中插入与执行状态捕获和恢复有关的语句【1 4 1 。 捕捉和恢复程序状态的主要问题是这些状态信息分散在不同的地方:所有程序 代码及数据可在语言层得到,而执行状态信息却位于较低层,因此状态捕捉和恢复机 制必须从系统的不同层次提取所有需要的信息。 2 1 4 1j a v a 线程状态捕获 j a v a 对象流提供了一种简单的方法,可以汇集j a v a 程序中所有对象的状态,其中 包括对象中所有变量的值及对象的类型,但用j a v a 对象流无法得到方法调用栈中当时 保存的每个方法的局部变量值和p c 当前值。为此,可以通过一个预处理器,利用它在 j a v a 源程序中加入一些代码,来捕捉这些状态信息并在重新运行时i 叛复这些状态。预 处理器在j a v a c c - t o o l u 1 所产生的一个分析器基础上工作。首先,用分析器分析源程序, 生成一棵分析树。然后,预处理器利用并修改分析树实现对源程序的交互式代码加入。 由于加入代码需花费时间和空间,所以只在可能申请迁移的方法中加入代码并保证加 入的代码在必要时( 即状态捕捉时) 才执行。为此,可以建立一个特殊方法s a v e s t a t e0 , 描述如下: p r o t e c t e dv o i ds a v e s t a t e0t h r o w sm i g r a t i o n s a v ee v e r yl o c a l v a r i a b l e s ;t h r o wm i g ; 程序在类s t a t e m i g r a t i o n 的方法m a l m e m o d 中定义局部变量,并用s a v e s t a t e0 捕捉该变量值,如下程序段所示: 1 0 第二章移动a g e n t 迁移原理及e j b 组件迁移概述 c l a s ss t a t e m i g r a t i o n f ,定义变量 p u b l i cv o i dt r i a l m e t h o d ( h a ti ,r e a l j ,u i a l o b j e c to ) i n tk ;舸在程序中赋予任意整数值 h a s h t a b l e 址 s a v e s t a t e ( ) ;,保存i ,j ,m ,kh 的值 i f ( k = = 5 1 v e c t o r x = n e w v e c t o r 0 ;s a v e s t a t e ( ) ; ,保存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》复习试题【培优】附答案详解
- 2025年教师招聘之《幼儿教师招聘》押题练习试卷附参考答案详解(达标题)
- 2025呼伦贝尔莫力达瓦达斡尔族自治旗尼尔基第一中学校园引才笔试备考及完整答案详解
- 2025广东广州银行人才招聘考试备考题库及答案解析
- 2025年汽车轻量化材料在汽车轻量化车身制造中的产业布局与市场前景研究报告
- 棚户区改造项目房屋产权分割及购房合同模板-@-3
- 2025年乳腺病学乳房超声影像解读练习答案及解析
- 南阳党建面试题库及答案
- 教师招聘之《小学教师招聘》综合提升试卷及参考答案详解【模拟题】
- 2025年教师招聘之《小学教师招聘》试卷含完整答案详解【夺冠系列】
- 广西贺州市八步区公道冲钾长石矿采矿权出让收益率评估报告
- 中国人民抗日战争纪念馆面向社会公开招聘工作人员模拟检测试卷【共1000题含答案解析】
- 高考688个高频词汇 word版
- 农副产品购销合同完整版(2篇)
- GB/T 9115.4-2000环连接面对焊钢制管法兰
- 一年级数学上册左、右练习题及答案解析
- GB 9743-1997轿车轮胎
- 小学语文口语交际教学讲座PPT
- 上海建筑装饰集团发展战略报告(doc 30)
- 《基础统计》教学案例“郑州市大瓶装纯水市场调查”统计应用案例
- DB36_T 1157-2019 瓷土、瓷石矿产地质勘查规范(高清无水印-可复制)
评论
0/150
提交评论