[译:liuu Blog: liuu.iteye.com E-mail: liuu9(a)163.com 欢迎交流指正,保留除复制外的其他权利,本译文尚未征得原文作者同意]
JBoss jBPM是一个灵活的、可扩展的流程语言框架,而jPDL是基于这个公共框架之上的流程语言,这是一种直观的流程语言,它使用任务、异步通讯等待状态、定时器和自动动作等,图形化地表述业务流程。为了将这些操作结合起来,jBPM使用了最强大的和可扩展的流控制机制。
jPDL依赖性极小,可以像使用普通Java库一样使用它。不过,通过部署到J2EE应用服务器集群上,它同样可以在那些需要极限处理能力的苛刻环境下使用。
jPDL可以配置使用任何类型的数据库,并部署到任意的应用服务器上。
核心的工作流和业务流程管理功能被打包在一个简单的Java库中,这个库为向jBPM数据库中保存、更新和检索流程信息提供服务。
图表 1.1jPDL组件概览
初学者工具包包含了全部的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_为前缀的表)已经在数据库建好。
jPDL还包含一套图形化设计工具。这个设计器是一个用于编写业务流程的图形化工具,它是一个Eclipse插件。
图形化设计工具是最重要特征,是它包含对业务分析人员和技术开发人员两方面的工作支持,这使得我们可以平滑地从业务流程建模转化到实际的实现。
这个插件可以通过标准的Eclipse软件更新机制从一个本地更新站点(一个普通zip文件)安装。在JBossTools、JBoss DeveloperStudio和SOA Platform中,也打包了jPDL图形化流程设计器插件。
jBPMWeb控制台服务于两个目的。首先,它作为一个主要的用户接口,提供与流程执行过程中产生的运行时任务进行交互的能力;其次,它是一个管理和监控平台,允许查看和操作运行时实例;第三个功能是业务活动监控(Business Activity Monitoring),对流程执行的统计,这些信息,对于管理者找出瓶颈,或做出优化很有用。
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组件。
JBoss jbpm能够与任何包含用户和其它机构信息的公司目录集成。但为了那些没有简易可用的机构信息组件的项目,jBPM包含了这个组件。这个身份标识组件中使用的模型,较之传统的servlet-、ejb-和portlet模型更丰富。
更多信息见“身份标识组件”一节。
作业执行器是一个在标准Java环境下,监控和执行作业的组件。作业用来执行定时器和异步消息。在企业级环境中,JMS和EJB定时器服务也可以用于这个目的。但相对它们,作业执行器可以在没有JMS或EJB的环境下使用。
作业执行器组件打包在核心jbpm-jpdl库中,但它需要部署于下面环境之一:要么在Web应用的部署描述符中,注册作业执行器启动程序(JobExecutorLauncher )Servlet上下监听器,用于在Servlet上下文的创建和销毁时,启动和停止作业执行器;要么启动一个单独的JVM运行作业执行器主程序。