Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >基于Web的工作流管理系统的设计与实现

基于Web的工作流管理系统的设计与实现

作者头像
用户1075292
发布于 2018-01-23 08:03:23
发布于 2018-01-23 08:03:23
1.8K0
举报
文章被收录于专栏:听雨堂听雨堂

摘要:Internet/Intranet应用的普及和Web技术的发展,为Web工作流管理系统的实现提供了一个理想的平台,而基于Web的工作流管理服务为异地办公及跨企业的合作提供了良好的基础,采用Web技术已成为新一代工作流管理系统的主要特征。本文研究开发的工作流管理系统原型将Web技术

XML相结合,给出了基于xml的过程定义语言与工作流执行机的设计与实现方法。

关键词:工作流、工作流管理系统、XML,集成、工作流执行机

    Abstract:The rapid growth of Internet/Intranet usage and development of Web technologies,provides a ideal platform to construct a Web_based workflow management.And the Web_based workflow management service provides condition for distributed working and inter-enterprise corporatin ,and it has become the characteristic of the next-generation workflow management.The WFMS prototype which this paper researched on combines the Web technologies and XML ,and provides a method of designing and implementing xml_based process definition language and workflow engine. keywords:Workflow ,workflow management systems ,XML,Integration、Workflow Engine

    1、引言

工作流的概念起源于生产制造业与办公自动化领域。工作流是一类能够完全或部分自动执行的经营过程,根据一系列过程规则,文档、信息或任务在不同的执行者之间传递、执行。工作流的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本,提高企业生产经营管理水平和企业竞争力,实现现代企业经营过程重组(BRP)、经营过程自动化。 根据工作流系统所采用的任务项传递机制的不同,工作流管理系统主要有三种方式:(1)、基于文件的工作流管理系统——以共享文件的方式来完成任务。这种类型的产品是产生最早、发展最成熟、最具多样性的,通常包含有Client/Server模式的图像、文档与数据库管理系统。(2)、基于消息的工作流管理系统——通过用户的电子邮件系统来传递文档信息。这种产品都实现了一种或多种电子邮件系统的集成。(3)基于Web的工作流管理系统——随着计算机网络技术的发展和Internet应用的不断普及,Web技术因其界面的一致、简单及与平台的无关性,在其出现之后就得了迅速发展。同时Internet的发展及企业Intranet的建构为人们提供一个理想的协同工作环境,同时也使基于Web的工作流管理系统成为可能。     Web应用程序开放、跨平台的特性使基于Web的工作管理系统已经成为一种必然的发展趋势。但目前因为不同的研究者、厂商使用不同的工作流的描述方法,这样就造成了不同的工作流产品之间不能进行互操作,因而在很大程度上阻碍了工作流技术的推广与应用。 为了使工作流管理系统具有的良好的互操作性,本文研究开发了一个基于Web的工作流管理系统,其中工作流过程定义采用了基于XML的过程定义语言。XML是用来描述文档的组织结构,XML具有简单、自定义的优点,可以实现不同产商之间的工作流产品之间的互操作性,实现异构信息的集成。 本文首先介绍了当前工作流管理系统的一些相关概念,分析了在本系统中的一些关键技术,包括系统的体系结构,工作流模型中的主要实体的XML描述及工作流执行机的设计与实现等。

2、工作流管理系统的介绍

