计算机应用
COMPUTER APPLICATIONS
1999年 第19卷 第10期 Vol.19 No.10 1999



基于工作流管理的动态联盟企业信息系统模型
王凯　白庆华
　　摘　要　本文采用面向对象工作流管理技术，从对象定义、流程实现等方面阐述了本系统模型动态协作的设计思想，并从系统实施角度分析了CORBA对本系统模型分布性的支持，最后给出了包括过程定义、过程执行、管理监控三部分的系统模型构架。
　　关键词　动态联盟，面向对象，信息系统，工作流管理，CORBA
MODEL FOR INFORMATION SYSTEM OF VIRTUAL AGILE ENTERPRISE BASED ON WORKFLOW MANAGEMENT
Wang kai　Bai qinghua
College of Economics & Management，Tongji University， Shanghai 200092
　　Abstract　This paper puts forward ideas of designing the Information System which support dynamic and cooperation by discussing the object′s classification and the workflow′s execution in object-oriented Workflow Management System and analyses the support of CORBA to the system′s distribution in implementation of system. At last the paper gives a system model , which is composed by process definition , process execute and management monitor.
　　Keywords　Virtual agile enterprise, Object-oriented, Information system, Workflow management , CORBA
1　动态联盟企业及其特点
　　随着世界统一市场的形成，市场竞争日益激烈。如何快速响应市场，抓住经营机遇，在竞争中谋求发展，已成为企业共同追求的目标。制造业将从单凭自身的资源设备为主的竞争发展到多企业合作的内外部优势资源集成的生产体系间的竞争。动态联盟企业（Agile Virtual Enterprise, AVE）即是这样一个围绕新产品、新经营机遇为进行产品的经营、开发、生产在全球范围内动态建立的虚拟组织机构，它将成为制造业未来企业模式之一。动态联盟企业除具有一般企业的基本特征，还有一些专门的特点：动态联盟企业通常由盟主企业发动组建，根据机遇产品的资源需求设定企业模型、选择联盟伙伴、确定协作关系，并在企业运作过程中根据需要对协作关系作出调整，其组织过程需要灵活可变的动态性；动态联盟企业是以生产经营过程为主线的企业组织，各成员在这一主线的贯穿下，按照一定的协作规则完成各自环节上的任务，其运作过程强调明确可控的协作性；动态联盟企业的各成员在组织上相对独立，地理上较为分散，但他们之间的协作需要快速畅通的信息传递，其信息系统要满足及时有效的分布性。
　　动态联盟企业的实现离不开现代化信息技术的支持，我们无法想象一个仅靠人工方式协调的动态联盟企业如何有效运作，然而动态联盟企业所需的动态性、协作性、分布性确实给信息系统的构造提出了挑战。本模型针对这些特点，采用面向对象工作流管理技术来构造这种新型企业的信息支撑环境。
2　工作流管理
　　根据工作流管理联盟（WFMC）的定义：工作流所要解决的主要问题是使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行，从而实现某个预期的业务目标，或者是促使此目标的实现。而工作流管理系统的作用就是将现实世界中的业务过程转化成某种计算机化的形式表示，并在此形式表示的驱动下完成工作流的执行和管理。
　　动态联盟企业成员之间的协作（如生产计划、产品设计、文件传阅等）即是典型的工作流。对动态联盟企业来说，运作中的不确定因素要求信息系统能随时修改工作流程并及时反映到正在执行的过程中，而传统的信息系统即便能随功能需求变化生成新的工作流程，也很难做到在流程执行中动态调整。本系统通过从工作流要素中合理提取对象并设计一套对象间的动态联系机制解决这一问题，使得预先定义的过程的每一步骤能够在执行时按协作规则动态生成，从而使对过程定义的修改，能及时反映到正在执行的工作流程中。
2.1　工作流管理中的对象提取与定义
　　如果我们将工作流中的参与者定义为成员，那么工作流中的协作活动就可划分为成员的任务和成员间的联系。其中，成员的任务是指工作流中各成员对被传递信息的处理（或在规定时间内对预定事务的执行），成员间的联系是指信息（或指令）从发出成员到接收成员的传递，当信息在多个成员间传递时就构成了一组联系，这时工作流就可以表示为各成员按一定协作规则对信息的处理和传递。由此在构造信息系统时我们主要提取两大类对象：成员类和联系类。成员类对象用来完成各工作环节的具体任务，联系类对象用来推动各工作环节的顺序执行。
　　成员类所封装的数据和方法除了联盟成员的基本信息和基本职能执行过程，还包括接受联系类对象调用的通用接口函数及它们的参数说明，这些接口函数根据参数不同决定调用哪些任务处理方法。成员类对象在工作流定义时生成，其具体的任务处理方法集成在可修改方法库中。
　　联系类中封装了一些工作流控制参数，如：工作流代号，发出成员名，接收成员名，处理什么信息，用什么方法处理，完成标准是什么，最后期限等。联系类中的主控方法是工作流执行的“全权代表”，其过程包括调用发出成员的信息发送方法、调用接收成员的信息处理方法以及创建下一个联系对象等。由于不同的工作流可能需要不同类型或个数的控制参数来表示，因此允许定义不同的联系类，但所有联系类都应是基本联系类的子类，以保证联系类对象基本功能的实现。联系类对象在工作流执行时生成，其具体工作流控制信息存放在可修改的联系对象参数表中。
2.2　工作流管理的辅助构件定义
　　要实现工作流的描述和执行除了上述两类对象外还需要一些辅助构件，这些构件中包含了工作流的具体信息和执行方法。如果说对象是人，那么这些构件就是他们的任务书、计划表、工具箱等。现就几个基本流程的主要辅助构件作以说明。
　　工作流列表由工作流代号、联系对象参数表名、联系类名组成，是工作流启动的入口。在用户定义一个工作流时，系统先为其生成一个工作流代号作为唯一标志，然后由用户根据工作流所需控制参数选择或定义联系类，并由系统按联系类所用参数为这个工作流创建一个联系对象参数表。
　　联系对象参数表（简称参数表）是工作流的活动中枢，对其中任何参数的改动都将改变该工作流的执行情况。它的表结构由该工作流的联系类参数决定，表中的参数由系统根据用户在过程定义工具的引导下输入的数据决定。对每一特定工作流有一联系对象参数表与之对应，该工作流所涉及的联系对象按参数表提供的顺序自动创建和终止，并在对象实例生存期内将所对应的控制参数传给相关对象。
　　任务处理方法库（简称方法库）是成员对象根据联系对象的“指示”调用的不同方法集成在一起形成的，这些方法按对信息的处理方式及传递的参数不同分成多种任务类型。每个任务处理方法都有唯一的任务代号，这个任务代号和其对应的工作流代号、执行成员名、任务类型存在任务列表中。
　　工作流引擎可以是系统根据触发条件自动运行的程序，也可以是人工调用的独立程序。当需要启动一个工作流实例时，以工作流代号作为参数调用工作流引擎使其完成如下操作：在工作流列表中找到给出的工作流代号所在的记录；取其联系类名及联系对象参数表名；在该联系对象参数表中查找起始成员的记录；将该记录的参数传递给该联系类初始化函数，创建第一个联系对象，启动该工作流。
2.3　工作流动态协作机制的实现
　　下面我们以一个工作流为例来说明动态协作机制的实现（见图1）。工作流代号为1001的工作流由A、B、C三个成员协作完成，它们由联系类名为RelationObject的类对象协调控制，这个类所需的参数存放在联系对象参数表Table1001中，其控制参数除了发出成员、接收成员外还可根据需要设置任务开始时间、最后期限、任务完成指标、所要调用的任务处理方法名等（这里用参数1、2代表），协作顺序为A―B―D。当情况变化需要调整流程时可通过修改参数表、任务列表、方法库等来完成。如：新增成员C代替成员D来完成最后一道工序，则修改参数2中的接收成员；需要D成员提前完成生产任务，则修改D的任务开始时间、最后期限等；要求成员D改变生产工艺，则修改D的任务处理方法。只要这些修改在（B，D）联系对象生成前进行，都可以实现动态调整。

