计算机应用研究
APPLICATION RESERCH OF COMPUTERS
2000  Vol.17　No.1　P.21-22，64




基于Agent的工作流模型与应用
王东　任午令　何志均
摘 要 CIMS应用集成平台是企业实施CIMS的有效支持工具，而MIS系统则是整个CIMS集成平台的重要组成部分。主要研究了基于Agent的工作流模型及其在MIS系统中的应用。在WFMS参考模型的基础上，提出了一个基于Agent的、易于扩展和移植的、以浏览器作为用户界面的工作流管理系统：ABs_WFMS，并介绍了系统的运作方式。基于Agent的工作流管理系统在浙江好来西CIMS系统的开发中作了有益的尝试。
关键词 CIMS 工作流管理 Agent Web Browser
1　引言
　　当今企业在激烈的市场竞争中寻求生存和发展，在外主要依靠准确抓住市场机会，在内则需要企业能快速灵活地适应市场的发展变化。近年来，在国家863/CIMS工程技术研究中心的大力推广下，国内许多制造性企业都在开发与实施计算机集成制造系统(CIMS)，而集成化信息管理系统(MIS)则是整个CIMS应用的关键。然而作为整个CIMS开发关键的MIS开发却有一些令人感到棘手的问题，这些问题有：扩展能力差、难以维护、可重用性差，企业内部较小的变化可能引起系统的重大修改。
　　工作流管理系统(Work Flow Management System，WFMS)，作为一种对常规性事务进行管理、集成的技术，它可以改进和优化业务流程，提高业务工作效率，在企业内部实现更好的业务过程控制和业务监督机制，从而减少企业对市场需求变化的反应时间。工作流是指根据一组定义的顺序规则，对生产经营过程的部分或全部实现自动化。当前的工作流管理系统大多是基于事务处理机制的，通过扩展E-mail功能或者定义规则库来实现工作流程。本文提出了一种用全球网浏览器(Web Browser)作为用户的统一界面，通过Agent来实现工作流服务的制定、管理和监控的工作流管理系统。与基于E_mail或基于规则的工作流管理信息系统相比，ABs_WFMS有以下优点。
　　(1)通过消除各工作站间的直接数据传送，减少了网络的通信量。
　　(2)将工作流的流程描述从对工作流的控制中分离出来，提高了系统的可扩展能力。
　　(3)对工作流的局部改动可以在任何时候进行，从而大大地减少了系统维护的工作量。
　　这些优点很好地解决了MIS系统开发中遇到的问题。本文的第2和第3部分介绍了此基于Agent的工作流管理系统(Agent Based WFMS，ABs_WFMS)的设计和实现思想，第4部分通过对一个新产品开发流程的演示来进一步介绍实现细节。
2　ABs_WFMS中的Agent概念模型
2.1　ABs_WFMS中Agent的工作机制
　　Agent是一组定义精良的数据和程序体，它能够根据自身携带的信息自主地完成预定义的操作。从生产经营过程的角度出发，一个企业可以被视为由多个相互关联的不同层次的流程组成的网络。企业中每个流程都可以是一个独立的Agent，如新产品的开发Agent、产品设计Agent、产品制造Agent、产品销售Agent等。每种Agent都由Agent Server根据流程描述图来生成，每一个Agent可以根据预定义的工作流程自主地通过网络从一个流程岗位转到另一个流程岗位，收集信息并完成其自身的任务。也就是说Agent能在某一点暂停自己的执行，迁移到另一台机器，然后恢复执行，如此循环直到生产经营过程的正确完成或异常终止。当一个活动的Agent从一个岗位传到另一个岗位时，它自带有执行本岗位所需要的数据和代码，不需要从数据库服务器中读取数据。同时Agent还有自学习的功能，当一个Agent在它的处理过程中发生了异常错误时，Agent能访问异常处理服务器，在异常处理服务中定义的规则能够指导此Agent修改它的工作流程并保存到Agent Server的流程描述库中。当下一次同一种异常发生时，就不需要再访问异常处理服务器而直接到下一个流程岗位。
　　Agent知道如何在一个工作流内部的岗位上流转，它储存着关于此流程的内部状态和行为的一些基本知识(如图1)。

图1　WA-WFMS中的Agent
　　Agent携带有整个流程图和工作流程上每一步所需的基本对象信息，包括状态变量和特定对象类的方法以及成功完成每一个岗位的商业规则。
2.2　Agent的自主传送功能
　　为了实现Agent的自动流转功能，需要在Agent上定义一组原子函数，这些函数为Agent提供了诸如网络传送、成组通信、失败控制以及访问控制等服务。其中一个重要的函数是agent_jump( )，它实现将此Agent从一台工作站传送到另一台工作站。agent_jump( )捕获Agent的内部状态，将数据加密，然后传送到目标工作站，目标工作站重新启动此Agent，并从断点继续此Agent的流程(如图2)。

图2　Agent在两台主机之间传送
3　ABs_WFMS：基于Agent的工作流管理系统
3.1　ABs_WFMS系统的体系结构
　　ABs_WFMS体系结构的设计参照WFMS参考模型(Workflow Management Coalition Reference Model)进行，从CIMS应用集成平台出发，增强了任务队列管理器的功能，由它统一负责整个系统的工作流任务队列的管理。ABs_WFMS由4大部分组成：人机界面、活动Agents、Agent服务器、任务队列管理器。它们之间的关系如图3所示。

