工作流[zt]

article/2025/8/25 16:32:36

工作流

做过不短时间的工作流,一直没有进行好好的总结。最近theserverside.com登了下面的文章, The State of Workflow, 文章的内容比较浅显,概要介绍了工作流的基础。我也做个小结。

工作流的模型大多数都是参考WfMC的模型

从图中可以看到有5个接口。实际上很多商用和open source的工作流系统都没有严格遵照这个标准,或者说没有统一。一个原因是wfmc的标准对于很多细节没有明确说明,在实现时只好各做各的。还有一个原因,工作流系统与业务系统关系密切,受业务系统的限制或约束太大,因此支持不同业务的工作流在细节上差异很大,标准不易统一,同时做一个通用的工作流系统难度比较大。
工作流中的一个难点是工作流系统与应用系统的数据交互,工作流系统因为是基础设施,需要支持很多不同的应用,所以,业务数据在工作流系统中是没有含义的,工作流系统只能以一种通用的方式来处理这些数据,这就需要一个规则解释器(Rules Engine),以及一个通用的数据交互接口。
WfMC的规范自99年之后,改动就较少了,模型已相对成熟,但缺少对接口的有效描述,这与当时的技术手段有关,当时的定义与实现的关系很大,通用一点的就是IDL了,2000以后,规范增加了XML表示,可以独立于语言了。但规范仍然比较泛泛,在具体实现时仍需要做较深入的研究。
几个接口中,最不实际的就是接口4,工作流引擎间的交互接口,目前来看,基本上没这个可能性了。
流程定义,与应用的关系更大了,抽象的工作流定义对于用户是很难理解的,而工作流的一个目的是解脱程序员,让业务人员来直接定义流程,并可以随时更改,所以通用的流程定义实际上仍然是一个编程工具,一个开发者的IDE。
工作流一般都应用于组织中,解决组织中多变的、复杂的任务传递工作,所以必不可少的就是组织机构的定义、基于角色的权限定义,在国内注重流程和等级关系的企业/政府部门中,如何有效地反映组织中实际存在的且行之有效的,人人都关注的等级关系就是一个很重要的问题。这个组织的反映应具有一定的抽象性,还需要与实际的物理的组织结构存在比较真实地映射关系。通常,在本位关系较严重的组织中,何时跨越某些点,也是一个问题,这需要工作流能有比较大的灵活性,既能规范流程,必要时也可以打破流程,这也是中国特色。
工作流的驱动实际是任务式的,所有应用都由工作流来调度,并由工作流来激活用户的执行权限。但考虑到,传统工作中存在着的一定任意性,以及用户的工作习惯,这个任务可能需要由业务应用来展现,并使之具备一定的工作流数据跟踪和状态查询能力。
工作流的串联,并行以及任意跳转或回退,都是用户经常提到的问题。本身实施工作流之前,需要做一定的流程规划,但实际情况是,计算机系统必须适应传统的手工流程,这也是工作流难以很好推广和应用的问题。WfMC的规范给出了指引,也有些理想化,实际组织中的业务情况是千变万化的。

上文中的一个图很好地显示了工作流系统的要素。

, 如开始、结束、条件、分支等等。不同工作流的实现方式也是不同的。Ultimus的工作流与表单系统的绑定很好,而Adode也收购了多家工作流公司,和他的pdf进行绑定,一个是两年前的基于com的accielo(JetForm), 一个是最近收购的java workflow公司-QLink. 看起来,自定义个表单系统和工作流的结合,可以提供一个更好的、更自由的企业应用方案。OpenText的LiveLink集成了很多的工作流功能,试图提供一个全面的解决方案,Bea则利用很早的jetflow, 企图提供一个通用的工作流系统,当然它只能与java对象进行交互。所有这些系统的定义方式和定义格式都完全不一样,所以你只能选择一个。开源的有Ofbiz,OpenSymphony,Open Business Engine等等,有的甚至缺少图形化定义界面,通过一个XML来完成流程的定义。要想利用它们还需要很多工作。

