工作流概述

来源:百度文库 编辑:神马文学网 时间:2024/04/28 07:47:01
作流现状[转]


工作流现状(原文)


作者technologyhypecurve)上的初级阶段。在这个领域我们将面临一个激动人心的阶段。为了描述这一点,可以和关系数据库系统(RDBMS)做一个对比。当在软件开发团队中谈论RDBMS时,大部分人会有一个清晰的概念,在你和他们交流的时候,人们会通过轻微的点头表示认可或理解你所说的。可当使用工作流术语讨论工作流时,他们会摇头表示不同意,因为每个人对工作流术语都有不同的理解。


Figure1:Workflowvs.RDBMSpositionedinthehype-curve

 

导致形成这种状况的原因之一,是在工作流中使用了过多的概念。在这个领域中的大量规范和工具没有一个是相似的。当然,它们相互之间有重叠并且会相互参考引证。
在介绍工作流时有一个话题必须包括,那就是工作流和业务流程管理(BPM)的关系。术语“工作流”通常描述人与计算机系统的一系列相关交互。在开发人员中,工作流经常被提及。有时,工作流的意思是指一些不同的UI界面。业务流程管理的范围比较广,相比之下工作流多半局限于技术领域。业务流程管理还从管理人员的角度涉及了非技术问题,比如分析、组织的效率。

在本文中,我首先解释什么是工作流管理系统,然后介绍业务流程管理的优点。接下来描述一下为什么工作流市场乍看起来如此混乱。本文给出的主要结论是:选择工作流系统是想用工作流系统的公司,将要面对的最困难的事情。为此,本文的核心部分描述了一个流程定义(processdefinition)的四个层次,为你选择工作流提供一个基础。本文还用中立的语言描述了工作流和BPM的通用概念。最后,给出了一些规范和工具的指导性描述。

什么是工作流管理系统(WFMS)

定义

工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。

为了后面的描述,我们先定义一些基本的术语:流程定义(processdefinition)和流程实例(processinstance).一个流程定义是一个业务流程或过程的规格化描述。一个流程实例是流程定义的一个运行实体。都目前为止,概念还比较清晰是不是?但当再深入一步时,我们就要小心使用文字了。如何阐述流程中的步骤,现在还没有一个统一的方式。这是各种工作流规范和工具之间主要的分歧。

为什么应当禁止使用术语“活动(activity)”...
流程定义通常用一些活动表述。我认为这是导致工作流领域所有混乱的主要原因。我告诉你为什么:因为术语“活动”混淆了状态(state)和动作(action)之间的差异。在流程中,状态(或者说等待状态)代表了一种对外部参与者(actor)的依赖。在流程运行时,这意味着流程引擎必须等待,直到外部参与者通知工作流管理系统指定的状态完成了。比如,等待可进一步运行的认可。动作是在流程运行过程中,工作流系统为响应指定事件(event)运行的一段程序逻辑(programminglogic)。当流程运行过程中指定的事件发生时,工作流系统启动并执行这些动作。比如,当状态分配给一个参与者时,发一封Email。你也能看出,状态和动作是如此不同,因此使用同样的术语去描述这些概念是一个坏习惯。我的建议是避免使用术语“活动”,使用“状态”或者“动作”代替它。

工作流系统另一个重要的职责是维护每一个流程运行的上下文信息。流程上下文变量(processcontextvariable),或简称变量,是与流程实例相关的变量。如,休假申请的开始日期、数据库中一条记录的键值、文档管理系统中一篇文档的索引等。通常在流程定义中声明这些变量,然后在流程实例生成时,这些流程变量被实例化。所有成熟的工作流管理系统都支持定制的变量类型。

目标领域(Targetusage)

使用工作流管理系统的目的之一是作为企业应用系统集成(EAI)的平台。在当前大部分企业级IT架构中,各种各样的异构(heterogeneous)应用和数据库运行在企业内网中。在这些系统被应用到组织时,都有一个清晰的目标。例如,客户管理、文档管理、供应链、订单、支付、资源计划等等。让我们称这些系统为专门应用(dedicatedapplications)。每一个专门应用都包含它们所支持业务流程的领域知识。这些专门应用中的自动化流程,被拼装到企业中更大的非自动化流程中。每当一个这样的专门应用安装并投入使用,都会带来涉及其他多个应用的新功能需求。企业应用系统集成(EAI)就是通过使用多个专门应用满足软件新需求的方法。有时,这只需要在两个应用之间提供数据通讯的通道。专门应用将很多业务流程硬编码在软件中。可以这么说,在你购买专门应用时,你是购买了一组固定的自动化业务流程。而工作流管理系统是不必事先知道问题域的相关信息的。工作流系统将业务流程描述作为输入并管理流程实例的执行,这使得它比专门应用更灵活(当然你也要花精力编写业务流程的规格化描述)。这就是为什么说工作流系统和专门系统是相互补充的。工作流系统可以用来管理全局的业务流程。如果专门应用支持你所需要的业务流程,那么使用专门应用。在此讨论的工作流系统的第一种使用方式就是:结合所有的专门应用,使用工作流系统构建一个EAI平台。

