面向Agent的分布式生产管理系统建模

2013-10-15 01:20乔东平肖艳秋
制造业自动化 2013年15期
关键词:分布式管理系统建模

乔东平,李 浩,肖艳秋

(郑州轻工业学院 机电工程学院,郑州 450002)

0 引言

在全球竞争环境下,传统的生产管理系统通常采用集中式系统结构,具有柔性差、不易配置和集成、难修改和扩展的特点[1,2],对于生产过程中的突发事件处理能力较弱。基于分布式决策和局部控制的分布式生产管理系统能够较好满足生产过程管理面临的新挑战,它通过松散耦合的问题解决者之间的协作为突发事件处理提供支持[3]。

伴随着Agent技术的发展,Agent逐渐成为分布式问题求解的重要手段[4],基于Agent技术在制造领域构建分布式应用的研究得到了广泛的关注[5~7],众多的研究成果证明起源于分布式人工智能的Agent为构造灵活健壮的分布式生产管理系统提供了新的思路。本文针对装备制造企业生产管理的特点,基于Agent技术建立分布式生产管理系统以满足企业需要,在分析分布式生产管理系统结构的基础上,采用扩展面向对象方法建立分布式生产管理系统模型,基于AUM L(Agent Unified M odeling Language)详细分析了系统的建模过程,给出采用JADE(Java Agent DEvelopment Framework)的系统框架实现。

1 分布式生产管理系统结构

为了实现装备制造企业生产过程的有效组织和管理,构建虚拟动态管理单元实现对参与生产过程的实体进行有效的单元划分和组织[8]。虚拟动态管理单元用逻辑单元的概念实现参与生产过程实体的动态重组,使系统的控制具有自治和协作的双重特性,增加了系统的柔性和适应性。参考典型的企业模型,基于虚拟动态管理单元将生产车间分为管理层、虚拟动态管理单元层和执行层,相关实体基于生产过程本体进行通信,其层次结构如图1所示。

图1 分布式生产管理系统层次结构

在生产管理过程中管理层、虚拟动态管理单元层和执行层之间存在递阶控制,同一层中的实体基于合同网的协商进行交互,属于分布式控制。各层的详细介绍如下:

1)管理层:是生产过程管理的最高管理层,主要负责生产任务的宏观管理和后勤管理,如生产订单管理等;负责虚拟动态管理单元的创建和消亡;对生产安排进行宏观调控,当虚拟动态管理单元层发生冲突时由管理层依据生产实际做出决策;对于一些紧急任务,管理层可以强制进行安排,保证订单按时交付。

2)虚拟动态管理单元层:由一组虚拟动态管理单元组成,是系统的局部管理者,不同的单元负责管理不同的制造实体,根据生产实际对单元内资源使用进行优化;负责对单元内的冲突进行解决协调,并将制造实体的状态信息传递给管理层。

3)执行层:执行层处于系统的最底层,由众多的制造实体构成,它们通过向不同虚拟动态管理单元注册,实现资源的共享和充分利用。

生产过程本体为生产过程提供了无二义性的表达,相关实体可以用统一的方式进行信息和知识存储,彼此之间可以相互理解,为实体之间通信提供语义层支持。

2 面向Agent的分布式生产管理系统模型

2.1 AUML[9]介绍

由FIPA(Foundation For Intelligence Physical Agent)和OMG(Object Management Group)联合发布的Agent UML(AUML)[9]通过使用和扩展UML对面向Agent的建模提供支持。由于UML中定义的符号和规则用来描述Agent系统是不够的,因此AUML的基本原则是:充分利用UM L已经定义的符号和规则,但不局限于此,在需要的时候创建新的符号或是借鉴其他领域的符号。AUM L通过扩展UML为面向Agent的系统建模和分析提供了统一的建模语言,采用一系列视图从不同角度描述系统的静态结构和动态行为,支持面向Agent的系统开发的整个生命周期的描述。AUML主要在顺序视图、类视图和状态视图等方面对UML进行了扩展。

AUML将UML中的顺序图扩展后应用于Agent之间的交互描述,引入连接符表达在多个消息(或事件)中选择一个或若干个以及多个消息(或事件)并发传递(执行)的情况,扩展后的顺序图是表达FIPA中交互协议规范的基础。

AUM L中Agent类图采用UM L衍型的方式定义,包括Agent类的名称、角色名、状态描述、内部行为、对外提供的服务和相关协议等,实现Agent内部状态(属性、规则和知识、信念、意图和目标等)和动态行为(方法、自治行为、通信和推理行为等)的描述。

AUM L将状态图和活动图结合起来用于描述Agent之间交互的处理流程和推理行为,通过支持状态图的嵌套实现对Agent间交互和推理的支持。

2.2 面向Agent的分布式生产管理系统建模

采用面向Agent方法对分布式生产管理系统建模,主要是基于AUM L对系统进行分析和模型构建。由于系统包含的功能多且结构复杂,主要从以下七个方面对系统模型进行分析。

1)系统功能需求描述