沥沥拉拉,把能想到的,胡乱堆砌在这里,留一个暂时的记忆,各位看官不要介意。
实际上,一个系统中,必不可少的几个子系统必然包括:组织机构/用户管理,权限/授权管理,工作流系统,全文检索以及消息传递系统(IM),Email系统。进一步,内容管理、用户个性化也是显而易见的。从这一点看,工作流系统是前途无量的。目前看,这个市场还是混乱的,从上文中摘录了有关的资源:

Open source


The 3 sources for composing this list were my previous article, the list of Carlos E Perez, and another list by a dutch consulting firm.


By the way, Carlos has many lists of open source projects in various categories.



  • jBpm - jBpm is a flexible, extensible workflow management system. Business processes, expressed in a simple and powerfull language and packaged in process archives, serve as input for the jBpm runtime server. jBpm combines easy development of workflow-applications with excellent enterprise application integration (EAI) capabilities. jBpm includes a web-application and a scheduler. jBpm is a set of POJO components that can also be deployed as a J2EE application.
  • OpenEbXML
  • Enhydra Shark - Shark is completely based on standards from WfMC and OMG using XPDL as its native workflow definition format. Storage of processes and activities is done using Enhydra DODS.
  • Codehaus Werkflow - Werkflow is a flexible, extensible process- and state-based workflow engine. It aims to satisfy a myriad of possible workflow scenarios, from enterprise-scale business processes to small-scale user-interaction processes. Using a pluggable and layered architecture, workflows with varying semantics can easily be accomodated.

  • OpenSymphony OSWorkflow - What makes OSWorkflow different is that it is extremely flexible.

  • wfmOpen - WfMOpen is a J2EE based implementation of a workflow facility (workflow engine) as proposed by the Workflow Management Coalition (WfMC) and the Object Management Group (OMG). Workflows are specified using WfMC's XML Process Definition Language (XPDL) with some extensions.
  • OFBiz Workflow Engine - The Open for Business Workflow Engine is based on the WfMC and OMG spec. OFBiz Workflow Engine uses XPDL as its process definition language.
  • ObjectWeb Bonita - Bonita is a flexible cooperative workflow system, compliant to WfMC specifications. A comprehensive set of integrated graphical tools for performing different kind of actions such as process conception, definition, instanciation, control of processes, and interaction with the users and external applications. 100% browser-based environment with Web Services integration that uses SOAP and XML Data binding technologies in order to encapsulate existing workflow business methods and publish them as a J2EE-based web services. A Third Generation Worflow engine based in the activity anticipation model.
  • Bigbross Bossa - The engine is very fast and lightweight, uses a very expressive Petri net notation to define workflows, does not requires a RDBMS and is very simple to use and to integrate with java applications. Actually, it was designed to be embedded.
  • XFlow - XFlow runs within an EJB and servlet container.
  • Taverna -The Taverna project aims to provide a language and software tools to facilitate easy use of workflow and distributed compute technology within the eScience community.
  • PowerFolder - PowerFolder consists of a developer studio, administration environment, and a runtime engine.
  • Breeze - Breeze is a lightweight, cross-platform component-based workflow engine prototype.
  • Open Business Engine - Open Business Engine is an open source Java workflow engine which supports the Workflow Management Coalition's (WfMC) workflow specifications, including interface 1, also known as XPDL, interface 2/3 known as WAPI and interface 5 for auditing. OBE provides an environment for executing activities in a controlled, centralized environment. OBE supports both synchronous and asynchronous execution of workflows. The primary OBE implementation is based on J2EE.
  • OpenWFE - OpenWFE is an open source java workflow engine. It features 3 components, easily scalable : an engine, a worklist and a web interface. Its workflow definition language is inspired of Scheme, a Lisp dialect, though it is expressed in XML.
  • Freefluo
    - Freefluo is a workflow orchestration tool for web services. It can handle WSDL based web service invocation. It supports two XML workflow languages, one based on IBM's WSFL and another named XScufl. Freefluo is very flexible, at its core is a reusable orchestration framework that is not tied to any workflow language or execution architecture. Freefluo includes extension libraries that enable execution of workflows written in a subset of WSFL.
  • ZBuilder - ZBuilder3 is a second generation of workflow development and management system which intends to be an open source product. It defines a set of standard JMX management interfaces for different workflow engines and their workflows.

  • Shocks - Shocks is a departure from previous servlet framework technologies. It is conceptually unique in that it does not attempt to implement the "MVC" design pattern. It uses a next-generation architecture which cleanly separates the components into DataSource, Action, Workflow and Presentation objects. At the core of the framework, Shocks contains a lightweight workflow engine built specifically to accomodate J2EE servlet-based web applications. This engine uses workflow metadata which is generated by the developer in a simple XML configuration file.

