jbpm的Token,node

原创 2006年05月18日 10:40:00

Token

jbpm中最重要的概念,应该是令牌(Token)和信令(Signal)

在整个流程实例运行过程中,我们可以迅速的利用token得到其当前的current state。在解决“并行”等(比如Fork)问题时,jBpm让Token对象维护了父子关系,这种关系在涉及到Fork的时候会产生。 jBpm让Token这个对象身兼了多种使命:(1)快速定位current state (2)用于fork,join算法 (3)用于告知任务执行者的任务索引。

如下代码:

//pd是process definition,pi是process instance ProcessInstance

pi = new ProcessInstance( pd );

//得到根令牌

Token token = pi.getRootToken();

//发信令

token.signal();

Token的signal方法也可以传入transition参数,这个方法把信令发送给Token,这样,令牌将被激活,并沿指定的transition离开当前的状态(如果没有指定transition,将沿缺省的transition 离开当前状态).

jbpm是怎么实现的呢?其实很简单:

1)Token记录了当前的状态(current state),只有当前的状态(或称节点)拥有该令牌

2)向TOKEN发signal后,当前状态收到该signal

3)当前状态把令牌传给signal中指定的transition

4)transition收到令牌后,不强占,马上把令牌传给下个状态.

5)根据令牌的位置,流程的状态已经发生改变.

 

node

 

一个流程图由许多node和transition组成。每个node都有一种类型,这个类型决定了当流程执行到这个node时的不同行为。jbpm有一组node type可以供你选择,当然你可以定制自己node 。
node的作用
node有两个主要的作用:
1)执行java代码,比如说创建task instance(任务实例)、发出通知、更新数据库等等。很典型的就是在node 上挂上我们的action
2) 控制流程的执行:
A、等待状态
流程进入到这个node时将处于等待状态,直到一个signal 的发出
B、流程将沿着一个leaving transition越过这个node
这种情况特殊一点,需要有个action挂在这个node上(注意这个action不是event触发的!),action中将会调用到API里
executionContext.leaveNode(String transitionName),transitionName即这里的leaving transition名字。
C、创建新的执行路径
很典型的就是fork node。流程在这里会分叉,产生新的执行路径。这样就创建了新的token,每个新的token代表一个新的执行路径。注意的是,这些新的token和产生前的token是父子关系!
D、结束执行路径
一个node可以结束一条执行路径,这同样意味着相应的token的结束和流程的结束。

相关文章推荐

J2EE实战视频教程:基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目

基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目《财务预算系统》开发全程实录 适合人群:初级 课时数量:150课时 用到技术: nodejs SSH jschart...

SSH2+LigerUI+JBPM5+Node.js实战开发视频教程

基于SSH2+LigerUI+JBPM5+Node.js技术实现大型J2EE金融行业财务预算系统 (第三季适合二年以上的开发者) 课程分类:Java框架 适合人群:中级 课时数量:51课时 用...

node搭建微信平台(三)-获取access_token

这篇文章我们就说说node是如何获取access_token的。我们先说说根据微信公众平台文档获取access_token 的具体步骤。 首先我们需要appID, appsecret这两个信息。 接着...

Bmob+融云,node.js获取token

在Bmob后台创建云端代码:function onRequest(request, response, modules) {var userId = request.body.userId; var ...

2.Node.js access_token的获取、存储及更新

文章目录:         1.Node.js 接入微信公众平台开发 一、写在前面的话  上一篇文章中,我们使用 Node.js 成功的实现了接入微信公众平台功能。在这篇文章中,我们将实现微信公...

用 node 实现仿微信风格的 token 获取接口

流程图依赖项"dependencies": { "express": "^4.12.3", "jsonwebtoken": "^5.0.0", "mongoose": "^4....

jave token 认证(JWT)

  • 2017年08月08日 17:54
  • 1.87MB
  • 下载

jbpm各种触发节点基础

对jBPM来讲,工作流由一些节点和用户定义的Hander组成。一个工作流从start-state开始,中间经过若干个节点(state、fork、milestone、process-state、deci...

Redis+接口+token+Sign+时间戳 Demo

  • 2017年03月24日 16:15
  • 5.68MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jbpm的Token,node
举报原因:
原因补充:

(最多只允许输入30个字)