在传统的面向对象分析中通常根据系统的目标描述系统需求,进而对其功能进行分析,容易造成需求冗余和需求矛盾。因此面向Agent的建模中基于对生产过程应用场景分析,使用用例图描述系统功能需求,从用户的角度获取系统功能,分布式生产管理系统功能需求描述用例图如图2所示。

图2 功能需求描述用例图

从图中可以看出,系统的用户主要包括:管理人员(factory manager)、计划员(planner)、调度员(scheduler)、工段长(section chief)、工人(worker)、工艺员(technologist)和库存管理员(storekeeper),不同的用户对系统的功能需求不同,如管理人员主要需要一些查询功能,包括生产订单查询(production order find)和生产计划查询(production plan find)等。

2)Agent识别

识别系统中的Agent是构建面向Agent系统的基础,其结果直接影响系统运行性能。通常依据经验直接将系统中的物理实体或功能映射为Agent,前者会造成系统中Agent数量过多,运行中通信量大的问题;后者需要在Agent间共享大量的状态变量,增加系统中Agent间的额外交互。综合使用两种方法识别分布式生产管理系统中的Agent,在执行层将物理实体直接映射为Agent,方便管理其状态;在虚拟动态管理单元层和管理层将功能模块映射为Agent,通过共享功能模块之间的状态,减少Agent间交互。在基于AUML描述的模型中Agent是包含一组用例的包,将系统功能需求描述中获得的用例进行组织,获得的Agent与用例对应关系如图3所示。

图3 系统中Agent与用例的对应关系

系统中的Agent有:管理Agent(M anagement A gen t M A)、虚拟单元管理A gen t(V ir tua l Cell M anagem ent Agent VCM A)、资源管理Agent(Resource Management Agent ResMA)、任务管理Agent(Task M anagement Agent TMA)、资源Agent(Resource Agent RA)、库房Agent(Warehouse Agent WA)和工艺规范管理Agent(Process Spec Management Agent PSMA),其中管理Agent属于管理层,虚拟单元管理Agent属于虚拟动态管理单元层,其他Agent属于执行层。

3)Agent角色识别

通过识别Agent在协同过程中扮演的不同角色,有助于理解Agent行为方式以及Agent之间的协同过程。在AUML中采用顺序图来表达Agent的协同过程,图中的每一个对象代表一个Agent,通常采用<角色名>:<Agent名>的语法形式进行命名。管理人员通过管理Agent进行任务分派的交互过程中Agent的角色识别如图4所示,在此过程中不同的Agent扮演不同的角色,如VCMA是任务分配的管理者,PSMA是工艺规范的提供者,RA是资源的提供者等,它们通过消息传递实现协同,完成任务分配。

4)任务分解

将系统功能围绕Agent进行分解,将Agent执行的任务标识出来,从组织的角度将Agent承担的任务进行划分,有助于对Agent内部状态和动态行为的描述,在AUM L中任务分解用活动图表示。对任务管理Agent进行任务分解的活动图如图5所示,图中右边泳道中的活动代表任务管理Agent执行的主要任务,在同一泳道中的活动变迁表示其执行任务过程中的控制,而不同泳道中的活动变迁则是Agent在活动执行过程与其它Agent之间的交互。

图4 任务分派过程中的角色识别

图5 任务管理Agent的任务分解图

5)Agent角色描述

从Agent在执行任务时的角色、彼此之间的交互和会话的角度对Agent生命过程进行建模,分析Agent在任务执行过程中扮演角色的具体行为。在AUM L中使用类图来描述Agent承担的角色,每个类代表一个角色,而Agent使用包含角色的包表示,通过对Agent承担的角色进行行为描述一方面有助于理解其行为,同时还表达了Agen t承担不同角色之间的关系以及角色之间的转化关系,角色之间的关系主要有通信关系(Communications)、依赖关系(Dependencies)和角色转换关系(Role changes)三种,其中依赖关系又分为服务(service)、资源(resource)、半服务/半资源(soft-service/ soft-resource) 依赖三种。

系统中Agent的角色描述如图6所示,图中描述了系统中Agent角色间的通信、依赖和角色转换关系,如VCMA在进行单元管理时需要与单元内的TMA进行通信获得单元内任务的状态,因此二者之间具有通信关系。

图6 系统中Agent角色描述

6)Agent交互协议描述

系统运行过程中Agent之间的交互要遵循标准的协议,分布式生产管理系统中Agent的通信基于FIPA提出的合同网协议实现,在AUM L中采用扩展的UM L顺序图对其描述。基于合同网描述的生产过程中ResMA向RA分配任务的交互协议如图7所示。在此过程中,ResMA首先向RA发送分配任务的消息,如果RA能够按要求将任务安排,则将任务安排信息发送给ResMA,否则发送调整自身任务需求的消息或者非空闲消息;当ResMA接收到调整请求,根据当前的状况,可以取消分配或者允许调整,RA接收到允许调整消息,将调整任务队列,并对任务做出安排,将安排信息发送给ResMA;当ResMA接收到非空闲消息,可以向RA发送取消任务消息,通过取消其他任务使当前任务获得安排,当RA接收到取消任务信息后,对任务队列中的任务进行取消操作,将任务安排信息发送到ResMA。

图7 ResMA向RA分配任务的交互协议

