1 介绍:
JBoss jBPM 是一个复杂的可扩展的工作流管理系统. JBoss jBPM 有直观的流程语言来表示商业流程图的术语
比如:任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制.
JBoss jBPM 只有最小的倚赖性可以很容易的作为java库来使用.当然它也可以用在吞吐量极为关键的J2EE 群应用服务器环境中.
JBoss jBPM 可以同任何数据库配置可以部署在任何应用服务器上.
2 面向图的程序设计:
工作流和业务流程管理(BPM)的总体发展来说是极其零碎的.在一些工具,规范和学术界发现很少的统一意见 .传统方法导致笨重的,单系统把大量的功能包含在一个单一的系统中.
Java开发语言中缺少的特性导致在这个范围产生了完整系列的解决方法. 这个文章将标识缺少的特性并且提出一个简单的解决方法让java变成面向图的开发语言.面向图的开发语言可以看作是构造工作流,BPM及流程编排通用构造模块.
面向图的程序设计是解决执行暂停和永久化的问题的技术..因为它的局限范围,这个技术,是容易理解和作为工作流,BPM和流程编排方法功能的建设模块 .
面向图的程序设计中心思想是我们为运行时间的图执行用简单的命令式编程.因此图是软件的一部分并且在运行时间图的执行同解释命令软件紧密偶合的 .
流程图是有节点(nodes)和转换(Transitions)组成.转换(Transitions)有方向并且在图中连接两个节点.
3.流程建模:
流程定义主要基于定向图表示了一个商业流程的规范.图是有节点和转换组成.图中的每个节点都有一个特定的类型. 节点类型定义了运行时间的行为.流程定义有且只有一个开始状态.
动作是在流程执行中在事件上执行的片段java代码. 在社区中有关软件需求方面图是个重要指示.但是图只是一个要生产的软件的视图(投射). 隐藏了需要技术细节. 动作是一种在图形表示之外增加更多技术细节的机制. 一旦图放在某个地方,它可有动作来修饰. 主要事件类型是:(进入节点) entering a node,(离开节点) leaving a node 和(执行转换)taking a transition.
JPDL节点类型:
@ 状态(state)
状态是一个单纯(bare-bones)等待状态. 任务节点的不同是没有任务实例在任何任务清单中建立. 这在流程等待外部系统的时候很有用.
@决策(decision)
实际上有两个方法模拟决策. 明显的区别在于基于"谁"来做决策. 或者有流程来做决策 (读: 在流程定义中指明. 或者用外部的实体提供决策结果.
@分支(fork)
一个分支把一个执行路线分割成多个兵法的执行路线. 默认分支的行为是为每个离开分支转换建立一个子令牌,在令牌要到达的分支之间建立一个父母-子女 关系.
@联合(join)
默认联合(join)假设所有来自同一个父母的子令牌联合.当在上使用fork(分支)这个情形就出现了并且所有令牌分支建立,并且到达同一个联合(join).当全部令牌都进入联合的时候,联合就结束了. 然后联合将检查父母-子女. 当所有兄弟令牌到达联合(join),父母令牌将传播(唯一的)离开转换. 当还有兄弟令牌活动时,联合的行为将作为等待状态.
动作(Actions):
动作是一段java代码,在流程执行有事件时执行. 图在软件需求社区是重要的指示.但是图只是将要生产的软件的一个视图(投射).它隐藏了技术细节. 动作是在图形化表示之外加入技术细节的机制.当一个图被放置,它可以用动作来装饰.