jbpm

1.什么是工作流?
1.1工作流定义
国际工作流管理联盟(Workflow Management Coalition,WFMC) 的定义:工作流就是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。

IBM Almaden研究中心给出的工作流定义:工作流是经营过程的一种计算机化的表示模型,定义了完成整个过程需要的各种参数。这些参数包括对过程中每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每一个活动所需要的应用程序。

工作流的简单定义就是工作从开始到完成的过程,是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述,是经营过程的一个计算机实现。

工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。

工作流依靠的软件环境是工作流管理系统。工作流管理系统主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。

1.2工作流基本概念
工作流(workflow):工作流就是业务流程的计算机化或自动化

工作流系统(workflow management systems (WFMS)):定义、创建、执行工作流的系统,通过软件定义、创建工作流并管理其执行

WFMC:是由约300家成员参加的组织,基于参考模型定义了一系列的标准。参考模型用例(use case)的形式描述了工作流系统和其他相关部分之间的关系。XPDL是WFMC制定的描述业务流程控制流(control flow )的XML格式规范

BPM:Business Process Management 业务流程管理

工作流引擎(engine) :核心组件,负责生成流程运行时的各种实例及数据,以及监视和管理流程的运行

流程定义(process definition) :预先定义的业务逻辑,对一个流程抽象的对象化定义,工作流的流程的完整定义,包括节点和节点之间的走向等关键信息。通常以xml格式提供

流程实例(process instance) :业务的实际流转过程

节点(node):对流程中的过程环节/行为的抽象对象化定义

参与者(actor) :任务的参与者(可能是人也可能是角色或是组织等)

任务(task) :业务逻辑上,会呈现给参与者处理的元素

任务实例(task instance) :业务实际流转过程中,生成的需要参与者进行参与的实际内容

流转(transition) :连接业务逻辑不同节点的桥梁,也是业务实例进行流转的依据。描述流程中从一个结点到另一个结点的状态转换过程,因此一个转向一定有一个源结点和一个目标结点

工作列表(worklist):根据实际应用的需求,需要展示给参与者的任务实例列表

2. JBPM介绍
JBPM是一个可扩展、灵活的流程引擎,它为非技术企业用户和开发人员建立了桥梁。传统的BPM引擎有一个缺点,就是只限制于非技术用户,而JBPM没有这个限制,它为非技术企业用户和开发人员都提供了BPM和和工作流特征。

2.2 JBPM的特色
1. 它的商务逻辑定义没有采用目前的一些规范,如XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转 换,过图型化的流程定义,直观地描述业务流程。

2. 它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据存储层解决方案,只要是 Hibernate 支持的数据库,jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。

2.3 JBPM运行时环境
JBPM可以运行在独立的服务器上或者嵌入任何Java应用中,JBPM可以在你的应用程序上作为一个远程服务或者一个组件。

官方网站描述:

·     Runs inside *any* Java environment

·     Simple API

·     Human tasks

·     Integrated with rules engine

·     Multiple process languages

·     Transactional execution, timers and asynchronous continuations

·     High performance, super size scalability and rock solid

·     Seamless automated upgrades (starting from jBPM 4.0)

一旦使用JBPM来自动化处理业务,所有的历史将会被自动记录,这些历史、报表可以生成并显示你所感兴趣的业务信息。JBPM4中引入了历史库的概念,我们可以通过历史库获得已完成流程的信息,或者正在运行中的流程实例所经过的路线。

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

2.使用jPdl定义工作流,生成processdinination.xml文件。

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

4. 更改pde工作目录/src/config/jbpm.properties的相关属性,主要是设定相关的数据库连接信息。

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

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

2.5使用jbpm必须安装的软件
JDK : JBPM需要JDK (标准java)5或更高版本。

ant : JBPM中的很多操作都要用到ant,需要1.7.0以上版本的ant

流程设计器(GPD) : 流程设计器支持通过图形元素来进行流程的建模,支持图形元素的拖拽、定位、复制、粘贴,支持快捷键操作。流程设计器(GPD)是基于eclipse平台的,如果使用JBPM4.0以上版本,则需要Eclipse3.5.0以上版本才可以安装流程设计器插件。

以下是流程设计器截图:



2.6 JBPM与spring整合
Jbpm4提供了对Spring的原生支持,这就允许我们在jBPM4中使用spring环境提供的hibernate session与统一的事务管理。Jbpm与spring整合,主要有三点,

1. 通过Spring暴露出服务,将服务配置到Spring的IOC容器里;
2. 在自己的运行环境里访问到Spring的IOC容器,能够轻松使用Spring容器里所配置的服     务;

3. 对于具有事务管理特性的项目来说,将事务管理与Spring的事务管理进行合并。

你可能感兴趣的:(spring,Hibernate,workflow,ant,jbpm)