《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > LON网络远程监控的移动Agent实现方案
LON网络远程监控的移动Agent实现方案
彭 勇
无锡江南大学信息工程学院(214036)
摘要: 提出了一种基于移动代理的Lon网络远程监控系统的实现方案,介绍了系统的构成和设计技术。
Abstract:
Key words :

摘   要: 提出了一种基于移动代理的Lon网络远程监控系统的实现方案,介绍了系统的构成和设计技术。
关键词: 远程监控  LonWorks  移动代理  Aglet

  计算机与网络技术的迅速发展,极大地促进了现代制造业的发展。各种基于网络技术和分布式计算机技术的系统大量应用于工业生产,衍生了许多新的生产方式和制造模式,如网络制造、联盟企业和全球制造等。目前,以Internet和现场总线为应用背景的基于B/S或C/S计算模式的实时远程监控系统是研究和实现远程监控与故障诊断的热点,并已得到广泛应用。这种在远程监控主机和本地监控系统之间基于B/S或C/S的远程监控系统,比较适合稳定和快速响应的网络连接环境。但是基于B/S或C/S的远程监控系统的流程和功能是固定实现的,缺少可扩展性、灵活性和智能性。为此,本文提出了一种LonWorks与Internet集成架构网络环境下的基于移动代理(MA)的远程监控系统的实现方案。
  移动代理是一个具有移动性、自治性、并行性和交互性等特点的智能体。它能够携带着自己的代码、数据及执行状态,在网络系统中自主地从一台主机移动到另一台主机。在移动过程中,可以根据要求挂起其运行,然后移动到网络的其他节点重新开始或继续执行,最后返回结果和消息。移动代理的这些特点和功能,使得移动代理计算模型具有很大的动态性、智能性、灵活性、高效性和可靠性[2]。因此,使用移动代理机制构造的远程监控系统中,在远程监控主机和本地监控系统之间采用移动代理计算模式,利用其高智能性和远程数据处理能力,不需要在远程监控主机和本地监控系统间传输大量的原始数据,使监控和数据分析都通过移动代理在监控系统本地完成,从而降低了对Internet带宽和可靠性的依赖,提高了系统的远程实时交互性及运行的可靠性和稳定性,同时可为系统提供更好的灵活性、可扩充性和适应性。
1  系统的设计与实现
1.1 系统结构与实现平台
  系统由LON网络层、本地监控层和基于移动代理计算模型的远程监控层三层结构组成,如图1所示。
LonWorks[3]总线控制网络由与通信介质相连的设备节点和LonWorks网络服务器(主机节点)组成。设备节点实现现场设备信号的采集、状态监测、实时控制以及节点间的数据通信。LonWorks网络服务器安装了PCLTA-10 Lon网络接口卡和Lonmaker for Windows、 LonManager DDE Server等Lon网络管理和服务工具软件。Lonmaker for Windows实现设备节点和网络变量(NV)的管理,LonManager DDE Server以网络变量的形式实现本地监控层与设备节点的实时数据通信。
  本地监控层由本地局域网(Intranet)及互连的本地监控主机和数据库服务器组成。本地监控主机同时运行了采用VB6.0开发的监控应用程序和LonWorks网络服务器,实现了本地的生产过程的监控管理。VB监控应用程序利用DDE编程技术通过设置数据绑定控件的若干Link属性与LonManager DDE Server通信,获取Lon网络的各设备节点的网络输出变量信息,并写入MySQL数据库;同时,通过对MySQL数据库的访问,获取控制数据,并以输入网络变量的形式通过LonManager DDE Server和KinkPoke方法传递给Lon网络各节点的Neuron C控制程序,执行数据项的更新和设备控制。
  架构于Internet之上的网络采用移动代理计算模型的移动代理服务器和远程监控主机二个协作的代理子系统构成了远程监控层。移动代理服务器和远程监控主机的移动代理运行平台采用IBM公司用纯Java开发的Aglets,它们均安装了IBM Aglets2.0.1代理平台软件包和JDK1.3.1软件包,采用多Agent协同的Master-Slave代理计算模式。IBM Aglets2.0.1的可视化的Aglet平台和由7个包组成的对象模型为Aglet提供了执行任务的环境和用户开发Aglet代码的环境。
