最近在学习jbpm,现关注到概念token和signal
这里搜集了下有以下描述
token:令牌;signal:信令。
token:在jbpm中,一个运行标记token代表一个processDefinintion中的一次执行,它是运行时的概念,用来维护流程设计图中结点的指针。token需要一个信号(signal)来让流程向前执行。当接收到一个signal的时候,token会通过路径(弧transition)离开当前所在的结点到达下一个结点。
ProcessDefinintion代表一个面向图的业务流程定义。在流程定义中,每一个结点的定义都有一个特定的类型,代表着不同的执行功能。如定义中的Start State,这个start state就是一个类型。
ProcessInstance一个流程实例代表某一个流程定义的一次执行。一个流程定义可以有多个流程实例,当一个流程实例创建的时候,该流程的主路径就会随之创建--root token.Root token自然指向开始结点start state。
Action:当一个token进入一个node的时候,这node就会被执行。node本身代表着图执行的行为,当token会触发一些事件,来让一些行为(Action)来执行。Action其实就是一段java代码,只不过需要被特定的事件来触发。因为图式从宏观上去描述一个项目,但具体的细节还是没能显示出来,action就是把一些外围技术引入到图中的方法。
Action可以被定义在一些事件中如进入结点(enter-event),离开结点(leaving-event),已经过弧(taking transition).
jbpm是调用jpdl解释器解释JPDL文件(processDefinition.xml),同时将这个文件转换为processDefinition实例对象。ProcessDefinition拥有与它相关的图对象如node,transition等。JBPM核心库提供对这些实例对象的持久化。在执行的时候,JBPM会生成流程实例类的对象processInstance,它主要由指向processDefinition上结点的指针(token),以及流程实例相关的上下文.在流程实例的执行过程中,jbpm通过token在结点和弧的交替传递来实现。当token到达某个结点的时候,就会触发事先定义在流程定义文件中定义好的事件,以及事件相应动作的执行(如操作DB或者发送e-mail)。token是图执行的路标,它能显示出图执行到哪个结点了,而这个结点就是我们所说的状态。token从一个结点指向下一个结点,流程从一个状态转到另一个状态。而等待,jbpm的每一个等待结点就是一个状态。流程要继续向下执行,就要收到一个signal(),否则将一直等地啊下去,或者某一个触发事件如任务的完成。这些状态将记录在流程实例中,当然也可以把些持久化到介质中。
分享到:
相关推荐
3)当前状态把令牌传给signal中指定的transition 4)transition收到令牌后,不强占,马上把令牌传给下个状态. 5)根据令牌的位置,流程的状态已经发生改变. 3.process definition 一个process definition代表了一个正式...
总结来说,jbpm 提供了一个强大的框架,通过 jPDL 和其核心概念(如 `GraphElement`、`Token` 和 `Signal`)来定义和管理复杂的业务流程。这种模型使得开发者能够灵活地设计和监控业务流程,确保其符合组织的需求和...
在执行过程中,`ProcessInstance`的根令牌(Root Token)会随着流程的进行而移动,通过`signal()`方法触发状态间的转换。当流程到达结束状态时,`signal()`方法将不再阻塞,表明流程执行完毕。 接下来,我们讨论...
3. **令牌(Token)**:表示流程中的执行路径,每当流程实例开始或转移到下一个节点,都会产生或移动令牌。 4. **节点(Node)**:流程中的活动或者决策点,每个节点都有特定的行为。 5. **转换(Transition)**:...
执行过程中,通过调用Token的signal()方法来推进流程状态。 1.2 数据库示例 jBPM的一大特点是能够将流程实例的执行状态持久化到数据库中。在数据库示例中,你会看到如何将流程实例存储到数据库,并了解上下文的概念...
在JBPM中,流程定义通常采用图形化方式表示,基于UML活动图来构建。这种定义方式使得业务人员能够更容易理解和参与到流程的设计中来。 ##### 2. 节点类型 在流程定义中,包含以下几种主要类型的节点: - **开始...
- **轻量级依赖**:JBPM3可以像Java类库一样轻松使用,也可以部署在J2EE集群环境中。 3. **核心概念**: - **流程定义(Process Definition)**:流程的整体蓝图,包括各个节点和转换,以XML形式存储。 - **流程...
尽管JBPM并不完全符合WFMC(Workflow Management Coalition)的工作流标准,但其功能和灵活性仍使其在流程开发领域中占据一席之地。 【基本概念解析】 1. **工作流引擎(Engine)**:是JBPM的核心组件,负责创建...
import org.jbpm.graph.exe.Token; import junit.framework.TestCase; public class JbpmTest extends TestCase{ public void testbushu() throws Exception{ //1.获取sessionFactory JbpmConfiguration ...
本文通过对jBPM小白的学习日记中的示例代码进行分析,深入介绍了jBPM中流程定义的部署与获取方法,以及后端数据库的操作流程。对于初学者而言,理解这些基础知识是非常重要的。通过实际编写代码并观察其运行结果,...
6. **流程实例与令牌**:在jbpm中,每个流程实例都有一个唯一的令牌(Token)来跟踪当前执行的位置。通过调用`signal()`方法,可以推进流程到下一个节点。 7. **单元测试**:为了验证流程定义的正确性,可以编写...
流程定义XML文件中的配置显示了TaskNode的设置,如`create-tasks="false"`和`signal="last-wait"`,以及包含的Task节点及其描述。此外,还有事件的定义,如process-start和process-end事件,它们分别在流程开始和...
5. **任务(Task)**:流程中的可执行单元,需由参与者完成。 6. **任务实例(Task Instance)**:实际执行的任务,每个任务实例对应参与者需处理的具体内容。 7. **流转(Transition)**:连接流程节点,指导流程...
1. **启动JBPM Designer**:在解压后的`designer`文件夹中,找到并双击`designer.bat`文件以启动Eclipse。 2. **创建新的工程**:在Eclipse中,选择`File > New > Other...`,然后选择`jBoss > jbpm process project...
9. **信号(Signal)**: 用于触发流程流转的事件标志。 10. **工作列表(Worklist)**: 显示给参与者待处理任务的列表,如待办事项。 **JBPM开发环境搭建** 要开始使用JBPM,首先需要从官方网站下载开发套件,其中...
- 在测试方法中调用`signal()`方法触发流程的执行,模拟节点间的转移,打印出当前节点名称,以验证流程的正确运行。 运行`Test.java`,你将看到输出: ``` 1 开始 2 毛亮 3 结束 ``` 这表明流程按照预期从开始节点...