随着SOA的发展BPM渐渐成为人民关注的部分。
其实很多东西早已存在,只是大家忽视它的存在而已。BPM就是这样,其实有程序出现的时候,BPM就已经出现了,只是没有名字而已。
关于BPM,许多独立的厂商给出了不少的误导:
1)BPM系统可以实现无需维护代码,甚至有些厂商鼓吹无需写一行代码就能,只需要画画图就能完成工作。
2)BPM能和系统分开,我觉得适度松耦合是可以做到的,但是完全和业务代码分开是不现实的。否则BPM也不是嵌入式的了。
在目前BPM的市场上出现了诸侯割据的场面,各大厂商都维护着自己的一套标准。开源方面出现了两大阵营SHARK和jBPM,然而我选择了后者,主要原因是jBPM是JBOSS家庭成员,JBOSS家庭已渐渐成为了标准和规范的代名词。另外jBPM也有一个很好的Eclipse插件。
说完废话开始学习
jBPM由核心组件,web控制台,调度组件,身份组件,BPEL扩展组件几大组件组成,核心组件是由纯JAVA编写,所以能很好的和J2SE程序,JAVAEE程序结合。jBPM的持久层采用符合JPA标准的Hibernate框架,身份组件用于管理用户,当对于大部分程序,希望自己维护用户的管理,你大可用自己的身份管理程序。
主要涉及以下几个概念
process definition(流程定义):工作流的流程的完整定义,包括节点和节点之间的走向等关键信息。通常以xml格式提供。一个具体的系统往往是由许多个流程组成的。
process instance(流程实例):每个process defination生成的业务层的实例。当process instance创建以后,代表流程的执行路径,并被定义到开始节点。
token(令牌):表示了一个执行的路径,它是运行时产生的。当实例建立以后,令牌也就产生了。
node:表示流程中的一个节点。
transition:关联两个节点,用于表示节点的走向
signal:让一个token执行下一步。process instance也有signal,当用process instance的signal时,其实就是运行process instance根令牌(root token)的signal
当token进入到一个node时,node会被执行,并产生一些事件,比如进入、离开节点等,这也是执行业务逻辑的地方。事件由action来表示。
下面介绍一下流程的定义和持久
//解析一个xml为一个ProcessDefinition对象
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(...);
//打开session
JbpmSession jbpmSession = jbpmSessionFactory.openJbpmSession();
//开启事务
jbpmSession.beginTransaction();
//持久化流程定义到数据库
jbpmSession.getGraphSession().saveProcessDefinition(processDefinition);
//提交事务
jbpmSession.commitTransaction();
//关闭session
jbpmSession.close();
这样,一个流程就被持久化到数据库,可以看到有hibernate的影子。当你需要使用这个流程时:
JbpmSession jbpmSession = jbpmSessionFactory.openJbpmSession();
jbpmSession.beginTransaction();
//找到刚刚那个流程,processname是流程的名字,在XML文件中定义,findLatestProcessDefinition方法是找到该流程的最新版本,jBPM允许多个流程同样的名字,以版本号区别
ProcessDefinition processDefinition = jbpmSession.getGraphSession()
.findLatestProcessDefinition(processname);
//创建该流程的实例
ProcessInstance processInstance = new ProcessInstance(processDefinition);
//得到实例上下文,上下文用来保存一些属性信息,比如审核流程中的,审核人、审核信息等
ContextInstance contextInstance =
processInstance.getContextInstance();
//上下文添加属性,这些信息将和上下文绑在一起
contextInstance.setVariable(varName,varValue);
//得到令牌
Token token = processInstance.getRootToken();
/**
操作令牌
//token.signal();
**/
//保存实例
jbpmSession.getGraphSession().saveProcessInstance(processInstance);
jbpmSession.commitTransaction();
jbpmSession.close();
当需要再次操作这个实例的时候,只需要把
ProcessInstance processInstance = new ProcessInstance(processDefinition);
改成
List processInstances =
graphSession.findProcessInstances(...);
分享到:
- 2008-02-01 11:42
- 浏览 2209
- 评论(1)
- 论坛回复 / 浏览 (0 / 3187)
- 查看更多
相关推荐
jbpm(Java Business Process Management)是一款开源的工作流管理系统,它为业务流程自动化提供了一套全面的解决方案。jbpm不仅支持工作流的建模、执行,还提供了监控和管理功能,使得开发者可以方便地构建和部署...
工作流引擎jbpm学习笔记 jbpm是一个专业的工作流引擎,用于定义、管理和执行业务流程。它可以帮助我们简化工作流程的开发和维护,提高工作效率和可扩展性。 一、什么是公文流转? 公文流转是指公文在定义流转中的...
在本篇jbpm学习笔记中,我们将深入探讨如何安装jbpm插件,配置运行环境,发布流程定义以及查看流程定义。 首先,下载jbpm的最新版本可以从官方指定的源获取,例如在SourceForge上...
通过JBPM学习杂记,我们可以了解如何创建和配置这些元素,以及如何将它们连接起来形成一个完整的业务流程。 接着,我们需要了解jbpm的数据模型,包括实体类和持久化。jbpm的核心实体如ProcessInstance、Task、Job等...
【JBPM学习视频11~14】是一系列关于企业级业务流程管理(Business Process Management,简称BPM)系统的教程,特别聚焦在JBoss提供的开源工具JBPM4.4版本。这一系列视频教程旨在帮助学习者深入理解并掌握JBPM框架,...
jbpm3.1.4是其历史版本之一,虽然现在有更高级的版本,但对于学习工作流基础概念和原理,这个版本仍然具有很高的价值。 首先,我们要理解jbpm的核心概念。jbpm提供了流程定义的语言(BPMN,Business Process Model ...
### JBPM5入门学习知识点详解 #### 一、JBPM5简介 **1.1 什么是JBPM** JBPM(Java Business Process Management)是一个开源的业务流程管理框架,旨在为开发者提供一个简单、灵活且可扩展的平台来设计、执行和...
jbpm学习笔记主要涵盖了jbpm(Java Business Process Management)的多个方面,包括Signavio的使用和配置、jBPM数据库的安装、Graphical Process Designer(GPD)的安装以及jBPM在Eclipse环境中的配置。以下是这些...
**JBPM3学习笔记** JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了对业务流程的建模、部署、执行和监控的能力。在本文中,我们将深入探讨JBPM3的核心概念、功能和使用方法,以帮助...
jbpm4.4学习教程是一套专为初学者设计的教育资源,旨在帮助用户掌握jbpm这一业务流程管理(Business Process Management)框架的第4.4版本。jbpm是一款开源的Java平台工具,它允许开发者设计、执行和管理业务流程,...
### jBPM学习资料知识点详解 #### 一、jBPM概述 jBPM,即Java Business Process Management,是一款基于J2EE的轻量级工作流管理系统,专为简化业务流程设计与执行而生。该项目自2004年加入JBoss家族以来,成为其...
在开始jBPM-jPDL的学习之前,首先要搭建一个合适的运行环境。系统平台通常要求Java运行环境(JRE或JDK),因为jBPM是基于Java的。安装包通常包括jBPM的核心库、示例项目以及相关的开发工具。对于部署,可以将jBPM...
【JBPM工作流全套学习资料】是一份详尽的学习资源,涵盖了JBPM工作流系统的基础到高级知识。JBPM(Java Business Process Management)是开源的企业级工作流管理系统,它允许开发者设计、部署和执行业务流程。这个...
【jbpm学习文档】是专为初学者设计的教程资源,旨在帮助新手理解和掌握jbpm这一流程管理系统。jbpm是一个开源的、可扩展且灵活的流程引擎,可以在独立服务器或任何Java应用程序中运行。它支持多种流程语言和执行模式...
总的来说,这个压缩包提供了一个系统化的jbpm学习路径:从基本概念的理解,到与其他工作流引擎的对比,再到实际开发的入门指导,最后深入到流程定义的语言规范。无论是想要了解jbpm,还是准备在项目中实施,这些资料...
【jbpm学习资料汇总】 jbpm,全称是Java Business Process Management,是一个开源的工作流管理系统,主要用于业务流程的建模、执行和管理。它提供了一种灵活的方式,使得开发人员和业务分析师能够协同工作,创建、...
【jBPM4学习总结】 jBPM,全称为Java Business Process Management,是一个开源的、灵活且可扩展的业务流程管理框架,涵盖了业务流程管理、工作流和服务协作等多个领域。自2004年10月加入JBoss组织后,jBPM逐渐成为...
**JBPM4学习文档CHM**是一份专为学习和理解JBPM4设计的工作流引擎技术文档,适合那些对工作流框架感兴趣的Java开发者,特别是希望将JBPM与Spring框架集成的人员。JBPM是一个开源的工作流程管理系统,它提供了一整套...
jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. **jbpm4表结构和表字段说明**: jbpm4.3表结构和表字段说明文档通常会详细...