产品制造业的工作流管理系统的设计

时间:2022-04-29 10:45:04

产品制造业的工作流管理系统的设计

摘要:随着技术的发展和企业的规模的扩大,对于提高效率,强化管理的自动化系统的需求越来越多。将工作流技术引入产品制造领域,可以实现产品生产过程的高度自动化,本文将结合产品生产领域给出一种状态可存档的工作流管理系统的设计方案。

关键词:过程定义;工作流;工作流管理系统;工作流引擎;工作流版本号

中图分类号:TP302文献标识码:A文章编号:1009-3044(2007)03-10646-03

工作流技术源于80年代中期办公自动化领域的研究工作,工作流管理的许多概念源于企业管理理论和实践,随着企业规模不断扩大,管理的难度也随之上升,信息技术和现代企业管理理论的发展,都为有效地克服这些困难提供了理论和技术手段。工作流技术是一项快速发展的技术,并在各个行业得到广泛应用。其主要特征是业务流程的自动化,其主要特点是流程的处理都是在计算机应用程序和工具协助下进行的,由计算机系统来帮助人们完成日常事务的处理。因此,作为一种对常规性事务进行管理、集成的技术,工作流管理系统的出现是必然的。

1 工作流技术简介

工作流:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行[1]。

工作流管理系统:工作流管理系统是支持企业经营过程高效执行并监控其执行过程的计算机软件系统。一个完整的工作流管理系统一般包含工作流引擎、工作流建模工具、流程操作、工作流客户端程序、流程监控、应用程序几个部分。

过程定义:一个经营过程的规格化描述。利用建模技术与建模工具完成实际的经营过程到计算机可以处理的形式化的定义,也可以叫过程模型,工作流模型。

工作流引擎:工作流引擎是工作流管理系统的核心部分,主要提供了对于工作流模型的解析以及流程流转的支持。

自动化:自动化指的是企业的一个生产过程中的各个事件被有效的管理,但并不意味所有工作都有计算机和机器完成,期间也需要有人的参与。

产品制造业的生产流程绝大部分是固定不变,虽然当前制造业中也已经实现了自动化生产,但这仅仅局限于每个部门,各个部门间生产自己的零部件,多个部门之间的消息传递基本上还是通过人员、纸张来传递,随着生产装备的不断改进和自动化水平的提高,以及企业消息化应用的日益提高,原始的基于手工的制作方式和基于纸张的消息传送方式已严重阻碍了生产效率的提高。将工作流技术引入产品制造业,充分发挥工作流管理系统高自动化的特点,尽量减少由于人员参与系统运行产生的误差。

产品制造业的工作流管理系统就是将工作流技术引入到产品制造业后的管理系统,利用工作流管理系统来管理产品生产的全过程,其主要特点就是在生产过程中,实现人与计算机交互结合事件的高度自动化[2]。

2 运行时可存档的工作流系统

传统生产领域的工作流管理系统,一旦工作流进入流转,则该流程将一直按该工作流的顺序流转直到结束。但是在工作流管理系统运行的过程中,将不可避免的出现一些异常情况。例如机器在运行时,出现的一些不可预料问题(如停电、机器故障或要求要求参与操作的人员不在现场)。当出现异常后系统将怎么做?传统的工作流管理系统一般要求系统停止在故障节点等待,直到问题解决;或者完全退出工作流运行状态,等问题解决后需重新回到起点再将流程跑一遍,已经完成的工作量将作废,这将极大的影响工作效率。本文提出的工作流管理系统设计方案将解决这一问题,即工作流管理系统运行过程中出现错误或异常后,可不必一直在故障节点等待故障排除或是重新回到工作流模型的起点,等相应问题解决后,只需回到出现问题的那个节点继续完成后续流程。

3 生产制造领域工作流管理系统的设计

图1是一个产品生产过程的流程图, 产品的生产过程是由一系列活动按照一定的执行顺序组成的,活动构成了工作进程的基本单位。在生产计划与调度的过程中,每个活动都对应着生产制造加工任务中的一个基本子任务,工作流管理系统通过描述过程之间的信息、资源和组织之间的关系,引导过程中的活动自动进行,对活动所需的资源进行调度分配,从而将活动组织成一个顺畅进行的工作流程,以实现工作的调度与监控。

