江伟光,鲁建厦,汤洪涛,李志鑫
(浙江工业大学机械工程学院,杭州 310014)
现代汽车产品开发是一项需要多领域交融、多部门协作、多角色参与的设计活动,分布式异构化环境已逐渐成为汽车制造企业管理和开发的基础环境,网络化、集成化、智能化和服务化的协同开发环境是企业提高其核心竞争力的必然需求。传统的产品数据管理(product data management,PDM)作为产品协同开发的基础数据平台,具有一些不足之处:采用集中式的数据处理和服务方式,不具备足够的开放性和重用性,对分布式环境支持不足;与应用系统的协同多采用多点集成的紧耦合方式,不具备足够的柔性和扩展性,对异构化环境支持不足;系统之间的交互停留在语法层次,无法建立基于语义的知识交互,对智能化环境支持不足。
智能体(Agent)技术被引入并应用于协同开发环境,它建立在分布式人工智能的基础上,可感知外界环境并作出反应,具有自律性、社会性、反应性和自发性4个基本特征[1-2]。多Agent系统通过多个Agent的相互通信和协作,封装用户的意图,协同用户的目标,可用于实现开放的、分布式的PDM和开发环境,共同协作完成单个Agent难以完成的任务[3-5]。然而目前多Agent系统在面向产品开发时表现的不足在于其平台相关性和紧密耦合性,多为面向特定业务逻辑,其开放性和分布性建立在自定义的通信方式和协议上,需要关注整个协同交互的细节,这就增加了系统复杂度和实现难度,其重用性和扩展性也受到了相应限制。
针对以上问题,将多Agent协同策略建立在通用的信息服务基础层上,使Agent系统构建者无需把精力放在基础通信层的定义上,而把更多的精力放在自身的功能实现上,是解决问题的有效途径之一。Web服务在一定程度上满足了这种需求,它构建在XML/SOAP/WSDL/UDDI等标准的基础上,具有平台无关性和松散耦合的优点,可在Internet和Intranet环境下描述、发布、发现和调用,是建立分布式应用系统的新平台,易于实现异构系统的应用集成。本文中以PDM系统作为协同开发基础平台,结合Web服务和Agent技术,建立面向服务的多Agent协同开发环境。
基于Web服务架构多Agent协同开发环境,可结合Web服务和Agent各自优点,具有以下优势。
(1)Agent可调用一个或组合多个服务,多个Agent也可以调用同一个服务,而服务由各个服务提供者定义和实现,已经分布于网络环境中或可独立于应用来定义,可使问题合理分解,资源优化配置。Agent只需调用其接口而不需关注服务的功能实现,降低了实现难度,提高了Agent系统的灵活性和对服务的重用度。
(2)将原先Agent间直接相互协商的紧密耦合转化为以分布式Web服务为基础的松散耦合,提高了系统的稳定性,当某个Agent出现问题时,不会影响其他Agent的正常工作。
(3)Agent的智能性、自治性和并行性可实现对Web服务调用的自动化,并弥补Web服务对用户和环境感知的不足,满足业务流程的并行处理和企业应用的动态集成。
(4)Web服务不可能完全符合用户要求,还有很多应用系统并不支持对Web服务的直接调用,而Agent真正以用户为目标,可进一步处理服务结果。作为服务与应用间的桥梁,在不改变原有系统结构的情况下适应动态应用需求,以自身的动态变化来获取服务和被服务应用系统的兼容性。
图1为基于Web服务的多Agent体系结构。首先,从系统的宏观角度看,见图1左侧,多Agent层和服务层建立在知识层和数据层之上,服务于应用层。其中知识层基于本体将产品开发知识和信息集成,为Agent之间基于语义的理解提供知识表达和本体集成基础,使Agent、Web服务自身和它们之间的协同可实现基于语义的智能应用[6];数据层以PDM平台为依托[7],将网络中以异构和分布形态存在的产品信息、管理信息和智力资源等统一集成,为产品开发提供了信息获取的可达性和灵活性,是构建协同环境和应用的数据基础。
其次,从企业内外协作的角度来看,企业间协同通过各个协作单元之间的互操作来实现,每个协作单元具有类似的组织结构,集成多个Agent和Web服务。在企业间交互的Internet环境中,Web服务以通用的形式向其他协作企业提供应用程序接口,并服务于负责执行企业内部业务流程的多个Agent。
Agent负责发现、组合和处理多个服务形成满足企业需求的业务流程。Web服务多为无状态的,但Agent可以感知环境的状态变化,并对此作出反应,描述业务流程的过程,发送和接受消息,通过多个Agent之间的通信和协作来执行业务流程和协同相关应用。本系统由一个负责多个Agent间协调的协作中心和负责子任务的子Agent组成,协作中心在框架中处于中心枢纽地位,它由协作管理Agent、本体Agent和冲突处理Agent组成。各部分的功能详细描述如下。
(1)协作管理Agent主要控制所有Agent之间的信息共享,并协调Web服务与它们之间的信息交互。具体来说包括各个Agent的注册信息及维护;指派任务给各个子Agent,控制它们的启动、执行和结束;与本体Agent交互获得语义支持;将有冲突的过程或结果提交给冲突处理Agent,并将处理结果返回相应Agent。
(2)本体Agent可为其他Agent提供本体的管理和集成服务,捕获该领域相关知识,提供一致的理解,使Agent之间的通信建立在语义的基础上。另外各个子Agent的检索和推理功能也需要本体A-gent的协助。
(3)冲突处理Agent接收来自协作管理Agent的消息,进行冲突检测,提供冲突消解和协商方法。冲突处理是协同工作的重要组成部分,具体包括资源冲突和决策冲突。资源冲突发生在多个Agent在同一时刻需要独占或共享某一资源时,此时冲突处理Agent提供调度策略供协商管理Agent来分配资源。一般使用加锁机制,然后采用一定的优先策略对等待的Agent队列进行调度。由于不同Agent的知识结构和思维方式不同,决策冲突发生在多个A-gent对同一问题所得出的结论冲突,此时冲突处理Agent提供协商策略来处理这类问题。
(4)各个应用Agent执行各自的任务,可代理一个遗留系统、新应用系统、机器或操作人员。它可根据用户需求调用相应的Web服务,并处理服务返回结果以供使用,同时也可封装业务流程以Web服务的形式供其他分布式系统调用。
在基于服务的多Agent体系结构中,协作中心起关键作用。各Agent间的协同形式有以下几种。
(1)任务的分解与分配 协作中心接收到协作任务后将其分解为多个子任务,并分配给具有相应能力的子Agent,将多个应用子Agent协同起来,共同完成一个复杂的任务。任务的分解和分配是工作流管理的主要功能之一,其任务的承担者一般是人员、角色或团体。与此不同,这里任务的分配者是协作中心的协作管理Agent,任务的承担者是各个应用Agent或其他的协作中心,其优势在于任务的自动完成,但它本身也是工作流的一部分,以工作流相关知识规则为基础,在无法完成任务时转向交互服务。
此时的协同机制可分为基于模型和基于协商两种类型。基于模型的方式以工作流模型为基础,协作中心根据任务来匹配已有的工作流模型,以工作流模型中的任务分配规则和流程控制来指定和调度相应的应用Agent,这实际上是通过对工作流模型的重用来对相似任务进行求解,适用于企业局部范围内完成某类重复性较高的固定任务,如产品的设计重用;基于协商的方式采用合同网协议[8],处于开放式环境中,协作中心事先并不知道哪些应用Agent能够完成任务,它首先按一定规则将任务进行分解,在已注册的Agent中搜索可以完成任务的应用A-gent,但不立刻进行任务分配,而是以投标的方式与这些子Agent协商,选择最合适的应用Agent来完成任务,该方法适用于合作企业间的业务整合。
(2)信息的共享与一致 各个应用Agent虽然各自独立完成自身的任务,但信息的共享、耦合和冲突在协作过程中必然会产生,当某一应用Agent更改信息时,其他Agent中的关联信息也应当及时得到合适的信息跟随。
此时的协同机制主要通过数据库共享和Agent消息通知的方式来进行信息交互。数据库共享的方式适用于几个应用Agent共用同一数据库,当数据库更新时协作中心会通知有信息关联的各个应用Agent,并由冲突处理Agent对并发冲突进行处理;基于Agent消息通知的方式是Agent之间交互的最基本方法,各个应用Agent之间也可以不通过协作中心而直接传递和共享Agent消息,且消息的内容具有较大的灵活性。
(3)服务的调用与提供 服务的调用实际上是一类特殊的信息共享方式,服务的提供者封装了业务逻辑和具体的实现技术,调用者通过远程方法调用返回服务结果。Agent既可以作为服务的调用者也可以作为服务的提供者。
调用服务时,Agent向UDDI查询服务,通过其接口描述WSDL来了解服务,然后再获取和绑定服务,服务正常则返回服务结果,为自身业务逻辑所用,服务异常则作异常处理,重新申请服务或者转交人工处理。提供服务时,Agent将自身的部分业务逻辑分离出来,提供标准的Web服务接口,并在UDDI中注册服务,供其他系统发现和调用。
针对在分布式协作过程中需要集成Web服务,对Agent内部结构作相应改进,如图2所示,设计由感知模块、控制模块和执行模块3部分组合成为可与周围环境交互并能集成服务的自治体。
感知模块是外界环境与Agent交互的接口,由环境感知器、服务接收器和交互界面组成。环境感知器可获取当前任务环境的相关信息,如任务通知和控制指令等,一般为Agent间的通信信息;服务接收器可接收其他Agent自身服务的调用,提交给控制模块和执行模块以提供相应的Web服务,同时也可接收外部Web服务的返回结果和服务状态,提交给控制模块和执行模块处理为自身业务逻辑所用;交互界面以界面的形式与用户交互,接收用户请求和输入。这3种类型的感知器并不是每个Agent都必须具备,有的Agent可能只需要其中的一种或两种。感知器接收各种信息,形成感知集,传送给控制模块和执行模块。
控制模块包括状态控制和推理机构,以目标为导向,以知识规则为推理基础,对感知集作出一定反应。状态控制中除Agent自身内部状态,还增加了服务状态模块,以跟踪和记录Web服务过程,共同形成状态集;推理机构体现了Agent的思维方式,与知识库交互形成知识积累循环,具有分析和决策的能力。
执行模块在控制模块的引导下,产生动作集,它是一组行动序列,体现Agent的行为能力,改造外部环境。
通过对以上Agent内部结构的分析,可将其形式化定义为八元组:
式中:ID表示Agent的标识;Se表示感知集,是环境感知器、服务接收器和交互界面收集的信息集合,一般以消息的形式发送;St表示状态集,是Agent自身内部状态和服务状态的集合,体现Agent的状态控制;Kn表示知识集,不仅包括知识的表达,还可延伸为信念、承诺等意识性概念;Task表示任务集,体现Agent的目标;Inf表示推理过程,它是在 Se、St、Kn 和Task的综合作用下Agent作出的反应;Act表示动作集,由执行模块操作;Env表示周边环境,由其他协同Agent和对象组成。
在面向具体任务,不同的Agent可采用以上通用的基本结构,但具体内容各不相同,可形成不同功能的Agent群。Agent具有自我学习的能力,随着与环境的交互,其求解能力也逐渐增强。
基于已有的PDM平台,采用上述思想建立汽车减振器协同开发环境,初步应用于企业。协同的产品开发环境与高效的产品数据管理是密不可分的,在协同开发环境建立的产品数据管理的基础上,能获得较好的数据和知识支持,也使开发环境易于管理,便于产品开发和管理的一体化集成。整个系统体系结构见图3,其主要由两部分组成:PDM平台和产品协同开发平台。其中PDM平台由资源管理、工作流管理、系统管理、产品生命周期管理和协同工具集等部分组成,它们可为协同开发平台提供全生命周期的数据支持,并将开发平台的设计过程和结果管理起来;开发平台包括产品在开发过程中的各种应用程序和业务流程,这里根据企业需求,以面向设计重用的功能模块为主,包括减振器专家系统、参数化设计系统和工艺设计系统,其中专家系统包含基于实例推理(case-based reasoning,CBR)系统流程和产品结构配置流程,得出主参数进入参数化设计流程和工艺设计流程。产品数据管理通过Web服务或数据库服务将这些管理起来的产品生命周期信息和资源提供给各种开发应用程序,各应用程序通过多Agent系统整合这些服务,组建自身业务流程来完成相应任务;这些应用程序可分布于不同部门和企业,相互间也可以提供服务,并作为协作单元组建新的业务流程。整个协同环境具有以下特点。
(1)数据层上支持物理上分布的数据源和逻辑上集成的数据访问。
(2)业务层上支持多任务并行和协同。
(3)界面层上支持多用户多种交互方式。
(4)知识层上支持多学科多领域知识集成。
(5)应用层上支持多种协同工具。
减振器设计系统可充分利用PDM系统中存储的大量产品和零部件实例及集成服务,搜索可重用的相似实例,进行设计重用。原型系统如图4所示,具体流程如下。
(1)用户或需求智能体将设计需求传递给产品CBR智能体,产品CBR智能体从PDM的产品智能体获取产品分类和属性Web服务,形成输入界面。
(2)根据输入条件,产品CBR智能体向相似度计算Agent请求相似度计算,相似度计算Agent自身可调用相似度算法Web服务,并从PDM的产品智能体获取产品实例Web服务,产生相似度结果,返回给产品CBR智能体。其中相似度计算Agent也可提供相似度算法服务给外部系统。
(3)产品CBR智能体根据相似度和相关规则判定是否满足要求,符合要求的可直接选用,有相似实例但需要更改的将相关要求传递给零部件CBR智能体。
(4)零部件CBR智能体从PDM的产品智能体获取产品结构服务,从零部件智能体获取零部件分类和属性Web服务,并向相似度计算Agent请求相似度计算,后者调用PDM中的零部件实例数据,搜索合适的零部件实例。
(5)不满足要求但有相似实例的可进入参数化设计流程。参数化智能体从PDM中获取参数化模板和相关数据服务,可与用户交互进行参数化设计。
(6)无相似实例的进入零部件设计智能体,可与用户交互进行新产品设计流程,其中也可获取PDM中相关数据和设计知识服务。
基于Web服务的多Agent分布式协调策略,结合Web服务的松耦合性和Agent的自治性,使服务接口和具体的业务逻辑明确分离,便于构建支持分布式、异构化和智能化的协同开发环境;结合PDM平台,可获取有效的产品数据支持,满足现代产品开发对协同环境和数据管理的需求。
[1]Marik,Lazansk.Industrial Applications of Agent Technologies[J].Control Engineering Practice,2007,15(11):1364-1380.
[2]Shen W,Hao Q,Wang S,et al.An Agent-based Service-oriented Integration Architecture for Collaborative Intelligent Manufacturing[J].Robotics and Computer-Integrated Manufacturing,2007,23(3):315-325.
[3]Wang S,Shen W,Hao Q.An Agent-based Web Service Workflow Model for Inter-enterprise Collaboration[J].Expert Systems with Applications,2006,31(4):787-799.
[4]刘晋飞,陈明,姚远,等.基于多Agent的产品模块化协同设计策略[J].计算机集成制造系统,2011,17(3):560-570.
[5]邱福生,刘文剑.基于多智能体的网络协同产品数据管理技术研究[J].计算机集成制造系统,2006,12(5):702-708.
[6]江伟光,武建伟,吴参,等.基于本体的产品知识集成[J].浙江大学学报(工学版),2009,43(10):1801-1807.
[7]武建伟,江伟光,潘双夏.面向产品生命周期的集成模型及演化研究[J].计算机集成制造系统,2009,15(8):1493-1499.
[8]Peyman Faratin,Carles Sucrra ,Jennings N R.Negotiation Decision Functions for Autonomous Agents[J].Robotics and Autonomous Systems,1998,24:159-182.