[发明专利]一种移动Agent强迁移的方法无效
| 申请号: | 201110437383.5 | 申请日: | 2011-12-23 |
| 公开(公告)号: | CN102541637A | 公开(公告)日: | 2012-07-04 |
| 发明(设计)人: | 戚荣志;李水艳;毛莺池 | 申请(专利权)人: | 河海大学 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46 |
| 代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
| 地址: | 210098*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 移动 agent 迁移 方法 | ||
技术领域
本发明涉及移动Agent(人工智能)的迁移机制,尤其涉及一种应用在基于Java的移动Agent系统中,藉由continuation(续延)机制、字节码转换技术,在不需要修改Java虚拟机的前提下实现强迁移的方法。
背景技术
移动Agent是一种新颖的构建分布式应用程序的设计范例,由于Java的平台无关性和对代码迁移的良好支持,目前大多数移动Agent系统都是基于Java来构建的。然而,Java的执行模型没有提供对程序运行状态的访问,因此,目前直接基于Java提供的代码迁移机制构建的主流移动Agent系统都只支持弱迁移,也就是说Agent在不同的主机间迁移代码,迁移时可能携带一些初始化数据,但是不涉及执行状态的迁移,因此,在Agent迁移到新的主机后通常是从其初始状态重新开始执行。基于这些系统进行应用程序的开发存在着一定的难度,系统的易用性很差。
发明内容
发明目的:针对直接基于Java的移动Agent系统不支持强迁移的现状,本发明提出一种实现移动Agent强迁移的方法,该方法引入了continuation机制,结合字节码转换技术实现线程状态的捕获;使用对象序列化机制和Java socket机制实现Agent在网络中的主动迁移;实现Agent在迁移到目的主机后的状态恢复。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种移动Agent强迁移的方法,包括如下步骤:
(1)状态捕获:使用continuation机制实现线程执行状态捕获,并把该线程执行状态具体化为Java对象;
(2)Agent迁移:Agent携带着捕获到的线程执行状态在网络环境中主动迁移;
(3)状态恢复:Agent在迁移到目的主机后,先恢复线程执行状态,进而使得Agent从原来中断的地方开始继续执行。
所述步骤(1)中,continuation机制通过字节码转换技术实现。
所述步骤(2)中,捕获到的线程执行状态需首先具体化为continuation,再使用对象序列化机制和Java socket机制通过Agent携带着在网络环境中主动迁移。
所述步骤(3)中,在目的主机上建立有continuation环境,Agent迁移过来的线程执行状态恢复在该环境中,进而恢复Agent的执行。
有益效果:本发明提供的移动Agent强迁移的方法,引入了continuation机制,结合字节码转换技术实现线程状态的捕获;使用对象序列化机制和Java socket机制实现Agent在网络中的主动迁移;实现Agent在迁移到目的主机后的状态恢复;该方法通用性强,可方便的集成到已有的基于Java的移动agent系统中,使得该系统具有强迁移的能力;由于没有修改Java虚拟机,因此,该方法具有一定的可移植性。
附图说明
图1为本发明的物理结构示意图;
图2为本发明的逻辑结构示意图;
图3为本发明中状态捕获的流程示意图;
图4为本发明中状态恢复的流程示意图。
具体实施方式
下面结合实施例对本发明作更进一步的说明。
一种移动Agent强迁移的方法,如图1、图2所示包括如下三个阶段:
(1)状态捕获:使用continuation机制实现线程执行状态捕获,并把该线程执行状态具体化为Java对象;
(2)Agent迁移:Agent携带着捕获到的线程执行状态在网络环境中主动迁移;
(3)状态恢复:Agent在迁移到目的主机后,先恢复线程执行状态,进而使得Agent从原来中断的地方开始继续执行。
下面就各个阶段做具体说明。
阶段1:状态捕获
状态捕获的流程示意图如图3所示,本发明首先将continuation定义为Agent的执行环境,该环境为Agent的强迁移提供了支持。在Agent运行前,需要首先建立这个环境,再在该环境中开始Agent的运行,而且,以后所有的操作都是在这个环境中进行的,这样就保证了continuation对Agent执行状态的捕获。
随后,由于Agent的执行状态存在于虚拟机的栈结构中,而该栈结构是一个本地的数据结构,不具有可移植性,Agent迁移时为了保存执行状态需要将该栈转换为可以移植的数据结构,continuation提供了这种转换功能,具体步骤如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学,未经河海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110437383.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:成对锯片
- 下一篇:一种运用三网融合技术的网络服务平台的管理方法





