Chinaunix首页 | 论坛 | 博客
  • 博客访问: 199319
  • 博文数量: 163
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1720
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-08 11:41
文章分类

全部博文(163)

文章存档

2011年(1)

2009年(162)

我的朋友

分类:

2009-07-07 17:39:22

第 2 章 流程虚拟机

  为了通过插件方式容纳多种流程语言和活动,jBPM基于了流程虚拟机。 本质上,流程虚拟机是一个特定的可执行图形的框架。 一个流程定义表现为一个执行流, 它拥有可以表现为图形的一种结构。

  流程虚拟机将流程定义从活动行为中切分了出来。 流程虚拟机从一个活动到下一个获得获取可执行的流程, 并将活动的行为委派给可插拔的Java类。 这里有一个API(ActivityBehaviour)用来作为 流程虚拟机和活动行为代码的接口。像jPDL这类的语言仅仅是 一系列活动行为的实现和解析器。

  

  图 2.1. 流程定义实例

  一般来说流程定义都是静态的。一个流程定义由活动和转移组成。 一个活动运行时的行为被封装在一起, 它是来自流程图形结果的一部分。

  

  图 2.2. 流程结构类图

  流程虚拟机没有包含任何活动实现。 它只提供了执行环境和活动API, 可以当做Java组件来编写ActivityBehaviour的实现。 活动也可以使等待状态。 这意味着活动的控制流会来自于流程系统的外部。 比如一个人工任务或者异步服务调用。当执行处于等待状态, 执行的运行时状态可以保存到一个数据库中。

  一个流程定义可以启动多个执行。 一个执行是一个指向当前活动的指针。

  

  图 2.3. 执行实例

  为了展示执行的同步路径, 这里是一个父子继承关系, 这样一个流程实例可以复制执行的同步路径。

  

  图 2.4. 执行类图

阅读(237) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~