1概述
一个流程定义是对一个业务流程的正式说明,以及它是基于有向图的。该图是结点(node)与流向(transition)的组合。图中每一个结点都是一个特殊的类型,结果的类型决定了该结点的运行时的行为。一个流程定义有且仅有一个开始状态。
一个令牌(token)是执行的轨迹。令牌是一个运行时的概念,其维护着速个图中指向结点的指针。
一个流程实例(process instance),是流程定义的一次执行过程。当流程实例被创建 ,一个令牌被创建,该令牌叫做这个流程实例的根令牌并处于这个流程实例的开始状态。
信号(signal)命令令牌继续执行,当接收到一个未命名的信号时,一个令牌将通过默认的“离开流向”离开当前结点,如果该信号有明确命名,令牌将通过指定的流向离开该结点。给流程实例发送命令是由令牌来代理。
当令牌进入结点后,结点会被执和,结点本身负页让流程继续,而让流程继续就是让令牌离开当前结点,每个结点类型可以实现不同的动作来让流程继续。一个结点如果不继续执行则可以看作是一个状态。
动作(Action)是在执行流程的时候事件触发执行的Java代码,图是软件需求的重要表达方式,但是图只是一个软件的视图,它隐藏了许多技术的细节。动作就是把技术细节隐藏在图以外的一种 机制。动作可以装饰图。主要的事件有:进入一个结点,离开一个结点,开始一个流向等。
2流程图
流程定义的基本设施是由结点及流向组成的图。那些信息是由一个叫processdefinition.xml的XML文件来定义的,每个结点有自已的类型,如状态、选择、分支、合并。每个结点有自已的流向集,每个流向有其唯一的名称。如,下面一幅图是一个JBAY拍卖流程的流程图:
下面是其对应的processdefinition.xml
代码
- <process-definition>
-
- <start-state>
- <transition to="auction" />
- </start-state>
-
- <state name="auction">
- <transition name="auction ends" to="salefork" />
- <transition name="cancel" to="end" />
- </state>
-
- <fork name="salefork">
- <transition name="shipping" to="send item" />
- <transition name="billing" to="receive money" />
- </fork>
-
- <state name="send item">
- <transition to="receive item" />
- </state>
-
- <state name="receive item">
- <transition to="salejoin" />
- </state>
-
- <state name="receive money">
- <transition to="send money" />
- </state>
-
- <state name="send money">
- <transition to="salejoin" />
- </state>
-
- <join name="salejoin">
- <transition to="end" />
- </join>
-
- <end-state name="end" />
-
- </process-definition>
<script type="text" />render_code();</script>
3结点
流和图由结点及流向组成,更多的图及执行模型,见第四章,面向图形编程。
结点有类型,结点的类型决定了在运行时,执行进入到一个结点时发生的事情。JBPM有一系列的预置结点类型供我们使用。同时,你可以自已定义自已的结点类型。
3.1结点的责任
结点有两个主要的责任,一,可以执行Java代码,通常这些Java代码与该结点的功能有点,如创建一个任务实例,发送一个通知,更新数据库,二,结点负责传播流程,即使流程可继续执行,概括地说,结点在传播流程时有下面一些选项:
* 1 不传播流程,这种情况下该结点表现为一个等待状态。
* 2 执行其中一个流向,流开当前结点。也就是说令牌在进入该结点的时候被程序要求执行一个流向流开:executionContext.leaveNode(String)。该结点表现为自动结点,它可以执行一些自定义逻辑并且继续流程而不需要等待。
*3 创建新的执行轨迹,结点可以决定创建新的令牌。每一个新令牌代表一个新的执行轨迹且可以在结点的流向中加载。一个好的示例就是分支结点。
*4 执行轨迹的结束点。结点可以决定结束一个执行轨迹。意味着令牌被终止、执行轨迹完成。
*5 通常,结点可以改变流程的整个运行时结构,运行时结构是指包括一系列的品树形分布的令牌。每个令牌代表一条执行轨迹,结点创建或结束令牌,通过流向把令牌放到一个结点
JBPM包括 -- 像所有的工作流和BPM引擎一样-- 一系列的预置的结点类型,有文档描述
它们的配置和行为。但是JBPM和面向图形编程基金会最难得的一点是我们对开发者开放模型,开发者可以自定义结点行为并易于在流程中使用。
传统的工作流和业务流程管理系统很相像的时,他们通常提供合适的结点集合(称为流程语言),他们的流程语言是封闭的,并且执行模型是隐藏在运行环境之后。查找工作流模式结果表明,光有流程语言是不足够的。我们选择一种简单的模型并允许开发者写自已的结点类型。JPDL流程语言是开放的。
分享到:
相关推荐
jbpm流程引擎内核的设计思想是基于Activity Diagram模型的,它使用了基于状态机的执行机制来管理流程实例的执行。jbpm流程引擎内核还提供了许多其他的功能,例如事件处理、组织适配、时间调度、消息服务等。 了解...
jbpm流程设计器是一款强大的工具,专门用于设计和构建jbpm工作流。...在整个过程中,jbpm流程设计器扮演着桥梁的角色,连接了业务分析师和开发人员,降低了业务流程管理的复杂性,提升了企业运营的效率。
2. **流程执行**:JBPM流程引擎负责解析BPMN模型并执行流程实例。它能处理异步任务、并发分支、事件驱动的逻辑以及与外部系统交互等复杂情况。流程实例的执行是基于状态机的,每个步骤代表一个状态,通过事件触发...
**jbpm流程引擎内核详解** jbpm,全称Java Business Process Management,是一款开源的工作流管理系统,用于构建灵活且可扩展的业务流程应用。它基于模型驱动的设计理念,提供了强大的流程建模、执行和监控能力,是...
【MyEclipse6.0下Jbpm流程设计器】是一个专为MyEclipse6.0集成的业务流程管理(Business Process Management,BPM)工具,主要用于设计和管理Jbpm流程。Jbpm是一个开源的工作流和业务流程管理平台,它提供了一套完整...
**JBPM流程框架源码详解** JBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于构建和管理业务流程。它提供了丰富的API、工作流建模工具以及执行引擎,使得开发者能够轻松地实现复杂...
使用JBPM4.4,开发者可以设计复杂的审批流程,例如请假申请、报销审批等,通过图形化的流程设计器(Business Process Designer)创建流程模型。流程中的每个步骤可以关联到一个任务,任务可以分配给不同的角色或用户...
- **部署文件**:`.bar`文件,包含了流程模型和其他相关资源,用于部署到jbpm服务器。 - **源代码**:可能包含Java代码,用于与jbpm引擎交互,如启动流程实例、查询任务等。 - **配置文件**:可能有jbpm的配置文件,...
### JBPM4 PVM的流程定义模型与过程调度 #### PVM的流程定义模型 JBPM4中的流程定义模型基于一套灵活且强大的架构设计,它不仅借鉴了BPEL和BPMN等标准规范,还引入了一系列创新的概念,使得整个模型更加适应现代...
- **流程实例**: 部署的模型可以触发生成流程实例,每个实例代表一次流程执行的过程。 - **监控与跟踪**: JBPM提供了监控工具,可以追踪流程实例的状态,分析性能,帮助优化流程。 综上所述,【JBPM Web流程设计器...
这通常涉及在Eclipse IDE中安装Graphics Process Designer (GPD),这是一个图形化工具,用于设计和编辑JBPM流程模型。GPD的安装过程包括解压JBPM分发包中的`jbpm-gpd-site.zip`文件,并通过Eclipse的插件机制进行...
理解jBPM业务流程模型: 通过一个部门借款流程的例子,我们可以更好地理解jBPM如何表示现实世界的业务流程。流程可能包括如下步骤: 1. 员工发起借款申请。 2. 经理审批申请。 3. 如果经理批准,申请会提交给财务...
jbpm-jpdl-designer-3.0.13 是一个与jbpm相关的软件包,主要功能是提供jbpm流程定义的图形化设计工具。jbpm(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。JPDL(JBoss ...
1. **部署流程定义**:jbpm流程的起点是定义流程模型。这通常通过BPMN2(Business Process Model and Notation)标准来完成,jbpm支持通过图形化工具(如Eclipse BPMN2插件)进行建模。流程定义文件(.bpmn2)需要...
【jbpm流程图状态显示】是关于jbpm工作流管理系统中的一个重要话题,它涉及到如何在图形界面中实时呈现流程实例的状态。jbpm是一款开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在jbpm中,流程图是...
这个类需要实现JBPM的`AssignmentHandler`接口,从而在流程执行过程中动态处理任务的分配。 下面是一个简化的自定义AssignmentHandler的实现步骤: 1. 创建一个类实现`org.drools.process.instance.impl....
1. **流程建模**:jbPM提供了一个名为Business Process Designer(BPD)的工具,用于图形化设计流程模型,包括任务、决策节点、事件等。 2. **部署流程**:设计完成后,将流程模型导出为.bpel或.jpdl文件,然后通过...
1. **流程建模**:JBPM支持BPMN 2.0标准,使得流程设计者可以通过图形化界面创建复杂的业务流程模型。BPMN(Business Process Modeling Notation)是一种国际公认的过程建模语言,可以清晰地表达各种业务流程,包括...
### JBPM流程管理 用户指南知识点解析 #### 一、JBPM简介 JBPM是一个高度灵活且可扩展的工作流管理系统,其核心特色在于提供了一个直观的流程语言,使得开发者能够通过任务、异步等待状态、定时器以及自动化动作等...