论文部分内容阅读
网络技术和计算机科学的不断进步使分布式计算在近二十年中得到了迅速的发展,并积累了大量的可共享的计算资源和网络资源。为了有效弥补传统分布式计算模式的缺陷并充分利用网络中的计算资源,研究人员提出了移动计算模式。移动Agent技术作为移动计算的代表,成为计算机研究和应用领域的新热点。由于移动Agent的动态迁移特性适合广域网环境内的分布计算,研究者们纷纷提出了基于移动Agent的算法以解决各种分布式计算问题。但是,要深入研究移动Agent算法,一个需要解决的重要问题就是如何对Agent算法进行性能评价。在当前移动Agent的研究领域,算法的性能评价还是一个比较困难的问题,其原因有两方面:一方面,由于移动Agent的执行模式没有统一的规范,无法对移动Agent算法的性能指标进行合理的一致的评价;另一方面,移动Agent所具有的特性使得传统的性能评价方法如利用数学建模分析、在实际运行环境中获取性能数据等等方法不再适用,而传统的仿真方法也由于移动Agent的迁移性、反应性等而无法直接应用。为解决移动Agent的性能评价问题,本文从移动Agent的执行模式的描述模型和仿真模型两方面入手,着重研究了移动Agent的描述和仿真中的几个重要问题:1.移动计算的基础理论经过多年的发展已经取得了丰硕的成果,但是这些理论与实际的应用脱节,使得面向应用的移动Agent算法难以与移动计算的基本理论结合。同时,由于当前移动Agent的执行模式缺乏统一的描述规范,使得移动Agent算法的描述、理解和实现由于没有标准的执行规范作为依据而常会出现歧义;此问题是移动Agent算法性能评价的根本问题之一。为此,本文建立了一个描述移动Agent执行模式的模型SMA,并且提出了一个简单的算法描述语言SMAL语言以具体描述移动Agent的内部执行机制。在此基础上本文给出了SMAL语言到两种移动计算的形式化描述方法(Mobile UNITY和π演算)的转换编码方法,为将理论研究成果应用到移动Agent的算法分析中建立了基础。其中,SMAL程序的Mobile UNITY描述可以给出一个直接将Agent算法转化为可用UNITY逻辑判断程序正确性的代码,可以直接用于解决移动Agent算法的形式化验证;π演算编码方法给出了SMAL程序中各语法成分所对应的并发进程的指称语义。2.移动Agent的仿真方面的研究由于缺乏具体的执行模式规范而一直处于停滞状态,少量相关的研究也仅是给出了简单的定性模型,完全不足以对实际的移动Agent进行仿真模拟和性能评价。SMA模型给出的移动Agent执行模式规范明确的定义了移动Agent的执行过程,从而为建立移动Agent的仿真模型建立了基础。本文在SMA模型所定义的移动Agent执行模式的基础上,以离散事件系统仿真理论为主要理论基础,建立了适用于移动Agent仿真的并行离散事件系统模型SMA-DEVS。由于从不同角度出发可以得到对系统的不同描述方式,本文尝试从Agent层次和线程层次两方面对移动Agent系统建立仿真模型,从而得到了语义等价的两个离散事件系统模型SMA-DEVSA(Agent层次)和SMA-DEVST(线程层次)。同时,本文还对离散事件系统的语义模型这一较少为人注意的研究领域做了一定程度的探讨,在传统的实时系统的时间序列语义模型的基础上,建立了一个适用于离散事件系统的时间序列语义结构,以此结构描述了普通离散事件系统、耦合事件系统、并行离散事件系统等常见系统的语义,并探讨了该结构作为离散事件系统语义描述的充分必要条件。3.移动Agent的仿真属于进程仿真,由于移动Agent的动态迁移性、反应性以及其他特性,使得传统的仿真方法对移动Agent不再适用。本文采用了已被证明在分布计算仿真和性能评价方面比较有效的直接执行仿真方法,建立了移动Agent的直接执行仿真模型MADES,为有效解决移动Agent的仿真和性能评价问题奠定了基础。MADES以分布并行仿真方法为基础,采用了基于空消息的保守同步方法,通过建立系统和宿主两级协调器来协调和控制系统内各宿主中的线程,从而达到在局域网乃至单机上模拟移动Agent在广域网中运行的效果,并获取性能数据。MADES的特点是在SMA-DEVS离散事件系统的基础上建立了一套完整的、可以直接用于控制Agent内部各线程运行和性能评价的事件系统,通过事件产生的“陷入”操作将移动Agent执行与仿真协调器的控制巧妙的结合起来,从而使移动Agent的执行过程中的各线程的交互与同步由仿真控制器通过指定算法来协调,从而保证仿真过程中的因果限制条件得到满足。4.SMA模型所定义的移动Agent执行模式和MADES所建立的移动Agent仿真模型仅为解决移动Agent仿真和性能评价问题提供了理论依据,而如何建立一个符合要求的仿真环境是解决此问题的最终目的。本文在剖析当前最流行的移动Agent平台IBM Aglets的基础上,建立了符合要求的移动Agent直接执行仿真原型环境SimulAgent,并简要介绍了该原型环境的主要组成部分。SimulAgent是一个通用的、可扩展的移动Agent仿真平台,其特点是允许符合编写规范的移动Agent在平台上直接执行并得到仿真结果。SimulAgent对IBM Aglets软件包中的底层平台进行相应的改进使之符合SMA模型所规定的移动Agent执行模式,并建立了总控环境与仿真节点环境,以协调Aglet中各线程运行中的同步。在SimulAgent中,仿真过程对用户透明,并能通过加载不同的宿主与网络仿真模块来模拟移动Agent在不同外界环境中的运行情况,从而比较完满的解决了移动Agent仿真与性能评价这一重要问题。总的来说,本文的创新之处在于:1)提出了移动Agent执行模式规范模型SMA模型,使移动Agent算法的描述与实现无歧义。2)提出了体现SMA模型特点的移动Agent算法描述语言,并给出了此语言的Mobile UNITY和π演算编码方法,使移动Agent算法描述能与移动计算理论结合。3)提出了用于移动Agent仿真的离散事件模型SMA-DEVS,并且对离散事件模型的语义模型作了初步探讨。4)在SMA-DEVS模型的基础上,建立了移动Agent的直接执行仿真模型MADES。讨论了MADES的结构以及仿真实现方法。5)对现有的移动Agent平台IBM Aglets加以改进,建立了一个符合SMA规范和MADES模型的移动Agent直接执行仿真原型环境SimulAgent,并已经将该环境初步应用于移动Agent算法的仿真和性能评价。