图1　动态协作机制的实现
2.4　工作流复杂流程的实现
　　为联系类增加一些控制参数就可以实现复杂的工作流程。要实现同步协作（如：A、B均向C传递信息后，C才向D传递）增设表示某联系对象（C，D）发出成员的前序联系对象数目参数，当所有这些前序联系对象（A，C）（B，C）都结束活动时，才允许创建该联系对象；要实现循环流程的描述和任务的转换（如：A将报表交给B，B将其传给C审阅，之后传回给B交由D保存），就为各成员对象增加一个表示第几次被访问到的参数，将循环访问展开成为线性访问（A―B1―C―B2―D），并为每次访问指定不同的任务处理方法；要启动不同的子工作流（如：A将信息传给B，B根据不同条件决定将其传给E还是F进行处理，最终结果返回给B，由其继续传给D），则将成员对象（B）的任务处理方法作为工作流引擎启动子工作流，而且根据不同情况传给任务处理方法不同参数（B，E）或（B，F）。

3　系统分布性的技术支持
　　动态联盟企业的各成员企业地理位置上较为分散，各自又有独立的信息系统和不同的硬件平台，因此随动态联盟的组建而构造的信息系统既要满足这种分布性又要提供与外部系统的通用接口。Internet的发展为企业提供了一个理想的远程协同工作环境，使联盟成员的选择不受地域约束，更无需在远程网络构建上追加投资。面向对象程序设计语言JAVA通过解释字节码运行程序具有跨平台特性，在Web浏览器中内嵌一个JAVA虚拟机就可以解释执行从Internet上远程下载的JAVA字节码，因此用JAVA编写本系统能够很好的支持动态联盟企业的信息传递和远程控制。公共对象请求代理体系（CORBA）是对象管理组织（OMG）制定的分布式对象计算的一套规范。CORBA 的实现提供了分布异构的互操作计算环境，也提供了开发可重用软件的基础。由于JAVA虚拟机并不支持下载的Applet和其它分布式对象间的通讯， JAVA 和CORBA 的结合是解决这一问题的理想方案，它能支持Web浏览器中运行的Java Applet与其它CORBA 对象的通讯，而这些对象可以用其它语言编写，此通讯访问通过CORBA的中间件Oblet （用JAVA语言编写）来提供。利用这些技术，动态联盟企业信息系统通过Internet既可实现整个系统在各分布结点上的互操作，又可实现各分布结点上的从属系统（内部系统）与联盟成员原有系统（外部系统）间的互操作。
4　动态联盟企业信息系统模型构架
　　动态联盟企业是由盟主企业发动组建的，它根据机遇产品的资源需求负责设定企业模型、选择联盟成员、确定协作关系、动态调整流程等工作，而一般的联盟成员之间没有控制关系，都是以盟主为协调中心接收任务形成协作的，因此本系统模型分为主系统和从属系统两部分，分别由盟主和一般联盟成员使用。主系统由整个系统的控制中心和盟主成员相关部分组成，从属系统则由各联盟成员相关部分和与外部系统的接口组成。盟主成员利用主系统将生产计划、订单跟踪、文件传阅等定义成各种工作流程，这些工作流启动后主系统将自动控制协调各从属系统的运作，同时盟主成员可随时对各流程进行管理监控修改。主系统对应实际流程中的这三个阶段相应分为过程定义、过程执行、管理监控三个组成部分。一般的联盟成员则负责将生产信息输入约定格式的数据库中，由主系统通过Internet调用本从属系统中成员对象的方法实现信息传递、生产调度、紧急通知等任务。动态联盟企业信息系统模型构架(见图2)及说明如下：