Commercial



  • Bea's WLI
  • Carnot
  • Dralasoft

  • Filenet
  • Fujitsu's i-Flow
  • IBM's holosofx tool
  • Intalio

  • Lombardi

  • Oakgrove's reactor

  • Oracle's integration platform
  • Q-Link
  • SAP's NetWeaver
  • Savvion

  • Seebeyond

  • Sonic's orchestration server
  • Staffware

  • Ultimus
  • Versata

  • WebMethod's process modeling

Catalogs



  • http://www.anaxagoras.com/Toolbox/index.php?fase=2&category=2


  • http://dmoz.org/Computers/Software/Workflow/Products/
  • A collection of links to tools for modelling business processes and workflows maintained by Bart-Jan Hommes at TU Delft, the Netherlands.

References



http://chatgpt.dhexx.cn/article/jKcohFs9.shtml

相关文章

工作流体系----走进工作流管理平台(flowable版)(3)

当我们完成流程预设置后,整体产品体系就基本成型了------2021年8月20日,我对长沙团队的兄弟们说。 历经了一年半的从头再来,我们基本恢复到.net平台80%的水平了。我们会尽快的完善相关的业务,抓住核心主线 【合同/案件/法务/合规…

工作流 - 2 工作流发展

工作流 - 目录 工作流 - 2 工作流发展 一、工作流 - 发展1. JBPM2. activiti3. flowable4. camunda5. 对比6. 主要人物和发展历史 一、工作流 - 发展 1. JBPM 官网:https://jbpm.org/ 目前最新版本: 7.38.0分水岭jbpm5:BPM5使用http://jBo…

工作流(Workflow) -- 工作流简介

工作流(Workflow) – 工作流简介 数据库 Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。 ACT_RE_: RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。ACT…

工作流运行

工作流运行 定义内涵 工作流运行是工作流模板的依次执行,在工作流运行时,用户可以随时取消或查看正在 运行的任务。由于工作流运行的模板的不同,运行过程中可能会产生不同的新资源,如数据 处理类型的工作流会产生新的数据集&…

工作流(Workflow)

工作流(Workflow) 是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表达并对其实施计算。工作流要解决的主要问题是&#xff1…

工作流-数据流转

一、流程图 二、数据流转 1. 部署流程分析 部署流程时会保存3张表:act_re_deployment、act_re_procdef、act_re_bytearray。 2. 启动流程 2.1启动流程流转 act_ru_execution:流程实例和执行流,每发起一次申请就会生成两条记录&#…

什么是开源工作流平台?

在办公职场中,有没有一款软件是实现提质增效的平台?如果让办公实现流程化管理,引用什么平台产品较为合适?低代码开发平台是近些年较为流行的办公软件平台,可以有效管理数据资源,制作表格可视化操作更简便&a…

Activiti教程(一)activiti工作流简介

一.工作流简介 BPM是Business Process Management 的缩写 简称BPM 即业务流程管理,即现在的工作流. 二.工作流概念 (1)流程定义:定义一个流程 即开始-任务x-结束 (2)流程部署:生成一个.bpmn规范的流程定义文件 进行发布. (3)流程执行:流程发布后既可以进入执行状态开始执行流…

