现在的位置: 首页 > 综合 > 正文

工作流(workflow)定义和jBPM

2013年01月18日 ⁄ 综合 ⁄ 共 1921字 ⁄ 字号 评论关闭
工作流(workflow)定义
工作流(Workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。根据 WfMC 的定义,工作流(Work Flow)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的就是工作流。
工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
工作流管理系统(Workflow Management System, WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。

工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

工作流发展历史:
工作流的概念最早可以溯源到1970年代人们开发的办公自动化系统,如施乐帕洛阿尔托研究中心的办公研究小组开发的 Officetalk 系统,当时人们对工作流管理系统的应用前景非常乐观;但由于没有几个实际系统获得成功,相关的基础概念不统一,各种技术条件还未成熟,整个80年代工作流系统的发展处于停滞阶段。进入90年代以后,相关的技术条件逐渐成熟,工作流系统的开发与研究进入了一个新的热潮,但相关的基础概念仍未统一。据调查,截至1995年共有200多种软件声称支持工作流管理或者拥有工作流特征。工作流技术标准化的工业组织-工作流管理联盟(WfMC)也于1993年成立,他们给出了工作流参考模型,并相继制定了一系列工业标准。

jBPM ,全称是 Java Business Process Management (http://www.jbpm.org/),是一种基于 J2EE 的轻量级工作流管理系统。 jBPM 是公开源代码项目,它使用要遵循 Apache License 。 jBPM 在 2004 年 10 月 18 日 ,发布了 2.0 版本,并在同一天加入了 JBoss ,成为了 JBoss 企业中间件平台的一个组成部分,它的名称也改成 JBoss jBPM 。随着 jBPM 加入 JBoss 组织, jBPM 也将进入一个全新的发展时代,它的前景是十分光明的。

jBPM 最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如 WfMC's XPDL, BPML, ebXML, BPEL4WS 等,而是采用了它自己定义的 JBoss jBPM Process definition language (jPdl) 。 jPdl 认为一个商务流程可以被看作是一个 UML 状态图。 jPdl 就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。

jBPM 的另一个特色是它使用 Hibernate 来管理它的数据库。 Hibernate 是目前 Java 领域最好的一种数据持久层解决方案。通过 Hibernate , jBPM 将数据的管理职能分离出去,自己专注于商务逻辑的处理。

使用 jBPM 开发工作流的一般流程如下:

1)jBPM 的运行需要数据库的支持,因此系统设计时要选定所用数据库。只要是 Hibernate 支持的数据库, jBPM 就支持。数据库的初始化可以由 jBPM 自动完成,也可以通过 ant generate.ddl 任务生成 SQL 语句,在 jBPM 外部自己创建所需的表。

2)使用 jPdl 定义工作流,生成 processdinination.xml 文件。可以采用 GUI 工具 gpdl ,但目前只支持 jBPM1.0,而且bug很多 。 XML 的 DTD 定义文件在 jBPM 下载包中。

3)Ant create.pde 生成 pde 包的工作目录。将 processdinination.xml 文件和其它需要的文件放在指定的目录下,使用 ant build.precess.archives 生成 pde 包。 pde 包的格式采用 jar 。

4)更改 pde 工作目录/src/config/ jbpm.properties 的相关属性,主要是设定相关的数据库连接信息。注意要将数据库的 JDBC 驱动放在 pde 工作目录的 lib 目录下。

5)Ant deploy.process.archives 将刚才生成的 pde 部署到数据库。实际上就是向数据库插入一些相关数据。

6)利用 jBPM API 函数开发相应的工作流程。

(转)更详细...

http://www.blogjava.net/chengang/category/12967.html

抱歉!评论已关闭.