3.1工作流管理系统实施的体系结构

图2是本文给出的工作流管理系统的体系结构图。

工作流执行服务器:负责解释执行工作流模型的软件,由一个或多个工作流引擎组成。

图2 工作流管理系统的体系结构图

客户端应用程序:工作流管理系统分配的需要有人参与的任务。

直接激活应用程序:工作流管理系统分配的不需要人参与的任务。

任务表管理器:负责管理工作流任务表,并完成与最终用户的操作进行交互的软件模块。任务表是指工作流管理系统分配给特定用户处理的,由任务项组成的队列。

加载器:通过加载器工作流管理系统可以从模型文件或模型数据库中提取过程定义;或者将建模工具定义的过程定义存储到模型数据库中或者以文件形式存储;或者在模型文件和模型数据库中转存过程定义。

工作流控制数据:工作流引擎通过内部工作流控制数据来辨别每个过程实例或活动实例的状态。

工作流相关数据:工作流管理系统通过工作流相关数据来确定过程实例转换的条件,并选择下一个将要执行的活动。

工作流应用数据:由应用程序操作的数据,是企业完成具体业务功能需要的数据。

图2与传统的工作流管理系统的体系结构不同的是加入了状态数据库,系统运行的不同时刻,将产生工作流控制数据与工作流相关数据。传统的工作流管理系统仅把这些数据当成中间产生的临时数据,当传给下个节点后这些数据就消失。而本文设计的方案中,把这些数据永久保存在数据库中,以便以后的任何时刻读出。

结合工作流管理系统在不同阶段提供的功能,产品生产工作流管理系统的开发可以分为下面两个阶段考虑:过程建模阶段,工作流管理系统运行阶段。

3.2过程建模阶段

用工作流建模工具对业务流程建模得到流程的过程定义。并对过程定义中的节点属性进行设置,使得每个节点与实际的资源(包括应用程序、子过程等)一一对应。在过程模型中,我们需要对四类对象进行定义[3]

(1)工作流实例对象:该对象的实例即为一个实际公文的处理流程,标记工作流的总体特性。

属性:

WF_Name:工作流名称

WF_ID:工作流的唯一编号

WF_Role:工作流管理员角色,获得该权限的用户可以管理该工作流,例如:初始化该工作流,启动、挂起该工作流。

WF_Roleuser:工作流一般用户角色,获得该权限的用户可以查看该工作流的初始参数,工作流运行时,可以查看工作流的运行状态。

WF_Version:工作流版本号

在实际的应用中,业务流程往往不是一成不变的,或者是以前的系统经过升级,优化后投入使用。但有时也需要使用老系统,如:操作人员的熟悉新的系统可能还需要一些时间,但企业的生产过程又不可以中断。所以对与同一个工作流系统,我们可以利用版本号来使得不同的工作流同时投入使用。

(2)工作流节点对象:该对象对应于图1中的一个节点,即工作流的一个处理步骤。

属性:

Node_Name:该节点的名称

Node_ID: 该节点的编号

Node_Type:该节点的类型,节点类型可分为起始节点,终止节点,中间的普通节点

Node_type:当该节点为中间普通节点时,还需要确定该节点对应的是一个子工作流?一个应用程序?或者是一个路由节点?

在图2中,节点生产加工就可以根据产品加工的实际情况再细分为几个不同的活动步骤。

WF_ID: 该节点所属于的工作流号

WF_Version:所属工作流的版本号

Node_P:指向该节点所对应的子过程或应用程序的指针

Node_Role:设置能够管理该节点的用户角色

(3)工作流路径对象:该对象对应图1 中的一个有向箭头,即工作流的流转方向。

属性:

Path_Name:该路径的名称

Path_ ID:该路径的编号

Path_Sta:该路径的起始接点编号

Path_End:该路径的终止路径编号

