论文部分内容阅读
移动代理(Mobile Agent,下简称MA),是指一种能够代表用户执行给定任务,并在网络上不同节点间移动的应用程序,它的出现是网络技术和智能代理技术发展的结果.作为一种新型的分布式计算技术,它一改过去把待加工数据向处理程序端移动模式,将能实现一定功能的程序代码迁移到数据端,处理完毕,把最终结果传回给用户,解决了前者由于多次中间结果的来回传输导致占用带宽、且网络连接长时间保持等问题,是从另外一个方面解决分布式远程调用.该论文在对目前移动Agent代理系统分析和研究的基础上,针对它们存在的问题,提出改进方案.移动Agent的迁移按照其携带状态信息的多少,分为强迁移和弱迁移.强迁移必须在MA暂停前捕获它的执行状态,包括存放局部变量中间值的堆栈、PC计数器等系统信息等.这些信息可以在不同的层面得到,该文提出在应用程序层利用Java的异常机制得到这些信息,存放在虚拟堆栈中,随同MA代码状态和数据状态信息一道通过序列化迁移到目的节点,然后通过反序列化恢复这些信息,使MA能够从原来中断的节点继续运行.MA代码的迁移按照代码源和代码传送方式不同,有两种组合,移动代码源与代码全传送,固定代码源与代码按需传送.该文采用后者,通过Java的类装载器(ClassLoader),改变其获取代码的策略,实现动态地把MA所需代码从指定的远程源节点获取,调入JVM运行.MA系统的安全性是决定它能否得到广泛应用的关键,目前的MA系统都没能很完整、系统地解决.该文利用Java最新的安全体系结构JCA中的三部分JSSE,JAAS和JCE的密码加密技术,解决MA系统三个方面的安全问题:传输过程中MA的安全、宿主机的安全和运行MA的安全问题.文章最后讨论了原型系统的设计和运行结果,并对性能作了对照和分析,证明了该方案的可行性.