深入浅出jBPM(jBPM专家力作,涵盖jBPM 3和jBPM 4)
基本信息
编辑推荐
jBPM专家、知名基础软件平台提供商上海锐道信息技术有限公司技术总监高杰力作
JavaEye社区的众多jBPM爱好者推荐 实例贯穿全书始终,在动手实践中掌握jBPM
目前国内第一本关于jBPM的专业书籍
内容简介回到顶部↑
本书是一部实用的jbpm 入门教程。全书分两大部分。第一部分以jbpm 3.2.3 为例,讲述了jbpm 的基本概念、任务调度和异步的基本实现原理以及常用的开发和使用技巧等,并通过两个流程实例来讲解jbpm 在实际开发中的使用方式;第二部分以jbpm 4.0 alpha2 版本为基础,介绍最新的jbpm 4 的基本使用方法。.
本书深入浅出,示例丰富,实用性强,适合有一定java 基础的读者阅读。..
近十年来,工作流系统在国内已经得到较广泛的应用,jbpm就是其中之一。jbpm是一款功能强大、小巧灵活的开源工作流产品,主要应用于基于j2ee的b/s系统。如果你正在进行基于j2ee的b/s系统开发,需要使用工作流技术来解决系统中的问题,但又没有合适的解决 方案,那么jbpm可能非常适合。
本书由jbpm方面的专家高杰根据自己的经验编写,是一本实用的jbpm教程。全书分两个部分,第一部分详细讲 解jbpm 3.2,第二部分介绍jbpm 4。作者从初学者的角度由浅入深地介绍jbpm的基本知识、使用方法及相关的使用技巧。书中没有高深难懂的技术语言,也没有太多的技术理论,所有的功能介绍都是以例子的形式呈现,读者可以边看边做,在动手实践中理解jbpm实现机制、运行原理及使用方法。...
本书深入浅出,示例丰富,实用性强,适合有一定java 基础的读者阅读。..
近十年来,工作流系统在国内已经得到较广泛的应用,jbpm就是其中之一。jbpm是一款功能强大、小巧灵活的开源工作流产品,主要应用于基于j2ee的b/s系统。如果你正在进行基于j2ee的b/s系统开发,需要使用工作流技术来解决系统中的问题,但又没有合适的解决 方案,那么jbpm可能非常适合。
本书由jbpm方面的专家高杰根据自己的经验编写,是一本实用的jbpm教程。全书分两个部分,第一部分详细讲 解jbpm 3.2,第二部分介绍jbpm 4。作者从初学者的角度由浅入深地介绍jbpm的基本知识、使用方法及相关的使用技巧。书中没有高深难懂的技术语言,也没有太多的技术理论,所有的功能介绍都是以例子的形式呈现,读者可以边看边做,在动手实践中理解jbpm实现机制、运行原理及使用方法。...
作译者回到顶部↑
目录回到顶部↑
第一部分 jbpm 3.2 .
第1章 helloworld 2
1.1 下载开发套件 2
1.2 安装流程设计器 7
1.3 jbpm版helloworld 10
1.3.1 创建helloworld流程 13
1.3.2 设计流程图 15
1.3.3 测试helloworld流程 16
第2章 jbpm基础 19
2.1 jbpmconfiguration和jbpmcontext 19
2.1.1 jbpmconfiguration 19
2.1.2 jbpmcontext 21
2.2 构建jbpm数据库 27
2.3 流程发布 29
2.4 模板与实例 35
2.5 版本 37
2.6 token 37
2.7 流程上下文 40
2.8 jpdl表达式 43
2.9 动作 46
第1章 helloworld 2
1.1 下载开发套件 2
1.2 安装流程设计器 7
1.3 jbpm版helloworld 10
1.3.1 创建helloworld流程 13
1.3.2 设计流程图 15
1.3.3 测试helloworld流程 16
第2章 jbpm基础 19
2.1 jbpmconfiguration和jbpmcontext 19
2.1.1 jbpmconfiguration 19
2.1.2 jbpmcontext 21
2.2 构建jbpm数据库 27
2.3 流程发布 29
2.4 模板与实例 35
2.5 版本 37
2.6 token 37
2.7 流程上下文 40
2.8 jpdl表达式 43
2.9 动作 46
前言回到顶部↑
最早接触jBPM应该是在2006年末的时候,那时出差到乌鲁木齐参与一个项目,开始了解jBPM。记得当时的jBPM版本还是3.0,学习的资料只有随jBPM 3.0开发套件一起提供的一份参考指南和一个示例包。不过因为在这之前有过IBM WPS(WebSphere Process Server)的使用经验,而jBPM和WPS虽然是不同标准的工作流产品,但其实现思想基本一致,所以从零开始学习jBPM的难度并不是很大。.
回上海之后,公司就参与了一个包含流程需求的项目。因为我在jBPM方面有技术储备,所以就顺理成章地成了这个项目中工作流模块的负责人,负责用jBPM实现这个工作流模块的流程需求。这是我做的第一个jBPM工作流项目,虽然需求很复杂,但最终还是全部顺利地实现了。项目完成之后,积累了不少关于jBPM流程引擎的实战经验,体验到了jBPM的强大功能,也进一步加深了对它的理解。那时的jBPM版本已经更新到了3.1。在随后的一系列项目中,考虑到其成本优势,有些客户也指定使用jBPM。目前的版本已经更新到了4.0。
目前业界的工作流产品实现主要遵循两个标准:BPEL和WfMC。BPEL的全称为Business Process Execution Language(业务流程执行语言),像IBM、Oracle、BEA这些软件巨头都比较推崇BPEL标准,他们的工作流产品也都实现了BPEL标准;WfMC的全称为Workflow Management Coalition(工作流管理联盟),采用该标准的工作流产品在国内是比较多的,比如西安协同的SynchroFlow工作流、杭州信雅达的SunFlow等。BPEL与WfMC两个标准的内容既有重叠部分又各有侧重,比如BPEL标准所关注的焦点是在ESB(Enterprise Service Bus,企业服务总线)之上进行服务编排,而WfMC标准更关注人机交互。国内的工作流应用需求以人机交互类型的居多,也许是因为这个原因,所以国内厂商的工作流产品多采用WfMC标准实现。
jBPM是一款开源的工作流产品,它没有采用BPEL或WfMC标准去实现流程引擎,采用的是一种轻量级的XML结构的流程描述语言JPDL(jBPM Process Definition Language)。相比WfMC和BPEL两种标准而言,JPDL语言更加简单,也更容易读懂。
jBPM使用Hibernate作为持久层工具,它可以在Oracle、DB2、Sybase、Microsoft SQL Server、MySQL和Informix等常用的主流数据库下使用。jBPM是一款功能强大、小巧灵活的工作流引擎,它既可以以嵌入式模式与我们的业务模块运行在同一个应用之内,也可以以独立的模式单独运行在一个应用当中。当需要采用嵌入式的方式将jBPM与J2EE工程结合使用时,只需要将jBPM相关的jar文件和几个配置文件放在工程里就可以使用jBPM流程引擎,而不需要额外配置一个流程服务器。当需要以独立的模式运行jBPM流程引擎的时候,我们需要编写一些对外提供jBPM流程服务的无状态的SessionBean或WebService(在这些无状态的SessionBean或WebService当中封装了jBPM的常用操作),然后以一个EJB组件或应用的方式将其部署到应用服务器当中。客户端可以在需要的时候通过远程调用这些无状态的SessionBean或WebService来使用jBPM流程引擎。
jBPM使用的是LGPL协议。开源协议有很多种,LGPL是其中之一。LGPL是一个为类库使用而设计的开源协议,它允许商业软件通过类库引用(link)方式使用LGPL类库,而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。但是如果修改LGPL协议的代码或者衍生代码,则所有修改的代码、涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础、通过修改和衍生的方式做二次开发的商业软件采用。所以你完全可以不修改jBPM的源代码,直接将其使用在自己的商业软件当中。
jBPM是一种基于Java语言实现的工作流产品,它的主要使用场合为基于J2EE的B/S系统(当然,如果我们需要在基于Java的C/S环境中使用jBPM也是完全可行的)。如果你正在进行基于J2EE的B/S系统开发,需要使用工作流技术来解决系统中的问题,同时目前还没有合适的解决方案,那么jBPM可能非常适合。在学习本书之前,你需要具备J2EE的基本开发技能:知道如何搭建J2EE应用、如何编写JSP、如何编写Servlet、如何通过JDBC访问数据库、如何将J2EE应用发布到Tomcat或JBoss环境之下。同时因为jBPM的持久层是通过Hibernate实现的,所以如果你对Hibernate有所了解或曾有过Hibernate使用经验,那就更好了。..
本书结构和主要内容
本书内容分两个部分:第一部分介绍jBPM 3.2,第二部分介绍jBPM 4。因为jBPM 4与jBPM 3.2在使用当中有很大的不同,所以有必要分两个部分分别予以介绍。jBPM 3.2这个版本是目前用得最多、最稳定的一个版本;jBPM 4架构在全新的PVM(Process Virtual Machine,流程虚拟机)之上,基本上算是抛弃了jBPM 3及以前版本的实现方式,在全新的PVM环境当中,不仅可以运行JPDL语言编写的流程模板,还可以支持包括BPEL在内的其他多种流程语言。目前jBPM 4的版本还处于Alpha阶段,在流程设计器和产品本身还存在大量的bug和需要完善的地方,因此离应用到生产环境还有一定的距离。因为目前只有jBPM 3.2可以应用到生产环境当中,所以jBPM开发小组会同时维护jBPM 3.2和jBPM 4两个版本。随着jBPM 4的不断完善,相信在一年后或更短时间内,jBPM 4会发布正式版,那时我们就可以将jBPM 4用到生产环境当中。
不管是jBPM 3.2还是jPBM 4,本书都会进行详细的讨论。第一部分介绍的jBPM 3.2适用于所有的3.2.x版本(目前最新版本为3.2.6.SP1),在讲解jPBM 3.2的时候,我们使用jBPM的嵌入式运行方式来介绍jBPM的基本概念及常用开发技巧,在第9章当中,我们将用一整章的篇幅来讨论jPBM 3.2的独立模式运行方法及其原理。在第二部分介绍jBPM 4的时候我们也是采用嵌入式的方法进行讲解,对于jBPM 4独立运行模式的实现方法,读者可以参照jBPM 3.2的实现方式。
由于目前jBPM 4还处于Alpha2版本状态,所以能介绍的内容不是很多,如果只是想了解jBPM 4,那么这些内容就已经足够了。本书按照由浅入深的顺序来安排内容。在介绍jBPM 3.2的时候先通过一个helloworld示例让读者了解其概貌,再深入局部细节。在讲解细节时辅以适当的测试代码和说明文字,使读者可以深刻理解其原理,最后通过两个大的流程实例开发讲解jBPM在实际开发中的使用方式,使读者最终对jBPM流程引擎了如指掌,能够游刃有余地使用它。对于jBPM 4的介绍也是采用类似的方式,不过因为很多概念在讲解jBPM 3.2的时候已经介绍过了,所以内容相对简略。
第一部分
入门
第1章为jBPM入门,详细介绍了jBPM开发套件的下载、流程设计器的安装、流程项目的创建、最简单的helloworld的开发及测试方法等,引导读者了解设计、开发和测试一个流程的基本过程,体会流程的基本功能。
jBPM的基本知识
第2章到第5章介绍jBPM基本知识和基本概念。通过这四章内容读者可以了解流程引擎通用的基本概念——流程模板、流程实例、任务和任务实例等;了解jBPM中各个流程节点的含义及使用方法;了解jBPM任务调度和异步的基本实现原理和方法;了解设计、开发和测试流程的方法。
流程实例开发演示
第7章通过讲解实际工作当中两个比较常用的流程实例来说明jBPM在实际开发中的使用方式。这一章介绍了如何搭建一个支持jBPM的应用,如何在该应用当中设计、开发、测试和部署流程引擎。在介绍实例的同时还讲解了如何获取当前流程进度图、如何对流程进行监控以及如何删除一个正在运行中的流程实例等。
开发技巧
第8章介绍了在实际流程开发当中诸如动态设置任务参与者、会签、传阅和子流程并行等常见需求在jBPM中的实现方式,讲解的过程中都辅以适当的测试代码来验证设计开发方式的可行性与正确性。
回上海之后,公司就参与了一个包含流程需求的项目。因为我在jBPM方面有技术储备,所以就顺理成章地成了这个项目中工作流模块的负责人,负责用jBPM实现这个工作流模块的流程需求。这是我做的第一个jBPM工作流项目,虽然需求很复杂,但最终还是全部顺利地实现了。项目完成之后,积累了不少关于jBPM流程引擎的实战经验,体验到了jBPM的强大功能,也进一步加深了对它的理解。那时的jBPM版本已经更新到了3.1。在随后的一系列项目中,考虑到其成本优势,有些客户也指定使用jBPM。目前的版本已经更新到了4.0。
目前业界的工作流产品实现主要遵循两个标准:BPEL和WfMC。BPEL的全称为Business Process Execution Language(业务流程执行语言),像IBM、Oracle、BEA这些软件巨头都比较推崇BPEL标准,他们的工作流产品也都实现了BPEL标准;WfMC的全称为Workflow Management Coalition(工作流管理联盟),采用该标准的工作流产品在国内是比较多的,比如西安协同的SynchroFlow工作流、杭州信雅达的SunFlow等。BPEL与WfMC两个标准的内容既有重叠部分又各有侧重,比如BPEL标准所关注的焦点是在ESB(Enterprise Service Bus,企业服务总线)之上进行服务编排,而WfMC标准更关注人机交互。国内的工作流应用需求以人机交互类型的居多,也许是因为这个原因,所以国内厂商的工作流产品多采用WfMC标准实现。
jBPM是一款开源的工作流产品,它没有采用BPEL或WfMC标准去实现流程引擎,采用的是一种轻量级的XML结构的流程描述语言JPDL(jBPM Process Definition Language)。相比WfMC和BPEL两种标准而言,JPDL语言更加简单,也更容易读懂。
jBPM使用Hibernate作为持久层工具,它可以在Oracle、DB2、Sybase、Microsoft SQL Server、MySQL和Informix等常用的主流数据库下使用。jBPM是一款功能强大、小巧灵活的工作流引擎,它既可以以嵌入式模式与我们的业务模块运行在同一个应用之内,也可以以独立的模式单独运行在一个应用当中。当需要采用嵌入式的方式将jBPM与J2EE工程结合使用时,只需要将jBPM相关的jar文件和几个配置文件放在工程里就可以使用jBPM流程引擎,而不需要额外配置一个流程服务器。当需要以独立的模式运行jBPM流程引擎的时候,我们需要编写一些对外提供jBPM流程服务的无状态的SessionBean或WebService(在这些无状态的SessionBean或WebService当中封装了jBPM的常用操作),然后以一个EJB组件或应用的方式将其部署到应用服务器当中。客户端可以在需要的时候通过远程调用这些无状态的SessionBean或WebService来使用jBPM流程引擎。
jBPM使用的是LGPL协议。开源协议有很多种,LGPL是其中之一。LGPL是一个为类库使用而设计的开源协议,它允许商业软件通过类库引用(link)方式使用LGPL类库,而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。但是如果修改LGPL协议的代码或者衍生代码,则所有修改的代码、涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础、通过修改和衍生的方式做二次开发的商业软件采用。所以你完全可以不修改jBPM的源代码,直接将其使用在自己的商业软件当中。
jBPM是一种基于Java语言实现的工作流产品,它的主要使用场合为基于J2EE的B/S系统(当然,如果我们需要在基于Java的C/S环境中使用jBPM也是完全可行的)。如果你正在进行基于J2EE的B/S系统开发,需要使用工作流技术来解决系统中的问题,同时目前还没有合适的解决方案,那么jBPM可能非常适合。在学习本书之前,你需要具备J2EE的基本开发技能:知道如何搭建J2EE应用、如何编写JSP、如何编写Servlet、如何通过JDBC访问数据库、如何将J2EE应用发布到Tomcat或JBoss环境之下。同时因为jBPM的持久层是通过Hibernate实现的,所以如果你对Hibernate有所了解或曾有过Hibernate使用经验,那就更好了。..
本书结构和主要内容
本书内容分两个部分:第一部分介绍jBPM 3.2,第二部分介绍jBPM 4。因为jBPM 4与jBPM 3.2在使用当中有很大的不同,所以有必要分两个部分分别予以介绍。jBPM 3.2这个版本是目前用得最多、最稳定的一个版本;jBPM 4架构在全新的PVM(Process Virtual Machine,流程虚拟机)之上,基本上算是抛弃了jBPM 3及以前版本的实现方式,在全新的PVM环境当中,不仅可以运行JPDL语言编写的流程模板,还可以支持包括BPEL在内的其他多种流程语言。目前jBPM 4的版本还处于Alpha阶段,在流程设计器和产品本身还存在大量的bug和需要完善的地方,因此离应用到生产环境还有一定的距离。因为目前只有jBPM 3.2可以应用到生产环境当中,所以jBPM开发小组会同时维护jBPM 3.2和jBPM 4两个版本。随着jBPM 4的不断完善,相信在一年后或更短时间内,jBPM 4会发布正式版,那时我们就可以将jBPM 4用到生产环境当中。
不管是jBPM 3.2还是jPBM 4,本书都会进行详细的讨论。第一部分介绍的jBPM 3.2适用于所有的3.2.x版本(目前最新版本为3.2.6.SP1),在讲解jPBM 3.2的时候,我们使用jBPM的嵌入式运行方式来介绍jBPM的基本概念及常用开发技巧,在第9章当中,我们将用一整章的篇幅来讨论jPBM 3.2的独立模式运行方法及其原理。在第二部分介绍jBPM 4的时候我们也是采用嵌入式的方法进行讲解,对于jBPM 4独立运行模式的实现方法,读者可以参照jBPM 3.2的实现方式。
由于目前jBPM 4还处于Alpha2版本状态,所以能介绍的内容不是很多,如果只是想了解jBPM 4,那么这些内容就已经足够了。本书按照由浅入深的顺序来安排内容。在介绍jBPM 3.2的时候先通过一个helloworld示例让读者了解其概貌,再深入局部细节。在讲解细节时辅以适当的测试代码和说明文字,使读者可以深刻理解其原理,最后通过两个大的流程实例开发讲解jBPM在实际开发中的使用方式,使读者最终对jBPM流程引擎了如指掌,能够游刃有余地使用它。对于jBPM 4的介绍也是采用类似的方式,不过因为很多概念在讲解jBPM 3.2的时候已经介绍过了,所以内容相对简略。
第一部分
入门
第1章为jBPM入门,详细介绍了jBPM开发套件的下载、流程设计器的安装、流程项目的创建、最简单的helloworld的开发及测试方法等,引导读者了解设计、开发和测试一个流程的基本过程,体会流程的基本功能。
jBPM的基本知识
第2章到第5章介绍jBPM基本知识和基本概念。通过这四章内容读者可以了解流程引擎通用的基本概念——流程模板、流程实例、任务和任务实例等;了解jBPM中各个流程节点的含义及使用方法;了解jBPM任务调度和异步的基本实现原理和方法;了解设计、开发和测试流程的方法。
流程实例开发演示
第7章通过讲解实际工作当中两个比较常用的流程实例来说明jBPM在实际开发中的使用方式。这一章介绍了如何搭建一个支持jBPM的应用,如何在该应用当中设计、开发、测试和部署流程引擎。在介绍实例的同时还讲解了如何获取当前流程进度图、如何对流程进行监控以及如何删除一个正在运行中的流程实例等。
开发技巧
第8章介绍了在实际流程开发当中诸如动态设置任务参与者、会签、传阅和子流程并行等常见需求在jBPM中的实现方式,讲解的过程中都辅以适当的测试代码来验证设计开发方式的可行性与正确性。
媒体评论回到顶部↑
“这是一本全面介绍jBPM的书,从基础知识到实战开发技巧,作者结合其实际项目开发经验,对国内流程的许多特色要求给出了浅显易懂的解决方案。对于想在项目中应用jBPM的初学者,本书提供了step by step的指导,将节省其大量的学习成本。”.
——辛鹏,OPUG发起人,东方易维CTO
“jBPM是当前应用最为广泛的开源工作流系统,也是目前最为活跃的开源项目之一,但是一直以来都没有一本详细介绍jBPM的书。这本《深入浅出 jBPM》无疑填补了这一空缺。本书深入浅出,实战性很强,既有对jBPM 3的详细分析,也有对jBPM 4的介绍,是学习jBPM的很好途径。”...
——荣浩,jBPM-side成员,ThoughtWorks咨询师
——辛鹏,OPUG发起人,东方易维CTO
“jBPM是当前应用最为广泛的开源工作流系统,也是目前最为活跃的开源项目之一,但是一直以来都没有一本详细介绍jBPM的书。这本《深入浅出 jBPM》无疑填补了这一空缺。本书深入浅出,实战性很强,既有对jBPM 3的详细分析,也有对jBPM 4的介绍,是学习jBPM的很好途径。”...
——荣浩,jBPM-side成员,ThoughtWorks咨询师
评论交流
共有44人开贴评论 59人参与评论 16人参与打分 查看
评价等级:





发表于:2009-12-28 15:25:00
平心而论,这是一本JBPM入门的书本。可能有些人会看不懂JBPM,建议先去学习一下工作流聪盟定义的规范,先补充一下基础知识。注意,JBPM是指的是业务流程管理,不局限于工作流。关于业务流与工作流的区别,不应当去补充一下。 JBPM对于我最大的影响不在于使用,而在于它的思想。比如说在做业务分析的时候,在做相关事件的通知的时候,JBOSS社区的软件在设计理念上面还是有很多可以借鉴的地方,像是Hibernate searcher等等,基于事件的通知机制是面向切面的编程的一个体现,高度集成且易于编程的工作流以及业务流的实现,可以参考一下JBPM的原则。
| 我要写评论 |
| 查看所有评论交流(共44条) |


点击看大图





加载中...
