http://hi.baidu.com/shirdrn/blog/item/a203de6039d2a7d98db10dd7.html
jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,它使用要遵循 Apache License。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。随着jBPM加入JBoss组织,jBPM也将进入一个全新的发展时代,它的前景是十分光明的。
jBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process Definition Language (jPDL)。jPDL认为一个商务流程可以被看作是一个UML状态图。jPDL就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。
jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据持久层解决方案。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。
关于jPDL
jPDL(JBoss jBPM Process Definition Language)是构建于jBPM框架上的流程语言之一。在jPDL中提供了任务(tasks)、待处理状态 (wait states)、计时器(timers)、自动处理(automated actions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。
jPDL可以部署于Java语言的任何应用环境下,JavaSE Application(Swing/SWT)、JavaEE Application(Application Server) 。
jPDL分发包的组成
目前jPDL的最新版本是3.2.3,通过http://labs.jboss.com/jbossjbpm/jpdl_downloads/可以获得官方下载包。下载包分为两种,一种是标准包(jbpm-jpdl-3.2.3.zip);一种是套件包(jbpm-jpdl-suite-3.2.3.zip)。两者最大的区别是套装包自带一个已经配置好的jboss服务,下载解压缩后,可直接运行。
(1)jPDL的核心程序包(jbpm-jpdl.jar)
它是一个典型的jar文件,它涵盖对流程定义和运行时流程实例上下文环境的操作API。在最简化的业务流程样例中,jPDL将流程定义存储与XML格式的定义文件中,在运行时载入内存,在内存里记录完整的业务实例和执行过程的环境变量,并完成全部操作。显然,在实际应用中,流程信息必须被持久化的存储于数据库中。jPDL使用了Hibernate作为其对象持久化的API。
(2)Graphical Process Designer插件(jbpm-jpdl-designer-3.1.2.zip)
它是一个基于Eclipse的图型编辑插件。使用它可以对业务流程进行可视化的定制,而无须手动编辑XML文件。该插件还提供了流程定义上传功能,可以将新定义的流程发布到在线运行的jPDL系统上。
(3)jPDL身份包(jbpm-identity.jar)
它是jPDL的一个轻量级扩展包,简单实现了组Group、用户User、许可权Permission等用户身份认证和鉴权机制。如果您的应用环境只需要简单的用户认证鉴权管理,那么它十分适合您。
(4)jPDL Web控制台(jbpm-console.war)
它是一个标准Web应用(使用了JSF技术),提供了对jPDL平台执行情况的监控程序(对jPDL数据库的监控)。管理员可以通过该程序方便的维护jPDL的数据库,管理流程定义和流程实例的执行情况。同时,它还提供了一个简单的Getting started DEMO,方便初学者了解jPDL。
jbpm-jpdl-suite-3.2.3.zip压缩包组成
在解压jbpm-jpdl-suite-3.2.3.zip后,会看到很多目录,如下所示:
(1)config目录
该目录存放了jPDL的默认配置文件 ,包括hibernate.cfg.xml 、jbpm.cfg.xml(jPDL的主配置文件,默认是空的)、jbpm.mail.templates.xml(邮件模板配置文件)、log4j.properties(日志配置文件)
(2)db目录
该目录存放了jPDL针对不同数据库的表初始化sql文件。这里要说的是,jbpm.jpdl.mysql.sql在MySql下批量运行时,会出现错误提示,原因是语句后缺少”;”号,需要修订后才能使用。
(3)designer目录
该目录存放了GPD(Graphical Process Designer)插件。
(4)examples目录
该目录存放了jPDL的简单范例。
(5)doc目录
该目录存放jPDL 的相关说明文档,包括用户指南、Java API文档等。
(6)server目录
该目录存放了配置好的jBoss和控制台程序,Windows下双击start.bat可立即执行。数据库使用HSQL,存放于/server/server/jbpm/data下。
(7)src目录
该目录下存放的是源代码,可以通过查看代码来了解其具体实现,有助于增强理解。
(8)deploy目录
该目录下面包含3个war包:jbpm-console.war、jbpm-enterprise.ear、jbpm-mail.war。
(9)lib目录
该目录中存放了支持的jar包。