工作流[zt]

转载 2004年08月05日 23:07:00

工作流

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

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

上文中的一个图很好地显示了工作流系统的要素。
anatomy.gif
, 如开始、结束、条件、分支等等。不同工作流的实现方式也是不同的。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



Catalogs



References


工作流设计简介

转自http://www.cnblogs.com/lts8989/archive/2012/07/22/2570739.html 适读人群:参与过工作流功能开发的程序员。(有可能你并不知...
  • hello_simon
  • hello_simon
  • 2014年02月17日 16:03
  • 2299

工作流学习——重要概念扫盲篇一步曲

通过这篇文章我们可以了解到工作流、工作流管理系统、工作流框架、工作流引擎他们的概念以及他们之间的相互关系,同时我们还讲解了activiti的前世今生,同时我们还将activiti于jbpm5进行了比较...
  • zwk626542417
  • zwk626542417
  • 2015年06月22日 11:55
  • 11536

实际项目中的工作流工作原理

java实际项目中的工作流(workflow)解读
  • David_lou
  • David_lou
  • 2017年02月06日 17:19
  • 4801

四种常见 Git 工作流比较

多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。 阅读的时候,请记住工作流应该是一种规范而不是金科玉律。我们希望向你展示所有工作流,...
  • prettyshuang
  • prettyshuang
  • 2016年04月29日 09:47
  • 2518

国内主要工作流厂商分析--ronghao

原文发表于INFOQ 尽管在企业应用中工作流应用的越来越多,但对国内的工作流厂商们来说,这并没有给他们带来期望中的快速增长,这并不奇怪,因为国内工作流产品基本上全部面向开发者和系统集成商,解决的...
  • fstars
  • fstars
  • 2015年08月11日 13:52
  • 877

工作流设计流程图

工作流程设计(实例操作)   经过三步操作即可设计一个基本的工作流程。   下面我们以《请假流程》为例介绍流程设计的操作方法——   第一步:分析流程和表单   1、分析请假单,如下图示   手...
  • youyou_yo
  • youyou_yo
  • 2015年06月11日 16:37
  • 1575

从程序员的角度来看为什么我们需要工作流

每一个程序员,在接触到工作流的时候,都会有这么一个疑问——我用一般的方法可以实现,为什么还要用工作流?         我曾经也问过这个问题,不过现在稍微有点明白了。别着急要答案,看过下面的例子,...
  • xiaoxian8023
  • xiaoxian8023
  • 2014年06月25日 19:07
  • 10538

浅谈工作流调度系统

浅谈工作流调度系统 http://ju.outofmemory.cn/entry/221885 每个公司都有自己的一套或者多套调度系统,从简单到复杂,满足各种定制化...
  • hsg77
  • hsg77
  • 2016年11月30日 15:45
  • 2234

(纯转载)一个真正符合中国国情的工作流设计参考(包括PHP实现)

开源的工作流很少有让人满意的,即便是国内用的比较多的jbpm,用起来也会觉得很便扭。再加上PHP中没有什么好用的工作流,于是干脆自己设计一个,设计的原则如下: 1 根据80/20原则,只使用wf...
  • heartno01
  • heartno01
  • 2013年12月10日 23:08
  • 2961

前端自动化工作流环境

学习目标 了解什么是Node,什么是NPM 掌握Bower的使用 熟练使用Less/Sass 搭建一个自己的自动化工作流 自动编译 自动合并 自动刷新 自动部署(将文件合并压缩) GIT与GitH...
  • zxiang248
  • zxiang248
  • 2016年09月09日 16:39
  • 816
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工作流[zt]
举报原因:
原因补充:

(最多只允许输入30个字)