基于Web的工作流管理技术是实现企业协同工作环境的一个良好方法,它能方便的与企业内原有的应用、信息集成。 为了实现对业务过程的工作流管理,需要相应的软件系统的支撑。此种软件系统为工作流管理系统(Workflow Management System,WfMS)。根据WfMC 的定义,工作流管理系统是“一种在工作流形式化表示的驱动下,通过软件的执行而完成工作流定义、管理及执行的系统”,其主要目标是对业务过程中各活动发生的发后次序及同活动相关的相应人力或信息资源的调用,进行管理而实现业务过程的自动化。工作流的过程定义是指对业务过程的形式化表示,它定义了过程运行中的活动和所涉及到的各种信息。这些信息包括过程的开始和完成条件、构成过程的活动以及进行活动间导航的规则、用户所需要完成的任务、可能被调用的应用、工作流机的引用关系以及与工作流数据的定义。其中活动指的是工作流中的一个逻辑步骤;工作流实例指的是工作流的一次执行过程;工作流机是一个为工作流实例的执行提供运行服务环境的软件或“引擎”,它是工作流执行服务的核心,负责对解释过程定义、控制过程实例的执行、控制工作流中各个活动的执行顺序、并完成与其它工作流机的交互与通讯。     1994年11月,工作流管理联盟发布了工作流管理系统的参考模型(见图1),该模型定义了一个基本的工作流管理系统所需要的6个基本模块,并制定了各模块之间的接口标准。其基本的模块功能如下:     1) 过程定义工具:为用户提供一种对实际业务过程进行分析、建模的手段,并生成业务过程的可被计算机处理的形式化描述。     2) 工作流执行服务:它借助于一个或多个工作流机,激活并解释过程定义的全部或部分,并同外部的应用程序进行交互,完成工作流过程实例的创建、执行与管理,为工作流程的运行提供一个运行时环境。     3) 其他工作流执行服务:在大型的WfMS中,工作流可能需要多个工作流机共同完成,甚至需要其他异质的工作流执行服务来辅助来完成,这涉及到WfMS系统之间的互联。     4) 客户应用程序:它给用户提供一种手段,以处理过程实例运行过程中需要人工干预的任务。每一个这样的任务就被称为一个工作项。WfMS为每一个用户维护一个工作项列表,它表示当前需要该用户处理的所有任务。     5) 被调应用程序:指工作流执行服务在过程实例的运行过程中,调用的、用以对应用数据进行处理的程序。在过程定义中包含这种应用程序的详细信息,如类型、地址等。     6) 管理及监控工具:其功能是对WfMS中过程实例的状态进行监控与管理,如用户管理、角色管理、审计管理、资源控制等。

    3、基于Web的工作流管理系统的总体结构 体系结构的设计主要遵循如下3条原则: (1)、基于Internet/Intranet分布式计算环境,面向跨部门、跨企业的分布式工作流管理。 (2)、集成已有的各种信息资源,如电子邮件、文档管理、图形浏览、资源管理等,充分发挥这些资源的综合潜力。 (3)、与工作流管理联盟参考模型保持一致,其中过程定义语言采用XML-WPDL(基于XML的过程定义语言),以利于实现不同企业的WfMS系统的互操作。 按照上述原则所设计的Web_WfMS的体系结构如图2所示:

整个系统的工作方式如下:     (1)、工作流应用建模人员通过Web浏览器将过程及表单定义工具从Web服务器上下载下来,完成应用系统的建模,即实际工作流程的定义。建模结果以XML-WPDL文档保存在服务器中,并可反复修改。     (2)、客户端用户通过浏览器登录到Web服务器,此时可以启动新的流程、处理其工作项等。每个工作项都与一个表单对应。在表单中以各种不同的方式表示需要处理的数据。用户可以通过客户端所提供的各种工具(如CAD系统、CAPP系统、字处理系统)对这些数据进行处理。在此过程中可以与数据库系统进行交互,如查询数据库中信息,或将某些应用数据保存到数据库中等。处理完成之后可将其提交,然后工作流执行机将根据表单中数据生成下一个工作项,并通知相应的用户进行处理,如此直至整个流程的完成。     (3)、管理人员使用工作流管理监控工具对工作流的运行实例、活动实例的状态情况进行监控和管理,如挂起、重启动、终止某个过程实例。

   4、基于Web的工作流管理系统的设计原理与实现机制

基于Web_WfMS的总体设计,将从工作流模型、工作流执行机、安全权限控制等3个方面讨论本系统的实现机制。     4.1 工作流模型 工作流模型是整个工作流系统设计的基础,也是过程定义人员进行系统二次开发的基础,模型描述能力的强弱决定了系统所支持应用范围以及系统的灵活度。在工作流模型方面,工作流管理联盟定义的过程元模型定义了6个基本实体:过程定义、活动、转换条件、工作流相关数据、角色、需要激活的应用程序。 各种不同的建模工具仅是对工作流模型的一种形式化的描述,为了实现不同的WfMS的过程定义能相互交互,在本系统中采用了其于XML的过程定义语言对过程建模进行描述(如图3)。