WF_ID:该路径所属的工作流编号

WF_Version:所属工作流的版本号

Path_Role:设置能够管理该路径的用户角色

(4)工作流时刻状态对象:该对象对应一个工作流实例特定时刻的状态。

属性:

Time: 变量对应状态所处时刻

Var_Name:变量的名称,存放工作流管理系统运行期间的控制数据与相关数据

Var_Value: 该变量对应时刻的值

Var_Node_ID: 变量对应的工作流中的节点的编号

Var_WF_ID: 变量对应的工作流的编号

4 工作流管理系统运行阶段

在工作流管理系统的运行阶段,工作流引擎解释经营过程的过程定义,根据过程执行需要的初始条件和执行参数生成过程实例,例如:指定当前运行工作流的版本号、初始化流程中涉及人员的角色,及他们的权限。当运行到过程定义中的某一节点时,工作流引擎将自动调用与这个节点相对应的应用程序(计算机软件开发人员编写的来实现实际的业务逻辑的应用程序),当应用程序执行完毕后,引擎会根据工作流相关数据决定流程的下一个节点。这个阶段,工作流管理人员可以监控管理工作流管理系统的运行状态。例如:修改或重新定义工作流模型、修改活动节点的定义。在运行阶段,工作流管理人员还可以利用改变工作流的版本号,选择运行的实例是修改前的还是修改后的工作流定义。

在工作流管理系统运行的过程中,每当进入一个新的节点前,系统自动触发事件,将工作流管理系统该时刻的状态(工作流运行时的时刻状态对象)存入状态数据库中;也可以在运行过程中,随时手工的触发事件保存系统该时刻的状态。当发生意外情况时,工作流管理人员可以进行紧急处理(手工的触发事件保存系统该时刻的状态),等到问题解决后,先从工作流模型数据库里读出工作流模型,接着从状态数据库里读出该工作流模型特定时刻的状态数据,使工作流系统恢复到特定时刻所保持的状态。

在图2中,也许系统运行到某个节点突然发现后面的流程中出现了机器故障或者是检验人员不在现场,传统的工作流管理系统中,要么使该次流程运转作废,即所完成的工作不能保存,完全退出;或者使流程在故障节点一直等待下去,等待所要求的资源,这极大的影响了工作效率。而可存档的工作流管理系统则可以将当前工作流管理系统的状态全部保存起来,先退出当前的工作流实例,切换到另外一个工作流实例进行运行,等待故障恢复或者检验人员到来再从状态数据库中读出相关的控制数据与相关数据,恢复工作流。

保存工作流系统运行状态的好处还在于可以更好的升级维护系统,当系统的最终结果与预想的正确结果不一致时,我们可以跟踪每个节点的输出,以便在维护系统时候,分阶段的找出错误所在。

5 结束语

将工作流技术应用到产品制造领域,使得生产过程中的过程逻辑与具体的业务实现逻辑分离。这样当业务流程发生改变时,我们可以只用改变过程模型而不必改变应用程序。而当引进先进的生产设备后,使得应用程序发生改变时,原有的过程模型可以保持不变。企业开发这样的产品生产系统时,企业的流程分析人员可以专注企业的业务流程,计算机软件人员可以专注具体的应用程序的开发,这必将会减少系统的开发周期,降低系统的开发难度。当企业使用这样的产品生产管理系统时,由于一些固定的、反复的工作交给计算机来完成,必定会大大减少由于人员疏忽造成的损失,提高产品的生产效率,降低产品的生产成本。而将工作流运行状态保存将可以更大的为企业节约成本,提高效率。

参考文献:

[1]范玉顺.工作流管理技术基础[M].北京清华大学出版社,2001:28-54.

[2]蒋国银,董利红.工作流过程建模理论综述[J].计算机系统应用,2006:90-93.

[3]赵洁,孟丽荣.办公自动化系统中工作流系统的设计[J].计算机工程与设计,2006:1118-1121.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于ASP.NET的学生管理系统的分析与设计 下一篇:基于数据仓库的数据转换服务(DTS)技术的应用