图3　ABs_WFMS系统体系结构
　　下面简要地介绍一下ABs_WFMS体系结构中四个主要部分的功能。
　　。人机界面：
　　ABs_WFMS系统的人机界面采用环球网浏览器(Web Browser)，用来显示等待本岗位处理的任务(Agent描述信息)、用户输入信息和系统反馈信息等。当用户以用户名和密码通过浏览器登录工作流系统后，系统数据库服务器根据用户名查询对应的岗位号，并以三元组(WKST，User，ST_id)的形式提供给任务队列管理器，由任务队列管理器更新用户界面。
　　。活动Agents：
　　活动Agents是系统的工作部件，企业中的一切生产经营活动都是通过活动Agents来完成的。每个Agent都对应着一个流程，在Agent服务器和任务队列管理器的帮助下自主地完成整个流程。
　　。Agent服务器：
　　作为系统的核心部件，Agent服务器保存有企业的商业规则、流程描述等信息，负责协调、控制整个系统的正常运转，同时为Agent提供信息查询、异常处理等服务。在Agent的整个生命周期中，需要许多不同的Agent服务器来提供信息支持，最主要的两个是系统服务器和跟踪服务器。
　　(1)系统服务器：存放基本的工作流信息和企业的结构信息。每一个新生成的Agent都要通过系统服务器来获得对应类型工作流流程的基本流程信息，包括流程图和初始状态等。
　　(2)跟踪服务器：保存并跟踪系统中所有活动的工作流Agent，当任何一个Agent服务器中的信息发生变化时，通过任务队列服务器通知相应的活动Agent到对应的Agent服务器去更新数据。
　　。任务队列管理器(兼作WWW服务器)：
　　管理一个任务队列，更新系统中活动Agent的处理结果信息，通知活动Agent到相应Agent服务器更新数据以及根据活动Agent的处理结果更新相应岗位人机界面的信息，同时兼作系统的WWW服务器。Agent的每个岗位处理完后都要访问任务队列管理器，用Agent的当前状态更新任务队列管理器保存的信息，然后由任务队列管理器来更新此Agent下一个岗位的用户界面。
3.2　ABs_WFMS中工作流的组织和运行
　　ABs_WFMS的体系结构使用户修改工作流程和增加新的工作流变得非常容易，图4展示了工作流的运行情况。

图4　ABs_WFMS动作方式
　　流程1：就绪的Agent将流程类型和开始流程的工作站编号送到系统服务器。
　　流程2：系统服务器返回工作流程图和初始状态。
　　流程3：Agent在跟踪服务器上进行登记。
　　流程4：在工作流Agent的一个岗位结束后，通知任务队列管理器。
　　流程5：任务队列管理器更新用户界面信息。
　　流程6：用户提交数据，返回流程4
　　直到流程正常完成或异常退出。
　　当用户修改系统服务器中的流程信息时：
　　流程A：系统服务器通知跟踪服务器修改所影响的用户和流程。
　　流程B：跟踪服务器通知任务队列管理器修改所影响的Agents。
　　流程C：当受影响的Agent访问任务队列服务器时，任务管理器通知Agent对应的系统服务器已经被改动。
　　流程D：Agent访问对应的系统服务器。
　　流程E：系统服务器用改动后的信息更新Agent。
4　应用与总结
　　在国家CIMS应用示范工程浙江好来西CIMS项目的MIS子系统中，ABs_WorkFlow作了有益的尝试，这里以新产品的开发为例来简要说明一下。
　　新产品开发的流程如图5。

图5　新产品开发流程说明
　　当新产品开发任务书的单据填好并提交后，系统产生一个类型为新产品开发的Agent，此Agent从系统服务器得到如上的新产品开发流程并在跟踪服务器上登记后，生成两个子Agent，在任务队列管理器的帮助下分别转到岗位2和岗位4执行各自的子任务，岗位2上的子Agent在完成采样、确样和材料档案的更新后返回父Agent，并向父Agent给出一个完成的信息，然后删除自己，父Agent在岗位2和岗位4的子Agent都向他提供了完成信息后，从跟踪服务器上注销，新产品开发流程就完成了。
　　本文就基于Agent工作流管理系统的设计进行了讨论，给出了它的基本体系结构和运作方式。使用了两种基本技术：Browse/Server技术和Agent技术。着重讨论了工作流管理系统下Agent是如何自主地完成工作流任务的。基于Agent的工作流管理系统的应用，将大大地缩短企业CIMS系统的开发时间，提高CIMS系统的灵活性和可靠性。
王东（浙江大学人工智能研究所 杭州 310027）　
任午令（浙江大学人工智能研究所 杭州 310027）　
何志均（杭州商学院计算机系 杭州 310035）
参考文献
1，李芳芸, 柴跃廷. CIMS环境下苫芾硇畔⑾低车姆治觥⑸杓朴胧凳? 北京：清华大学出版社, 1997年6月
2，Munindar P. Singh, Formal Aspects of Workflow Management, Department of Computer Science North California State University, June 18, 1997
3，Jablonski, S. A Software Architecture for workflow management system, Los Alamitos, CA, USA, Conf. Date: 26~28 Aug. 1998
4，Hermans, B. Intelligent software agents on the Internet, Munksgaard International Publishers, 3 March, 1997
收稿日期：1999年7月1日