1.2 代理系统的组成及分类
  系统移动代理计算由远程监控主机代理子系统和移动代理服务器代理子系统组成,采用多Agent协同的工作方式,如图1所示。系统中的代理分为二类:一类为负责代理系统管理及服务的静态代理,另一类为负责执行远程监控任务的移动代理。

  代理的描述形式如下:
  <Agent>∷=(<标识描述域>,<功能描述域>,<状态描述域>,<信息描述域>)
  标识描述域:Agent的惟一标识号(Agent ID),企业信息(企业号、监控权限等)等。
  功能描述域:Agent执行任务的能力和功能等。
  状态描述域:Agent的执行状态,即工作或休眠。
  信息描述域:Agent创建的位置、权限和所在的移动代理系统MAS。
  远程监控主机代理子系统使用Master-Slave计算模式。MasterAgent(HManagerAgent)为静态代理,实现代理系统管理职能;SlaveAgent为由MasterAgent创建的移动代理,它被委派到移动代理服务器执行监控任务并返回结果或消息。移动代理服务器代理子系统为SlaveAgent等提供代理执行环境,并根据远程监控主机或其他移动代理服务器的请求或协作,完成相应代理服务和响应职能。其代理由事件代理和管理代理等静态代理组成。远程监控主机和移动代理服务器的信息交换是通过Agent间的基于消息传递方式的传递消息对象来实现的。下面介绍根据系统远程监控功能的需要而设计的远程监控主机和移动代理服务器的主要代理的功能和分类。
  (1)主机管理代理(HManagerAgent)。执行系统管理任务的静态代理。它负责启动系统代理计算,管理SlaveAgent及生成主图形用户界面和监控图形界面。它根据用户的输入请求、执行环境或其他Agent传递消息对象的信息,通过创建和加载远端移动代理服务器的SManagerAgent启动远端移动代理服务器的代理计算;同时,根据用户和系统的授权,创建、加载SlaveAgent中相应的移动代理,启动系统各个远程监控功能域,为移动代理提供执行任务的参数和指派相应的权限,并委派移动代理至远端移动代理服务器执行任务。同时,SlaveAgent返回的执行结果及远端Agent传递来的消息对象均由HManagerAgent负责接收、显示和处理。
  (2)初始化代理(InitAgent)。执行系统初始化任务的移动代理。它将HManagerAgent的Agent ID码、Context地址和用户设置的数据刷新率等系统初始化数据传递给远端移动代理服务器的SManagerAgent;同时,将SManagerAgent的Agent ID码和通过对MySQL数据库的访问所收集到的由各本地监控主机存入信息数据库的设备节点和网络变量等信息返回给HManagerAgent。HManagerAgent根据返回的信息生成监控图形界面。
  (3)监控代理(MoniAgent)。执行实时监控任务的移动代理。系统包含有多个监控代理,每一个监控代理执行一项监控任务。MoniAgent在远端移动代理服务器端,通过对MySQL数据库的访问所获取的现场设备节点运行状态的实时和历史数据,根据监控规则和算法,实现其控制函数运算,并将运算结果的控制数据通过本地监控主机传递给节点控制程序,实现对节点的控制。同时,MoniAgent还要将执行结果返回给远程监控主机的HManagerAgent处理,以实现高层的决策。
  (4)巡视代理(ItinAgent)。执行设备节点信息搜寻任务的移动代理。它不断地在各远端移动代理服务器间进行巡视,巡视到某一个地点,通过对MySQL数据库的访问,动态地获取整个系统的设备节点信息,并向HManagerAgent报告。HManagerAgent利用该信息自动或在用户的管理下创建、加载或清除相应代理,完成设备节点和监控任务的动态加入或删除。
  (5)协作代理(CoopAgent)。执行协作任务的移动代理。HManagerAgent通过向各远端移动代理服务器发送CoopAgent,由CoopAgent在各远端移动代理服务器间实现基于消息传递方式的信息交换,自主制定协作工作计划,实现共同的监控目标。
  (6)服务器管理代理(SManagerAgent)。负责接收、显示和处理HManagerAgent传递的消息对象,生成图形用户界面以及创建、加载Up_eventAgent和Al_eventAgent,并为之提供监控数据刷新率及HManagerAgent的Agent ID码和Context地址等执行参数的静态代理。
  (7)数据刷新事件代理(Up_eventAgent)。由SManagerAgent创建、加载的静态代理。它根据监控数据刷新率参数,定期访问MySQL数据库,获取现场设备节点运行状态的数据信息,并通过消息对象传送给HManagerAgent,实时刷新各设备节点信息。
  (8)数据报警事件代理(Al_eventAgent)。由SManagerAgent创建、加载的静态代理。它通过消息对象将报警信息实时传送给HManagerAgent,实现远程实时故障报警。
  这几类职能代理完成了系统主要的职能,并为其他代理提供了基本服务。此外,根据系统应用的需要,可创建新的职能代理,并通过代理间的通信实现特定的服务。