7)Agent结构定义

在AUML中使用类图来表示Agent结构,类代表系统中的Agent,类的属性表示Agent的知识,操作表示Agent的行为,类之间的关系表示Agent之间的通信。Agent的结构图通常有多Agent结构图和单个Agent结构图两种。前者从整体上对系统中Agent之间的关系进行描述,包含了系统中所有Agent、外部用户以及它们之间的交互关系,分布式生产管理系统的多Agent结构图如图8(a)所示,从整体的角度给出相关Agent的主要知识、行为以及彼此之间的通信关系;后者是在前者的基础上结合Agent实现技术获得的单个Agent的结构图。ResMA的结构图如图8(b)、8(c)所示,图8(b)是ResMA实现的主类结构图,图8(c)是ResMA主要的行为类结构图。

图8 Agent结构定义图

根据以上分析,将系统中的单个Agent构建为一个类,Agent的行为根据需要组织为一个或多个类,最后基于AUML构建的系统主要类视图如图9所示,图中Agent之间的关联关系代表彼此之间的通信。

图9 系统中Agnet类视图

3 面向Agent的分布式生产管理系统实现

依据构建的系统模型,采用意大利电信实验室主持开发的Agent开发平台JADE实现的面向Agent的分布式生产管理系统框架如图10所示,框架被分为三个层次。

图10 基于JADE实现的系统框架结构

处于最底层的是JADE分布式Agent平台和数据库,前者为系统的运行提供基础服务,是分布式生产管理系统中Agent平台的软件实现,其中消息传递系统完成Agent通信管理功能,平台管理系统功能主要由AMS(Agent Management System)、RMA(Remote Management Agent)和DF(Directory Facilitator)三个代理组成,分别负责系统中Agent管理、Agent界面管理和“黄页”服务等基本功能,通过扩展JADE平台提供的功能实现;数据库中存储了Agent运行时所必须的数据、知识和规则,系统运行结果也保存在数据库中,通过JDBC(Java DataBase Connectivity)与系统中的业务Agent连接。

处于中间层的是本体组件和Agent组件,其中本体组件是生产管理过程本体的软件实现,将相关的本体对象组织在一个java包,它们向JADE平台注册后可以直接作为系统中代理之间通信内容使用,同时也为业务Agent内部知识和信息的存储提供方便;Agent组件是框架中业务Agent组的软件实现,是整个框架的业务核心,它们继承了JADE开发工具集中提供的类,运行在不同的JADE容器中,形成分布式应用。

最顶层是界面层,提供方便的人机交互,管理人员可以通过发送消息干涉Agent的运行和查看其运行结果。该层次的开发继承了JADE中提供的图形界面通用类(jade.gui包),同时使用图形化的任务显示工具建立可视化的人机交互环境。

4 结束语

由于Agent具有自治性、协同性和社会性等特点,其在分布式系统构建中具有不可替代的优势,但是如何对面向Agent的系统建模,详细描述Agent自身的属性、知识、行为以及在多Agent环境下的组织形态和动态交互是系统构建中要解决的重要问题。AUM L通过扩展UML提供了统一的面向Agent的系统建模语言,使得面向对象的思想可以直接应用于面向Agent的系统建模中,为面向Agent系统的建模和分析提供了便利。本文基于AUM L详细分析了面向Agent的分布式生产管理系统的建模过程,并给出了系统的实现框架。

[1] M ilagros Rolon, Ernesto Martinez. Agent-based modeling and simulation of an autonom ic manufacturing execution system[J].Computers in industry,2012,(63):53-87.

[2] 杨浩,朱剑英.基于多Agent的分布式制造执行系统的建模[J].中国机械工程,2004,15(11):973-977.

[3] L. M onostori, J. Váncza, S.R.T. Kumara. Agentbased system s for m anu facturing[J].Annals of the CRIP,2006,55(2):697-720.

[4] 李芳,陈南.多Agent系统的研究进展及其在机械制造领域的应用[J],制造业自动化,2009,31(1):75-77.

[5] 李应,杨善林,郑家强.敏捷制造系统的基于Agent的混合调度[J].系统仿真学报,2009,21(12):3763-3767.

[6] 赵强,肖人彬.基于多智能体技术的虚拟企业任务调度[J].华南理工大学学报(自然科学版),2009,37(2):20-24.

[7] Paulo Leitao. Agent-based distributed manufacturing contro l: A state-of-the-art survey[J], Engineering applications of artificial intelligence,2009,(22):979-991.

[8] 乔东平,马军,杨建军. 多层混合规划和Agent在生产调度中的应用[J],机械科学与技术,2011,31(8):1334-1340.

[9] Bauer B, Müller P, Odell J. Agent UML:A Formalism for Specifying M ulti-agent Interaction[A].Agent-Oriented Software Engineering[C], Paolo Ciancarini. and M ichael Wooldridge eds., Springer, Berlin,2001: 91-103.

猜你喜欢
分布式管理系统建模
基于James的院内邮件管理系统的实现
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于LED联动显示的违停管理系统
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
停车场寻车管理系统
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
海盾压载水管理系统
基于DDS的分布式三维协同仿真研究