JBoss jBPM 3.0
JBoss jBPM 3.0工作流和业务流程管理的具体实现
目录
第一章 绪论
JBoss jBPM 是一个灵活的,易扩展的工作流管理系统。JBoss jBPM有一套直观的流程建模语言,这套语言能用任务(task),异步通信的等待状态(wait state ),定时器(timer),自动化的动作(automated action)等来图形化的表示业务流程。为了把这些操作集成在一
起,JBoss jBPM拥有强大的,易扩展的控制流程机制。
JBoss jBPM对外依赖程度很小,你完全可以像用java的类库一样用它。并且它也可以被部署在高性能的J2EE集群应用服务器上。
JBoss jBPM能配置在任何数据库上,并且能被部署在任何的应用服务器上。
1.1 总览
工作流和业务流程处理功能的核心部分被打包成一个简单的java类库。这个类库包括了这样一个服务:流程信息的存储,更新,和从数据库中重新取回。
图1.1:JBoss jBPM组成模块的概略图
1.2 JBoss jBPM starter kit
starter kit是一个包含jbpm所有模块的下载包。这个下载包中包括以下模块:
· jbpm-server, 一个预选配置好的jboss应用服务器。
· jbpm-designer, 图形化定制流程的eclipse插件。
· jbpm-db, jBPM的数据库兼容包 (见后边论述)。
· jbpm, jbpm的核心模块,其中包括libs文件夹和这个用户说明。
· jbpm-bpel, JBoss jBPM对BPEL扩展的一些参考资料
预先配置好的JBoss应用服务器具有如下组成部分:
jBPM核心模块,被打包成一个用于提供服务的存档文件
带有jbpm表的集成数据库:默认的hypersonic数据库拥有jbpm表,并且这个表已经拥有一个流程了。
Jbpm的web控制台,它既可以被Jbpm管理员用也可以被流程的参与者使用。
执行定时器的Jbpm的调度程序,这个调度程序在starter kit里边被配置成一个servlet。这个servlet会产生一个新的线程来监视和执行定时器。
一个具体流程的例子,它已经被部署在jbpm数据库中了。
1.3 JBoss jBPM 流程图形定制器
JBoss jBPM还拥有一套图形化的设计工具。这个设计器是一个图形化的业务流程定制工具。
JBoss jBPM流程图形定制器是eclipse的一个插件。单独安装这个定制器非常简单。
这个图形设计器最重要的特性是:业务分析人员也能像技术开发人员一样用它来完成任务。这使得业务流程建模能平滑的转换到具体技术实现。
这个插件可以利用eclipse的一般升级机制通过一个升级站点得到安装(zip文件格式)。也可以通过解压一个特定的包到eclipse的安装目录来安装此插件。
1.4 JBoss jBPM的核心模块
JBoss jBPM的核心模块是一个用来管理流程定义和流程实例的执行环境的普通java程序。
JBoss jBPM是一个java类库。所以它可以被用在任何java环境中,比如:web应用程序,swing应用程序,EJB,web service……。JBPM类库还可以被打包并被当成无状态会话EJB(stateless session EJB)使用。这样可使它被部署在集群上并且适应高性能应用。这些无状态会话EJB必须符合J2EE1.3规范这样才能使它可以被部署在任何应用服务器上。
JBoss jBPM的核心模块被打包成一个简单的java库文件。依你功能的需要,jbpm-3.0.jar这个库文件对一些第三方的类库比如hibernate, dom4j有所依赖。这些依赖在第五章(部署)中作了详细的说明。
至于持久化,JBPM在内部用了hibernate。除了传统的O/R映射功能,hibernate还解决了不同数据SQL dialect差异的问题,这使得JBPM能适应现在所有的数据库。
JBoss jBPM API可以被你工程中任何的java代码调用,比如,你的web应用程序,EJB,web service 模块,消息驱动bean或其它任何java模块。
1.5 JBoss jBPM web应用程序的控制台
jBPM web应用程序的控制台提供两种服务。首先,它被用来当作一个用来和流程执行过程中产生的任务进行交互的主要用户接口,其次,它还是一个用来检查和操作运行实例的管理和监控平台。
1.6 JBoss jBPM人员组织模块
JBoss jBPM可以和任何包括人员和其他组织信息的公司结构集成在一起。但是对那些组织结构信息模块很难获取的项目,JBoss jBPM提供了这个模块。这个模块使用的模型要比传统的servlet, ejb,portlet模型丰富的多。
更多信息,请参照第九章第九节 人员组织模块
1.7 JBoss jBPM调度程序
JBoss jBPM调度程序是一个用来监测和执行在流程执行过程中设置的定时器的模块。
定时器模块被打包在jbpm的核心包中,但是它必须被部署在以下环境中:或者你必须订制一个调度servlet,它来产生一个监测线程,或者你必须启动一个单独的JVM来执行调度程序。
1.8 JBoss jBPM 数据库兼容包
JBoss jBPM 数据库兼容包是一个下载包,它包括所有的资料,drivers和scripts,用这些你可以使jbpm运行在你选择的数据库上。
1.9 JBoss jBPM BPE的扩展
JBoss jBPM BPE的扩展是一个为了支持BPEL独立的扩展包。BPEL的本质就是一组用来参照别的web service写web service的xml脚本语言。