下面将分别介绍XML_WPDL的过程定义、活动和转换条件三种实体的描述。 ① 过程定义 ② 活动定义 ③ 转移条件

    4.2 工作流机的实现与异常处理机制

4.2.1 工作流机的实现 工作流执行服务是工作流管理系统的核心。工作流执行服务由一个或多个工作流机组成。工作流机实际上是企业经营过程的任务调度器,在某种程序上还是企业资源的分配器。在采用工作流管理系统支持经营过程运行的企业中,工作流机可以看成是企业的业务操作系统(BOS)。工作流机的主要功能是:解释过程定义、负责调试流程的运行、即创建和管理过程实例运行、调度活动的运行并创建要处理的工作项、维护工作流控制数据和相关数据、维护用户的工作列表。工作流执行机的结构如图4所示:

图4  工作流执行服务的结构图

其具体的执行过程:工作流机接受从外部接口发送过来有关过程控制的请求(如过程初始化、获取活动以及结束活动等),然后根据不同的请求类型调用相应的处理模块完成与本次请求相关的操作并将结果返回。事实上可以将工作流机看成一个多线程的并发服务器,它可以对多个外部请求提供并发服务。对外部请求的处理过程中肯定会涉及到对工作流相关数据的读写和更改操作,同时工作流机还维护着工作流的控制数据,通过工作流控制数据来辨别每个过程或活动实例的状态,并推动着工作流过程的执行。 过程、活动、工作项构成了工作流机的主要逻辑。在我们的系统中采用了对象的封装和继承的方法,把它包装为普通的C#类。三个类的定义如下:     (1)、public class WEProInstanceManager {}       //工作流执行机的过程实例的管理类     (2)、public class WEActInstanceManager {}       //工作流执行机的活动实例的管理类     (3)、public class WEWorkItemManager {}         //工作流工作列表管理类

4.2.2 工作流机的异常处理 工作流的错误包含两种错误,一是流程错误,如活动的执行者不存在,活动的应用程序定义错误等;另一类是系统的错误,如:网络不通,数据库系统异常。对于工作流执行机来说,前类异常是属于无法处理的错误,只能进行错误的通知;后者是执行机可以处理的错误,如数据库异常或连接临时中断等等,执行机可以进行容错处理,例如:在数据库恢复后自动重新建立连接。执行机对可能出现的错误进行编码,并附有对应的描述信息。 在我们的系统中采用了C#的异常处理思想(在C#的编程思想中,系统的错误是通过捕获异常来实现的),抛出的异常通过异常类WEException来描述。WEException类继承了C#的异常处理类Exception。并覆盖了Exception类的属性Message(){get{}},其中WEException类中保存了可识别的异常对照表。在C#的异常处理中,在出错的地方将异常抛出,不进行处理。异常被抛到更高的层次,直到某个层次能够进行这种异常的处理。

    4.3、工作流管理系统的安全权限控制 工作流管理系统对安全性要求较高,为了达到要求,必须做到充分的安全控制。在我们的系统中,共设置了5层安全控制级别。     1)、用户鉴定:用户登陆系统,需要用户输入用户名和密码,以便确认和登记。     2)、服务器访问控制:保证只有授权用户,才可登陆指定的服务器。     3)、数据库访问控制:对数据库的访问进行控制     4)、文档访问控制:对数据库中的文档进行权限控制。     5)、文档中的域访问控制:对文档中的部分内容进行控制。 通过以上五层安全控制再加上一些安全机制如:系统级权限控制、电子签名和加密等,使得整个安全机制达到了系统对安全的需要。