工作流系统能够发挥很大价值的第二个使用方式是:协助涉及多人相关任务工作流软件的开发。为了达到这个目的,大部分工作流系统都有一个方便的机制,来生成执行任务的表单。对于专注于
Figure2:InterfacesofaWFMS

 

 

  • 定义工作流系统的定义接口使流程开发人员能够部署流程定义。注意,这里的“流程开发人员”可以是业务分析师和软件开发人员的组合。 圈套(Pitfall)
    许多工作流管理系统的开发商想使你相信,通过使用他们的图形化流程开发工具,只要业务分析师就可以生成流程定义。这种幻想源于“编程很难”这样的事实。开发商的销售人员喜欢说“看,你不用写一行代码”。不用写代码是好事,可大部分开发商在这点上走的太远,忽略了在某些场合提供一种将代码集成到流程定义中的机制是很适合的。在将工作流系统作为EAI平台时,必须在流程中集成代码。开发流程定义需要业务分析师和软件开发人员的合作。一个好的图形流程设计工具应该能够支持这种合作。

  • 执行执行接口使用户和系统可以操作流程实例。流程实例是流程定义的执行。流程定义的控制流通过状态机描述。执行接口的两个主要方法是启动一个流程实例和通知工作流系统一个状态结束了。
  • 应用应用接口代表了由工作流系统发起的工作流系统和外部系统之间的交互。当一个用户或系统操作一个流程实例的运行时,会生成一些事件(如一个迁移的执行)。流程定义中可以指定一段响应一个事件的可执行代码逻辑,这段代码和组织内外部的其他系统打交道。监控管理人员通过监控接口获得流程运行的确切数据。有时,运行日志也可用于审计。
这些是WfMC参考模型(petr网是mypreviousarticle,OpenEbXML-OpenebXML项目致力于提供一个ebXML框架,主要支持不久将由UN/CEFACT和OASIS发布的ebXML规范2.0版。
  • OFBiz-OFBiz工作流引擎基于WfMC和OMG的规范,使用XPDL作为流程定义语言。
  • Taverna-Taverna项目的目标是提供一种语言和软件工具,方便在eScience中使用工作流和分布计算技术。
  • OpenBusinessEngine-OpenBusinessEngine是一个开放源码的Java工作流引擎,支持WfMC规范,包括接口1(XPDL)、接口2/3(WAPI)和接口5。OBE为活动的运行提供了一个可控的集中环境。OBE主要基于J2EE实现。
  • Twister-Twister的目标是提供新一代、易集成、应用Java领域中最新成果、面向B2B的工作流解决方案。流程引擎基于BPEL业务流程规范和WebService标准。Joinwork(译者加:-))http://dmoz.org/Computers/Software/Workflow/Products/JohnPyke和XPDL规范。XPDL定义了描述工作流声明部分(declarativepart)的XML结构。我个人认为,参考模型和XPDL是目前最好的规范。

    • JSR207:Java的流程定义-是由ebXML‘sBPELJ。此规范描述如何处理输入的消息,而不是对流程状态进行建模。就像本文提到的,它不是一个关于业务流程规格化定义的规范。简单的说,可以将它看作XML形式的编程语言,提供将WSDL-Services组合成控制流的能力。顾名思义,此规范重点在(也不只限于)WebService。UBL-TheUniversalBusinessLanguage(UBL)定义了用于不同组织间通讯的XML文档标准库。可以看作是对ebXML的补充,因为ebXML只定义了建立组织间流程的基础。此规范的竞争对手是RosettaNet标准中的一个子集。

    结论

    我在本文中指出工作流市场还属于年轻而又混乱(youngandwild)的阶段,但已经有可靠的工具存在了:

    1. 到目前,像J2EE和.NET这样成熟的集成平台才可用。在这样一个平台上运行工作流管理系统才能真正发挥工作流系统的附加价值。这也是为什么只有在今天,工作流系统才被重新发现。在‘Thecaseforworkflow‘一节,我们介绍了引入工作流管理系统,是如何同时在技术和业务上带来投资回报的。
    2. 工作流在技术发展曲线的位置表明,BPM和工作流中使用的概念还需要明确。“开放源代码项目”和“商业软件提供商”列表中的工具,可以让你获得工作流和业务流程管理的益处。

    从以上所有这些中能得到的结论是:

    1. 规范还没有成熟,没有标准被大范围采用
    2. 对于现在想应用BPM的公司来讲,比较工作流系统是一个极其困难的挑战尽管标准化工作慢了一拍,可好的工作流管理系统还是有的。这对于已经在挑选工作流系统的组织来说是一个好消息。

    我希望本文能够激发你对工作流的兴趣并且能够为你进行有效的对比提供正确的背景知识。

    Furtherreading

    • Enix-英国流程管理顾问公司,在网站上有不错的内容
    • Webservicesorchestration-anHP-paperthatreviewstheemergingtechnologiestoolsandstandards.(Januari2003)