基于移动agent虚拟仪器系统体系结构研究
扫描二维码
随时随地手机看文章
1 引言
随着计算机技术和现代测试技术的快速发展,利用传统的集成测试方法已经难以满足复杂测试任务的需求。虚拟仪器以开放性好、智能化程度高、界面友好等优势显示了其强大的生命力,研究内容已经涉及到工程的诸多领域[1]。
现有的虚拟仪器技术在研究和实现上已取得了一定成就,但随着测量内容的日益复杂、测量数据和指标的不断增加,对虚拟仪器的应用也提出了越来越高的要求,一些问题逐渐显现出来。比如现有仪器系统的开发依赖于经验的积累,一般由用户根据自身需求开发小功能集的虚拟仪器系统;仪器的平台独立性和扩展性差,仪器系统的设计和执行效率低下,适应性不够强[2]。因此,如何提高虚拟仪器系统的执行效率,降低设计难度,是虚拟仪器系统研究中一个需要解决的重要问题。
移动agent是一种独立的可确认的计算机程序,它可以自主地在异构网络上按照一定规程移动,寻找和利用适合的计算资源、信息资源和软件资源,代表用户完成特定任务[3]。它具有主机间动态迁移性、智能性、平台无关性、分布灵活性、多agent合作性等六方面的特点。
因此,在本文中考虑将移动agent技术运用到虚拟仪器系统体系结构的构建中,用以改善现有虚拟仪器系统中出现的一些问题。
2 基于移动agent的虚拟仪器体系结构设计
根据虚拟仪器系统的设计和移动agent系统的特点,在体系结构设计中选用了综合分层和网状体系结构最佳特征的混合模型,如图1所示。
图1 MAVIS的系统体系结构
图1中的双箭头——上层到下层表示控制流方向,下层到上层表示数据流方向。由于采用了网状体系结构,整体上又保留了分层结构的特点,因此组件间可以不按照严格的分层结构进行通信。这样在对虚拟仪器系统中的agent进行管理时,只需更改该agent的信息,不会影响其他agent的工作。例如当需要执行一个新的数据采集或处理分析任务时,只需派遣一个新的agent去执行任务即可,不需停止或重启已执行处理分析任务的agent。
在该体系结构中,最下层的数据采集叶节点负责测试数据的采集,包括采样位置、信号类型等信息,并在将其传递到上层处理分析节点前进行数据过滤,以减轻上层节点的工作压力,有利于处理分析节点专注于虚拟仪器系统的功能实现。
上层的处理分析节点主要负责处理数据,如对其进行时频域分析,统计分析等,提取影响测量结果的参数指标并最终在本地机上形成测试结论显示出来。处理分析agent的生成可以通过顶层的控制管理节点动态控制。为了保证处理分析agent能够高效地运行相关测试,在系统运行开始就根据所需测试的基本类型构造处理分析agent集合。在运行过程中,当添加的处理分析agent和其他agent互相协作成功完成一次任务时,系统就生成新的agent并添加到该虚拟仪器系统的处理分析agent集合中。一旦需要删除处理分析agent时,就必须从虚拟仪器系统的处理分析agent集合中删除与该处理分析agent相关的所有agent。顶层的控制管理节点主要负责节点的分派和召回。
该体系结构由分布在各受控主机上的移动agent组成,各相邻agent的关系平等,连结松散,可彼此独立进行操作,这样设计的虚拟仪器系统更具容错性和重构性。移动agent的引入使数据采集节点、处理分析节点和控制管理节点并不总驻留在一台物理主机上,即移动agent可以作为处理分析节点移动到最合适的物理位置。
3 基于移动agent的虚拟仪器系统的实现
通过比较,由IBM东京Waston研究中心开发的Aglets以其自身包容易安装、稳定性好、安全性高、跨平台、直接提供适合Java的移动agent技术、示例简单等优势,成为MAIVS系统研究设计的平台。Aglets用纯Java语言编写,具有较好的健壮性和移动性。作为最早基于Java的商业化系统,它提供了一套简单而全面的移动agent编程模型和详细且易用的安全机制,并为agent间提供了动态、有效的通信机制。在实现过程中,设计关注具有检测功能的处理分析agent的实现,而不需考虑整个系统的通信机制和行为协调模式。
对于向用户提供可执行程序这一问题,当前的应用程序虽然可以访问资源,但是它不具有普适性,也不能进行实用的计算。事实上,一旦用户想要执行一个应用程序,他不得不:(1)请求环境资源;(2)分配任务;(3)触发和控制执行;(4)得到结果;(5)释放资源[4]。
在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技术的优势,有利于改善现有虚拟仪器系统的可重用性和平台依赖性,用户可以用较少的系统开发维护费用和更少的时间开发出功能更强、质量更可靠的产品和系统,有利于提高现有虚拟仪器系统的设计效率。