5、结束语: 以Web作为工作流管理系统的底层通讯支持使系统具有开放、一致和方便使用的特点,使企业中处于孤岛的信息能相互集成。本系统采用的基于XML的过程定义语言的工作流管理系统,不仅适应分布办公,更以系统开放的环境为实现跨部门、跨企业的供应链的不同工作流互操作打下了基础,使客户、供应商、或合作者都可以方便的参与企业的工作流,提高工作效率。 参考文献     [1]WfMC,"The Workflow Reference Model".(WfMC-TC00-1003),Technical Report,Workflow Management Coalition,Hamnshire.1995.     [2]史美林、杨光信、向勇等。WFMS:工作流管理系统[J]。计算机学报,1999(3):326~328。     [3]范玉顺。工作流管理技术基础—实现企业经营过程重组与经营过程自动化的核心技术[M].北京:清华大学出版社,2001。     [4]Mohan C.Recent Trendsin Workflow Management Products,Standards, and  Research .URL:http://www.almaden.ibm.com/cs/exotica/wfnat097.ps     [5]、Workflow Management Coalition.Interface 1:process definition interchange and process model[EB/OL].WFMC-TC-1016-P, http://www.wfmc.org,1999-10

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2005-04-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Oozie工作流管理系统设计与实践:面试经验与必备知识点解析
本文将深入探讨Oozie的工作流设计、实践技巧,以及面试必备知识点与常见问题解析,助你在面试中展现出深厚的Oozie技术功底。
Jimaks
2024/04/12
1590
读书笔记:基于web的工作流引擎设计
1、工作流引擎以工作流管理联盟的XPDL(XML Process Definition Language)语言为过程定义语言。 2、基于B/S结构的工作流系统的优点:分布式、跨平台。 3、工作流执行过程中的数据全部储存在中心数据库中。 4、日志的作用:如果一条工作流未能正常结束,管理员可以根据数据库中提供的信息从失败节点继续执行工作流。 5、过程定义为可视化图形界面,生成工作流管理联盟定义的XPDL语言文件存入工作流过程定义库,供工作流引擎调用。 6、工作流引擎的事务处理能力,使数据的一致性得以保
用户1075292
2018/01/23
1.4K0
工作流参考模型点评
工作流参考模型点评 工作流参考模型是由WFMC提出来的,对工作流管理系统的实现推荐的一个参考模型。 下面分别对各个组件进行解释: 1) Work Flow Enactment Service  这个组件就是我们平常说的工作流机或工作流引擎,主要功能是读取工作流定义、根据工作流定义驱动工作流的流转。一般常用的开源的JAVA工作流机有Shark/OBE/ofbiz等。 2) Process Definition Tool  用于以图形化的方式定义工作流。如著名的JAWE。Proces
用户1075292
2018/01/23
1K0
ERP企业管理系统的系统特点有哪些?
ERP企业管理系统更加面向市场、面向经营、面向销售。 能够对市场快速响应;它将供应链管理功能包含了进来,强调了供应商、制造商与分销商间的新的伙伴关系;并且支持企业后勤管理。 产品数据管理PDM功能,增加了对设计数据与过程的管理,并进一步加强了生产管理系统与CAD、CAM系统的集成。 流程制造等的管理模式。 服务器分布式结构、面向对象技术、基于WEB技术的电子数据交换EDI、多数据库集成、数据仓库、图形、用户界面、第四代语言及辅助工具等等。 一般而言,除了MRPⅡ的主要功能外,ERP软件系统还包括以下主要功能
明象ERP
2019/03/01
1.1K0
针对 Hadoop 的 Oozie 工作流管理引擎的实际应用
Apache Oozie 是用于 Hadoop 平台的一种工作流调度引擎。该框架(如图 1 所示)使用 Oozie协调器促进了相互依赖的重复工作之间的协调,您可以使用预定的时间或数据可用性来触发 Apache Oozie。您可以使用 Oozie bundle系统提交或维护一组协调应用程序。作为本练习的一部分,Oozie 运行了一个 Apache Sqoop 作业,以便在 MySQL数据库中的数据上执行导入操作,并将数据传输到 Hadoop 分布式文件系统 (HDFS) 中。可以利用导入的数据集执行 Sqoop合并操作,从而更新较旧的数据集。通过利用 UNIX shell 操作,可从 MySQL 数据库中提取用来执行 Sqoop 作业的元数据。同理,可执行 Java操作来更新 Sqoop 作业所需的 MySQL 数据库中的元数据。
Spark学习技巧
2018/10/25
1.1K0
针对 Hadoop 的 Oozie 工作流管理引擎的实际应用
狼叔:F2C 能否让前端像运营配置一样开发?
之前在《2021 前端会有什么新的变化?》一篇 10W+ 的回答中有提到 imove,大家对这个开源项目颇为感兴趣,这里将它背后的设计思路和背景做一下介绍,从概念到实践,各种曲折也是颇有思考的。
前端森林
2021/03/04
1.3K0
Activity 工作流框架学习总结「建议收藏」
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 工作流管理系统(Workflow Management System,WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
全栈程序员站长
2022/08/23
5600
java中jbpm工作流_状态机和工作流的区别
BPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。
全栈程序员站长
2022/09/30
1.4K0
java中jbpm工作流_状态机和工作流的区别
数据仓库系统建设中的工作流及优化
导读:随着 IT 时代步入到 DT 时代,从数据中挖掘价值已经变得越来越重要。数据仓库系统长期以来一直是企业 IT 架构的重要组成部分,并且逐步与大数据等技术相融合,已然成为建设数据文化的智慧型企业的必然措施。
Spark学习技巧
2021/03/05
6360
数据仓库系统建设中的工作流及优化
Activiti工作流概述
本来打算看OCR的但是我手里有的资源是讲的PY的,涉及到CNN和RNN看得有的不太明白,捂脸,所以看看工作流吧,反正也都不会,干啥啥不会
彼岸舞
2020/09/30
6240
什么是工作流技术?
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155818.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
6820
Activity工作流引擎学习笔记(一)「建议收藏」
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/08
1.6K0
Activity工作流引擎学习笔记(一)「建议收藏」
.NET开源且好用的权限工作流管理系统
系统权限管理、工作流是企业应用开发中很常见的功能,虽说开发起来难度不大,但是假如从零开始开发一个完整的权限管理和工作流平台的话也是比较耗费时间的。今天推荐一款.NET开源且好用的权限工作流管理系统(值得借鉴参考和使用):OpenAuth.Net。
追逐时光者
2023/12/14
4740
系统分析师真题2020试卷相关概念一
面向对象系统的单元测试包括方法层次的测试、类层次的测试和类树层次的测试。方法层次的测试类似于传统软件测试中对单个函数的测试;
小马哥学JAVA
2023/02/21
5210
Activity 工作流配置「建议收藏」
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/01
1.5K0
Activity 工作流配置「建议收藏」
工作流引擎在vivo营销自动化中的应用实践 | 引擎篇03
本文是《vivo营销自动化技术解密》的第4篇文章,分析了在营销自动化业务引入工作流技术的背景和工作流引擎的介绍,同时介绍了几种业界流行的开源工作流引擎特点,以及在项目自研开发过程中的设计思路和总结思考。
2020labs小助手
2022/07/18
1.6K0
Activiti学习详解【面试+工作】
一:Activiti第一天 1:工作流的概念 说明: 1) 假设:这两张图就是XX兄弟的请假流程图 2) 图的组成部分: A. 人物:范XX 冯X刚 王X军 B. 事件(动作):请假、批准、不批准
Java帮帮
2018/03/15
3.4K0
Activiti学习详解【面试+工作】
Activity工作流学习
工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。(我的理解就是:将部分或者全部的工作流程、逻辑让计算机帮你来处理,实现自动化)
全栈程序员站长
2022/08/12
9920
Activiti工作流框架学习笔记(一)「建议收藏」
对于第一次接触工作流的小伙伴来说,觉得难以理解,也无可厚非,说得好像我自己就能深刻理解一样,我也只是将学习Activiti工作流框架中的一些知识点记录下来而已,也希望能和大家讨论。
全栈程序员站长
2022/11/08
2.6K0
Activiti工作流框架学习笔记(一)「建议收藏」
Activiti工作流的详细介绍[通俗易懂]
1、工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。
全栈程序员站长
2022/11/08
3.6K0
Activiti工作流的详细介绍[通俗易懂]
相关推荐
Oozie工作流管理系统设计与实践:面试经验与必备知识点解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文