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的事务管理进行合并。
分享到:
相关推荐
### jBPM简介与关键技术知识点 #### 一、jBPM概述 jBPM是一个开源的、纯Java的、轻量级的商业流程管理(Business Process Management, BPM)工作流引擎。它支持多种可执行流程语言,并且可以在任何JavaEE应用...
通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...
jBPM(Java Business Process Management)是一款开源的工作流管理系统,用于在Java应用程序中实现业务流程自动化。jPDL(jBPM Process Definition Language)是jBPM用来描述和执行业务流程的一种专用语言,它基于...
JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了强大的业务流程建模、执行和监控能力。本文将深入探讨JBPM的工作原理、表结构及其在实际操作中的应用。 1. **JBPM特色** - **灵活...
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
jBPM(Java Business Process Management)是一个开源项目,用于处理业务流程的管理和执行。jBPM4作为该系列的一个版本,提供了一套完整的流程管理和执行框架,允许开发者构建灵活的工作流应用,以实现业务流程自动...
2017年jBPM 正式发布了全新的 7版本。jBPM 是一个完全开源的业务流程管理(BPM)和案例管理解决方案。它支持流程和案例的完整生命周期,从编写工具到执行一直到监控和管理。 在核心引擎之上,提供了许多功能和工具来...
jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...
【JBPM修改数据库教程及实例】 JBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于管理和执行业务流程。在JBPM6中,默认使用H2内存数据库进行存储,但实际生产环境中,我们通常会选择...
【jbpm-4.4.zip part03】这个压缩文件是关于jbpm 4.4版本的组成部分,jbpm(Java Business Process Management)是一个开源的工作流管理系统,它提供了业务流程建模、部署、执行和监控的功能。jbpm 4.4是该系统的一...
**jbPM 3.2 知识点详解** jbPM,全称为Java Business Process Management,是一个开源的工作流管理系统,主要用于企业级应用中的业务流程管理。jbPM 3.2是该系统的一个版本,它提供了丰富的功能,包括流程设计、...
《jBPM4.4开发指南》与《jBPM4.4中文用户手册》是深入理解jBPM4.4这一开源工作流管理系统的重要参考资料。jBPM,全称Java Business Process Management,是一个用于执行业务流程的轻量级、灵活的开源框架,它为业务...
jbpm jbpm4.3.jar DDDDDDDD
JBPM4.4是JBoss Business Process Management (BPM)平台的一个版本,它是一个开源的企业级BPM解决方案,用于设计、执行和管理业务流程。在这个完整的审批流程工程中,我们看到它采用Maven进行项目构建和依赖管理,...
JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...
"JBPM7基础开发" JBPM7 基础开发是基于流程引擎的开发方式和实现方式的简单说明。流程引擎是一个自动化管理和优化流程的工具,旨在提高不同部门之间业务的整合效率,降低开发和维护成本。 概念1:BPM(业务流程...