图2
4.1　过程定义说明
　　成员对象描述就是选择适当的成员类生成成员对象，将真实联盟成员的具体信息保存在其中；成员选择则是根据伙伴选择策略平衡动态联盟的各项核心资源，决定联盟成员最优组合并存入联盟成员表（包含成员间相互联系的基本信息，如各从属系统所在主机IP地址等）；联系设置包括由用户为一特定工作流程设置一组联系，将联盟成员用有向线段连接起来，选择联系类型，设置各联系参数，并由系统生成该工作流的联系对象参数表；主从系统分离指的是将各成员对象和与之相关的方法库和任务列表从全局方法库和全局任务列表中复制出来集成在一起，配以用户接口、外部接口以及联盟成员表等分别构成若干从属系统交由各联盟成员在本地使用，盟主成员对象和系统主控部分集成为主系统。
4.2　过程执行说明
　　工作流引擎用来依据预定条件自动判断或人工启动某一工作流，创建该工作流实例；工作流日志记录负责记录每个工作流的执行过程及返回的状态参数，存入工作流日志；自动例外处理则提供一些标准程序对工作流程中的例外自动进行处理。
4.3　管理监控说明
　　工作流监测是指允许有权限的用户查看相关工作流运行情况并提供一些辅助分析工具进行工作流执行情况的分析；工作流修改包括用户对联盟成员的调整（由系统修改联盟成员表、成员对象、成员权限表），工作流过程和控制的调整（由系统修改联系对象参数表），工作流任务项调整（由系统查询任务列表，修改全局任务处理方法库）；由于修改工作流的任何环节或系统运行后在过程定义工具中定义新的工作流，其改变都只体现在主系统中，这时由从属系统版本控制通知与变更工作流有关的从属系统下载复制新版本系统。

5　结论
　　动态联盟企业作为21世纪最有竞争力的企业运行模式，既是具有先进生产管理技术的企业提高竞争力的法宝，也是一些技术层面单一、生产能力有限的企业参与现代化市场竞争的机遇，它帮助企业充分利用内外优势资源生产高新技术产品并达到一定的规模效应，从而在全球化市场竞争中取得一席之地。动态联盟企业信息系统为这样一种新型企业构造了信息支撑环境，实现了复杂工作流程的动态重构与重用。随着对仿真优化、决策支持以及智能化的工作流管理系统的深入研究，本系统的功能将会得到进一步加强。
作者简介：王凯　硕士研究生。主要研究方向：经济信息管理。
白庆华　教授，博士生导师。主要研究方向：管理工程、经济信息管理。
作者单位：同济大学经济与管理学院　上海（200092）
参考文献
［1］　徐晓飞，等. 动态联盟企业组织方法体系. 计算机集成制造系统，1999，2
［2］　石　伟，等. 分布对象环境下工作流执行系统设计. 计算机集成制造系统,1998，12
［3］　史美林，等. wfms：工作流管理系统. 计算机学报，1999，3
［4］　叶　丹，等. 动态联盟企业的模型化及其工具系统. 计算机集成制造系统，1999，2
［5］　WfMC.The workflow reference model,1994
［6］　吴　刚，等. ActiveX与CORBA/IIOP的比较. 计算机工程与应用，1999；35(11)
收稿日期:1999-06-06(修改稿)