1.3 系统工作流程
  系统工作流程如图2所示。
 

  系统的工作过程为:
   (1)启动HManagerAgent,并通过主图形用户界面输入远端目标移动代理服务器地址、数据刷新率及企业信息等初始化数据。HManagerAgent根据该地址创建和加载远端移动代理服务器的SManagerAgent,启动远端移动代理服务器的代理计算,并加载和发送InitAgent至各远端目标移动代理服务器执行初始化任务,启动代理计算。同时,InitAgent将SManagerAgent的Agent ID码和通过对MySQL数据库的访问所收集到的由各本地监控主机存入数据库的设备节点和网络变量等信息返回给HManagerAgent。待InitAgent返回结果后,HManagerAgent根据返回的信息生成监控图形界面,并向SManagerAgent发送服务请求消息对象。
  (2)VB监控应用程序实现本地生产过程的监控管理,它通过 LonManager DDE Server获取Lon网络的各设备节点的网络输出变量信息,并写入MySQL数据库。
  (3)SManagerAgent接收到服务请求消息对象后,加载并启动Up_eventAgent和Al_eventAgent。Up_eventAgent定期检索MySQL数据库,获取现场设备节点运行状态信息和网络输出变量信息,并通过消息对象传送给HManagerAgent,远程实时刷新各节点设备信息。若VB获取的设备信息为报警数据,则VB还必须实时地将数据复制到移动代理服务器的系统共享剪贴板。Al_eventAgent通过剪贴板可实时地粘贴报警数据,并将报警数据实时传送给HManagerAgent,实现远程实时数据报警。
  (4)当远程监控主机对现场设备实施控制时,HManagerAgent根据用户的输入请求、执行环境或其他Agent传递的消息对象的信息,启动并派遣相应的MoniAgent 或CoopAgent至移动代理服务器。Agent读取MySQL数据库中被控设备节点的实时和历史数据信息,实现其控制函数运算,并将运算结果的控制数据写入MySQL数据库。VB监控应用程序读取该数据项,并将该数据以输入网络变量的形式通过LonManager DDE Server和KinkPoke方法传递给Lon网络各节点的Neuron C控制程序,执行数据项的更新和设备控制。
1.4 系统代理代码的设计
  系统代理代码是基于IBM公司的Aglets设计的。设计中定义并创建了MasterAglet、SlaveAglet和EventAglet三个抽象代理类。系统中各代理均通过继承该三个类,并按照前面定制的各代理功能,在继承的各代理子类对象中覆盖其中相应的方法,完成代理代码的编写。
2  系统的应用与结论
  目前,本系统在某机床零件加工远程流程监控系统中实现了应用。实践表明,在实时性和刷新率均要求很高的情况下,系统具有良好的控制效果和运行的稳定性,取得了预期的效果。
 该方案对大范围的协作生产过程的远程监控应用显示了良好的应用前景。
参考文献
1   Wijata Y I,Nichaus D,Frost V S.A scalable agent-based  network measurement infrastructure.IEEE Communications  Magazine,2000;(9)
2   Fuggetta A,Picco G,Vigna G.Understanding code mobility     IEEE Trans on Software Engineering,1998;24(5)
3   杨育红.LON网络控制技术及应用.西安:西安电子科技大 学出版社,1999
4   Danny B,Mitsurn O.Mobile Agents with Java:The Aglet  API.World Wide Web Journal,1998;(3)

此内容为AET网站原创,未经授权禁止转载。