天天看点

JBPM3中文用户手册——第一章:介绍

[译:liuu   Blog: liuu.iteye.com E-mail: liuu9(a)163.com   欢迎交流指正,保留除复制外的其他权利,本译文尚未征得原文作者同意]

1       介绍

JBoss jBPM是一个灵活的、可扩展的流程语言框架,而jPDL是基于这个公共框架之上的流程语言,这是一种直观的流程语言,它使用任务、异步通讯等待状态、定时器和自动动作等,图形化地表述业务流程。为了将这些操作结合起来,jBPM使用了最强大的和可扩展的流控制机制。

jPDL依赖性极小,可以像使用普通Java库一样使用它。不过,通过部署到J2EE应用服务器集群上,它同样可以在那些需要极限处理能力的苛刻环境下使用。

jPDL可以配置使用任何类型的数据库,并部署到任意的应用服务器上。

1.1    概述

核心的工作流和业务流程管理功能被打包在一个简单的Java库中,这个库为向jBPM数据库中保存、更新和检索流程信息提供服务。

图表 1.1jPDL组件概览

JBPM3中文用户手册——第一章:介绍

1.2    jPDL套件

初学者工具包包含了全部的jBPM组件,并打包在一起方便下载。包括:

l         config:为标准java环境准备的配置文件

l         db:创建数据库结构的SQL脚本

l         designer:图形化编写jpdl流程的eclipse插件

l         doc:用户指南和Javadocs

l         examples:示例

l         lib: jbpm依赖的库

l         server:预安装好的JBoss服务器,包含jbpm的web应用控制台

l         src:jbpm和身份(identity)组件的java源代码

预配置的JBoss应用服务器已经安装如下组件:

l         Web控制台(web console):WAR包,Jbpm管理员和流程参与者,都可以使用这个控制台。

l         作业执行器(job executor),它执行定时器和异步消息。在Web控制台应用中,配置了一个Servlet上下文监听器,用于启动作业执行器,它维护一个线程池,监控并执行定时器和异步消息。

l         Jbpm数据库表:进程内Hypersonic数据库,包含了jBPM的表,

l         示例流程,已部署到jbpm数据库。

l         身份组件,这是Web控制台的一部分。相关的表(以JBPM_ID_为前缀的表)已经在数据库建好。

1.3    jPDL图形化流程设计器

jPDL还包含一套图形化设计工具。这个设计器是一个用于编写业务流程的图形化工具,它是一个Eclipse插件。

图形化设计工具是最重要特征,是它包含对业务分析人员和技术开发人员两方面的工作支持,这使得我们可以平滑地从业务流程建模转化到实际的实现。

这个插件可以通过标准的Eclipse软件更新机制从一个本地更新站点(一个普通zip文件)安装。在JBossTools、JBoss DeveloperStudio和SOA Platform中,也打包了jPDL图形化流程设计器插件。

1.4    jBPM Web控制台

jBPMWeb控制台服务于两个目的。首先,它作为一个主要的用户接口,提供与流程执行过程中产生的运行时任务进行交互的能力;其次,它是一个管理和监控平台,允许查看和操作运行时实例;第三个功能是业务活动监控(Business Activity Monitoring),对流程执行的统计,这些信息,对于管理者找出瓶颈,或做出优化很有用。

1.5    jBPM核心组件

jBPM的核心组件是一个纯Java(J2SE)软件,用于管理流程定义和流程实例执行的运行时环境。

jBPM是一个Java库。因此,它可以在任何java环境中使用,如Web应用、Swing应用、EJB、Web服务等等。jBPM库也可以暴露为无状态会话Bean(SLSB),这样允许集群式的部署和对极端高性能的可伸缩性。无状态会话Bean以J2EE1.4规范编写,因此可以部署到任何标准的应用服务器上。

依据你使用的功能,jBPM核心组件包(lib/jbpm-jpdl.jar)可能依赖某些第三方的库,如hibernate、dom4j等。我们做了极大的努力,让你只在必需的时候,才需要依赖这些库。进步的依赖描述,见“第4章,部署”。

jBPM内部使用Hibernate进行持久。除了传统的对象/关系映射,Hibernate还消除了不同数据库和SQL方言之间的差异,使得jBPM可以跨所有流行数据库移植。

jBPM API可以从你项目里的任意自定义Java程序中访问,比如Web应用、EJB、Web服务组件、消息驱动Bean或其它Java组件。

1.6    jBPM身份标识(identity)组件

JBoss jbpm能够与任何包含用户和其它机构信息的公司目录集成。但为了那些没有简易可用的机构信息组件的项目,jBPM包含了这个组件。这个身份标识组件中使用的模型,较之传统的servlet-、ejb-和portlet模型更丰富。

更多信息见“身份标识组件”一节。

1.7    jBPM作业执行器

作业执行器是一个在标准Java环境下,监控和执行作业的组件。作业用来执行定时器和异步消息。在企业级环境中,JMS和EJB定时器服务也可以用于这个目的。但相对它们,作业执行器可以在没有JMS或EJB的环境下使用。

作业执行器组件打包在核心jbpm-jpdl库中,但它需要部署于下面环境之一:要么在Web应用的部署描述符中,注册作业执行器启动程序(JobExecutorLauncher )Servlet上下监听器,用于在Servlet上下文的创建和销毁时,启动和停止作业执行器;要么启动一个单独的JVM运行作业执行器主程序。