项目终于上线了,终于不用天天加班了,于是拿出时间来翻译了下jBPM4.0的文档。根据自己理解翻译的,如果有句子不通顺或者理解有问题的地方,大家可以踊跃提出。
第 1 章 导言
1.1. 许可证与最终用户许可协议
jBPM是依据GNU Lesser General Public License(LGPL)和JBoss End User License Agreement(EULA)中的协议发布的,请参考 the full LGPL license text和the full End User License Agreement。
1.2. 下载
可以从sourceforge上下载发布包http://sourceforge.net/project/showfiles.php?group_id=70542&package_id=268068。
1.3. 源码
可以从jBPM的SVN仓库里下载源代码https://anonsvn.jboss.org/repos/jbpm/jbpm4/。
1.4. JAVA虚拟机的版本
jBPM需要JDK(标准java)5以上的版本,你可以从这里下载:http://java.sun.com/javase/downloads/index.jsp
1.5. 什么是jBPM
jBPM是一个可扩展、灵活的流程引擎,它可以运行在独立的服务器上或者嵌入任何Java应用中。jBPM可以执行多种流程语言并且支持多种执行模式。
1.6. 文档内容
在这个用户指南里,我们将介绍在持久执行模式下的jPDL流程语言。持久执行模式是指流程定义、流程执行以及流程历史都保存在关系数据库中,这是jBPM通常使用的方式。
这个用户指南介绍了jBPM中支持的使用方式.开发指南介绍了更多的、高级的、定制的、没有被支持的选项.
TODO(想要做还未做的)?解释一下上文的"支持"?难道用户不应该搞清楚它是不是可以更好扩展?他们可以使用扩展,但是没办法保证完全稳定?END TODO
1.7. 流程定义,流程实例和执行
流程定义是针对过程中每一步的描述,例如,有一家保险公司,就有一个描述那家公司处理贷款请求的贷款流程定义。
贷款流程定义的示例
图 1.1. 贷款流程定义的示例
流程实例代表着流程定义的特殊执行例子,例如:上周五John Doe提出贷款买船,代表着一个贷款流程定义的流程实例。
一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前流向(execution)的指针。
贷款流程实例的例子
图 1.2. 贷款流程实例的例子
假设汇款和存档可以同时执行,那么主流程实例就有2个流向用来跟踪状态:
贷款执行例子
图 1.3. 贷款执行例子
一般情况下,一个流程实例是一个执行树的根节点,当一个新的流程实例启动时,实际上流程实例就处于根节点的位置,这时只有它的"子节点"才可以被激活。
使用树状结构的原因在于,这一概念只有一条执行路径,使用起来更简单。业务API不需要了解流程实例和执行之间功能的区别。因此,API里只有一个执行类型来引用流程实例和执行。