1.1 JBPM的应用
JBPM是一个嵌入式的工作流引擎, 它是一个J2SE library,可以嵌入的Java Swing中去,通过扩展,还可部署到J2EE服务器中,作为一个JBPM工作流服务器。
JBPM 的核心功能都在把包到一个jBPM-core.jar库里。它负责在JBPM数据库中部署,更新,重新取回流程的任务。下面介绍JBPM的组成,如图1
图 1 Overview of the JBoss jBPM components
1.1.1 JBPM的由以下组件构成
jBPM-server, 一个配置好的JBOSS服务器,部署了JBPM引擎。
jBPM-designer, 一个图形化流程开发工具,以ECLIPSE插件形式。
jBPM-db, JBPM数据库,把不同数据库的差异都在这个文件下完成。
jBPM, JBPM核心组件,由JBPM core JAR库文件和依赖的库文件组成。
jBPM-bpel, BPEL扩展库。
1.1.2 图形化流程开发工GPD
JBoss jBPM包含了一个图形化设计工具。这个工作用于业务流程的定义。这个图形化设计工具是一以eclipse插件形式出现。独立的设计工具在开发中。这个图形化设计工具的主要功能是用于业务流程的分析和设计。用起来非常简单,在流程定义过程,业务人员只需要通过光标拖拉流程元素就可以定制流程。安装方面,用户只要把 plug-in 和features 文件直接copy 到eclipse目录下面,启动eclipse可以了。如 图3-1 所视。
1.1.3 JBPM组件
JBoss jBPM 核心组件:
JBoss jBPM 核心组件是一些用来管理流程定义和执行流程实例流程环境,的普通J2SE软件。JBoss jBPM是一个java 库。因此他能用于所有java环境,如web应用程序,swing程序,EJB,web服务,jBPM还能打包成一个无状态会话EJB.这些无状态会话EJB能重新写到最新的EJB版本如5.0,以至能人部署到所有J2EE服务器。
JBoss jBPM 核心组件被打包成一个简单的java库文件。根据不同的应用,jBPM-x.x.jar 会依赖于第三方库文件,如 hibernate, dom4j和其它的。在持久化方面,jBPM本身集成了hibernate实现持久化。此外,hibernate 还解决了在不同数据库的SQL差异问题,因此jBPM 能应用到当前所有数据库上。
由于JBoss jBPM 是一个普通的java包,我们可以用不同方法访问或调用JBoss jBPM 的API。例如:web应用程序、EJB、网络服务组件,消息驱动Bean或者其它java组件。
JBPM WEB控制台:
jBPM 的控制台是一个WEB应用。这个控制台主要有三个作用。第一个是作为一个在jBPM上运行的流程与用户交互的用户介面。流程在运行的时候,所分配结人任务都可以通过这个控制台得到,并且完成。第二个就是管理和监控所以在jBPM上运行的流程实例。最后是,可以通过jBPM控制台把定义好的流程部署到引擎。
JBPM 调度器:
在流程执行的过程中,JBoss jBPM调度器是用于监控和执行timers (时间触发者)。Timer及相关的组件被打包在jBPM核心包,可是他要被部署在下面其中一个环境中。一个是配置scheduler servlet产生一个监控线程,另一个是重新启动一个scheduler 的main线程。
JBPM数据库独立包:
JBPM-DB是一个JBPM用于屏蔽各种数据库之间的差异而出现的,它包含了不同数据库的所以信息,驱动器和脚本。
JBPM BPEL扩展:
JBoss jBPM BPEL扩展是支持BPEL语言规范的特殊扩展包,BPEL一个脚本语言,用于网络服务(web service)的编排。
1.1.4 JBPM流程引擎提供三个主要接口
JBPM工作流程引擎提供三个主要接口.分别为:流程定制,流程管理,执行应用的扩展见图2