在MAIVS的体系结构设计过程中,需要解决以下三个问题:系统的总体框架、使用的仪器数量及类型以及软件实现[5]。软件系统是虚拟仪器系统的核心部分。在虚拟仪器系统中软件主要由功能软件和虚拟面板控件两部分构成。前者主要包括硬件控制、采集卡控制、数据处理分析及显示;后者包括虚拟显示器、旋钮、按钮等。本文主要关注前者可按照功能封装成独立的agent的软件模块设计与实现,通过Aglets提供的通信机制在虚拟仪器系统中协调一致的工作。
图2 MAIVS任务求解流程图
图2中的移动agent环境,即agent的运行环境是Aglets系统。移动agent有两种环境分配策略:一种是为每个移动agent分配单独的服务环境;另一种是为所有的移动agent分配同一个服务环境。前一种分配策略具有更强的安全性,但会占用更多的资源[6]。agent分派管理器是移动agent服务环境的中心部件。它将移动agent正常运行所需的各项服务正确分配给相应的子模块,包括建立移动agent的执行环境、启动服务等。此外,它还负责协调各子模块间的相互工作,保证它们的正常运行。静态agent(Static agent,SA)主要完成agent分派管理器与用户接口agent的交互。
移动agent的任务求解过程如下:
① 源主机(主机A)根据用户需要完成的检测任务,通过用户接口agent初始化欲创建的移动agent的内部状态集、知识库、约束条件等。
② 将代表用户需求的特征表示写入移动agent的知识库,设置最长运行时间、每个站点停留时间、任务完成度、经由节点的最大数目等约束条件。
③ ATP定义了移动agent在各受控主机间迁移的语法和语义,具体实现了agent在服务环境间的迁移,包括移入和移出。移动agent利用ATP完成与本地移动agent服务环境的通信,并在该服务环境中利用ATP协议完成移动agent在网络环境中从目标主机和agent分派管理器间的迁移。
④ 问题求解完成后,移动agent在返回结果前先判断网络的连通性。如果连通并且用户端(主机A)的Aglets平台已经启动,那么移动agent就可以直接返回;反之,则需要等待直到具备传送条件才激活移动agent,并将其传回到源主机(主机A),将任务的求解结果提交给用户。
⑤ 完成自身卸载进入终止状态,结束任务。
借助移动agent技术,在不同的硬件平台下,可以完全由用户自定义虚拟仪器系统的功能模块,通过选取基本的测试硬件模块,利用不同的软件构造出针对具体测试任务的测试仪器,即功能不同的处理分析agent。从而完成具有不同检测功能的处理分析agent的“信号的调理与采集—数据的分析与处理—结果的输出与显示”。
4 实验仿真
将基于移动agent的虚拟仪器系统体系结构模型应用到远程电子测量实验教学平台的构建。实验仿真内容包括:在Aglets平台上,发送一个波形检测器agent和一个随机波形发生器agent到其中一台主机,用以检测发生波形和数据采集的结果;通过Aglets提供的Dispatch功能远程召回对PCI-6220 NI数据采集卡采集的数据进行处理分析的agent。
实验结果表明,基于移动agent的虚拟仪器系统体系结构模型可以提高现有虚拟仪器系统的执行效率,增强其扩展性。这是因为移动agent技术迁移的是逻辑而非数据。虽然移动agent的代码和参数都需要在网络环境中传输,但这两者结合起来的传输量仍比需要处理分析的原始数据量少的多,这种尽可能在本地机上处理分析数据的方式,有利于提高虚拟仪器系统的执行效率。
此外,在该体系结构的仿真实验中需要多次实验以确定合适的采样周期和触发间隔,即确定采样率和采样次数。采样率越高则在单位周期内的采样次数越多。而触发器时间取决于所构建系统的运行速度。
为保证整个系统的正常运行,赋予每个处理分析agent一个生命周期值。当其成功执行一次任务后,该值加1。随着处理分析agent集合数量的不断增大,需要淘汰生命周期不强的agent,即淘汰生命周期值最小的agent。
5 结论
基于移动agent的虚拟仪器系统体系结构模型的提出,结合了现有虚拟仪器系统和移动agent技术的优势,有利于改善现有虚拟仪器系统的可重用性和平台依赖性,用户可以用较少的系统开发维护费用和更少的时间开发出功能更强、质量更可靠的产品和系统,有利于提高现有虚拟仪器系统的设计效率。