普元EOS_工作流引擎相关数据表记录---工作流工作笔记002

由于现在在用普元的工作流引擎,但是,说明文档中没有对数据表的说明 所以整理一下记录下来: 业务流程(com.eos.workflow.data.WFProcessDefine) 属性 名称 类型 processDefID 业务流程ID long processDefName 业务流程名称 String processChName 业务流程显示名称 String desc…

微信小程序代码提交步骤

微信小程序提交代码分为两步: 一.本地提交 二.推送到github 1.点击右上角版本控制按钮,选择需要提交的文件,在下面协商更新日志,点击提交按钮(注意:本次提交仅为本地提交,实际没有上传到服务…

微信小程序远程git代码管理

这篇博客介绍一下微信小程序的代码管理,及将代码上传到远程git库。用来更新、优化、管理自身代码。由于时间的问题,仅仅介绍关联远程git仓库,上传本地代码到远程仓库,更多应用需求可自行摸索留言。 1.介绍的关联git仓库功能是基于…

使用vscode开发微信小程序

1. 安装插件 2. 文件-打开文件夹-将新建的微信小程序导入,代码会有高亮的效果 3. 编辑内容,查看效果,如果有就说明插件引入成功。

微信小程序授权登录

微信小程序授权登录 最近在学习微信小程序,学到授权登录这里,做个笔记记录一下。 我们使用的工具是微信开发者工具,我们创建一个项目,项目结构如图所示: 我们先准备好我们的index.wxml文件,代码如下&…

微信小程序休眠setTimeout

在java C#中,都有自己的休眠函数,那在微信小程序中,也有对应的休眠函数。那是-------setTimeout 使用小案例 这个我在写微信小程绘制 canvas,生产图片的案例,因为绘制头像需要一点时间,这里先让程序停留20毫秒&#x…

【小程序】如何获取微信小程序代码上传密钥?

当使用uniapp开发微信小程序的时候,发行微信小程序,自动上传微信平台,需要程序代码上传密钥 在下面的演示里重置才能获取

微信小程序9-发布代码

微信小程序1-小程序基础,开发工具安装使用 微信小程序2-WXSS,WXS 微信小程序3-小程序生命周期和组件 微信小程序4-小程序的api 微信小程序5-真机测试 微信小程序6-云开发-云数据库 微信小程序7-云存储 微信小程序8-云函数 1.在小程序开发工具中点击上传代码 2.输入版本后上传 …

小程序源代码_如何找回微信小程序源代码

如何找回微信小程序代码 今年暑假,把自己电脑重装系统后,发现自己以前好多的程序代码都找不回来了,自己又不想重写,也没有保存到代码仓库,不知道如何是好? 最近找到一个反编译的方法,试试能不能找回自己的小程序源代码。 先配置好node.js环境之后,再去下载wxapkg包。 w…

没有灵魂的微信小程序代码转支付宝小程序代码

没有灵魂的微信小程序代码转支付宝小程序代码 微信小程序与支付宝小程序直面代码的替换内容功能快捷键 微信小程序与支付宝小程序 作为一个微信小程序的半新手,支付宝小程序的全新手! 在公司安排的这次任务中,需要把已经上线的支付宝小程序更…

获取微信小程序源代码教程

准备工作: 1、安装node.js,下载地址:下载 | Node.js 中文网 win7系统的安装下面这个版本: windows764位系统可以安装的Node.js最高版本-互联网文档类资源-CSDN下载 2、 电脑上安装逍遥模拟器或者夜神模拟器(模拟器要启…

微信小程序发布代码步骤

看图说话: 1,在HBuilder X 点击发行 ,终端会显示发行成功 2.在微信开发者工具,会新打开一个页面,点击详情看下路径是不是/dist/build ,这才是压缩要发行 3.点击确定,根据自己需求改版本号等等信息,点击提交 4.浏览器打开维信公众平台 https://mp.weixin.qq.com/ 找到 [ 版…