工作流[zt]

工作流

做过不短时间的工作流,一直没有进行好好的总结。最近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



Catalogs



References


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值