标题：jBPM4工作流应用开发指南
图书信息
书名：jBPM4工作流应用开发指南  　　作者：胡奇  编著
ISBN 978-7-121-11791-6
出版日期：2010年10月 
定价：59.00元
开本：16开 
页码：364页
宣传语
完全解析jBPM4应用开发技术
9位工作流业内专家联袂推荐
内 容 简 介
随着在现代企业管理中对于信息化、流程化的深度挖掘，具有业务流程管理的技术和思想已经成为致力于全面掌控企业级应用系统人士“日常生活、居家旅行”的必备素质。
本书分两篇。第一篇介绍工作流管理技术的概念、起源和发展历程，开源工作流选型，以及jBPM——这个迄今为止最成功的Java开源工作流项目的“前世今生”。此外，本篇还可以帮助读者快速上手jBPM4、使用jBPM4开发企业流程应用，包括安装和配置jBPM4、使用jBPM图形化流程设计器（GPD）设计流程、把流程部署到服务器上去、使用jBPM4 Service API控制流程、掌握jBPM流程定义语言、流程变量、流程脚本。第二篇主要涉及基于jBPM4这个强大的应用程序框架打造属于自己独特业务的“企业流程管理平台”，包括jBPM4扩展研发先决条件、深入jPDL和jBPM Service API、升级jBPM3到jBPM4、流程虚拟机原理、jBPM4的设计思想、随需而配jBPM4、异步工作执行器、深入jBPM4电子邮件支持、系统日志、jBPM4与Spring框架集成、jBPM4与JBoss应用服务器集成、中国特色工作流的jBPM实现。
本书结构条理清晰，实践例程与理论思想紧密结合，翔实易懂，由浅入深，具有很强的参考性和实用性。
本书适合所有掌握JavaEE（Java企业级版本）开发技术的人员——无论您是技术开发者、项目实施者、系统架构师，还是流程分析师、业务方案顾问，本书都适合您。
前  言
本书作者从2005年即开始在国内最大的企业应用软件集团之一负责工作流引擎内核及其周边系统的创造性研发工作，并因此获得了2006年度北京市中关村科技园经济技术创新标兵等荣誉。
随着对工作流管理系统研究开发和实践应用的深入，不仅从自主研发的工作流管理系统中获得了大量“深入骨髓”的第一手体验，而且由于工作原因从多个国内、国外的工作流产品中吸取、借鉴了众多的第一线应用实战经验，这不仅涵盖了多种商业工作流产品，也包括众多开源工作流产品。
因为工作的机会，作者曾作为RedHat JBoss产品应用架构师有幸深入地“解剖”了jBPM系列产品并且为国内多个jBPM应用项目提供咨询、培训等服务。作者发现在许多优秀的工作流产品中已经实现了的设计、计划实现的创意以及许多让人忍不住“击节叫好”的思想，都已经被jBPM系列产品做到了！当前，在Red Hat JBoss项目组工程师、架构师们的不懈努力下，jBPM已经发布了第4个大版本，最新的jBPM4进一步克服了jBPM3的固有缺陷（这在书中会多次提到），并且更加“变本加厉”地增强和优化了jBPM——这个世界上首屈一指的开源工作流产品的功能。
因此，作者“忍不住”、也“不得不”将jBPM4这个优秀工作流产品的应用、开发技巧以及自己对工作流技术的经验、体会编写成书。从某种程度上来说，本书也是作者多年“工作流职业生涯”的一个里程碑和总结。
    对于想快速入门的企业流程开发人员来说：
    本书将使您快速了解什么是工作流、BPM和jBPM，以及它们的发展历程。当然，重要的是使您明白它们能为企业信息化做什么，开发人员该如何抉择。
    本书内容从下载、安装、配置jBPM4到流程设计、程序开发、单元测试、应用部署、调试运行，直至管理、监控、优化、扩展，使您掌握利用jBPM4开发企业流程的全生命周期过程。
    本书全面系统地为您介绍jBPM4的Service API、活动和支持行为，通过手把手的实例练习把jBPM4企业流程架构的思维植入您的脑中。
    对于已经在使用jBPM（包括jBPM3）开发的、并渴望把jBPM4“玩弄于股掌之间”的研发者来说：
    抛弃不尽如人意的、稍显啰唆的jBPM3，来尽情拥抱架构更为优雅、更为易用、更适于扩展的jBPM4吧！为什么不呢？
    本书为您精选了近年来众多企业在“实际”使用jBPM过程中遇到的最棘手、最纠结的问题，这包括业内人士所谓的“中国特色工作流”的经典问题，根据作者的经验，这些问题导致了大量jBPM项目选型、实施的流产乃至失败……本书将以jBPM4设计者的理论思想为前提，提出解决思路、方法乃至实战例程。
    本书不失为一条企业级应用架构师的进阶之路，因为jBPM4不仅仅是一个平台（Platform），更是一个框架（Framework），它的代码、它的设计无处不蕴含着世界顶级企业应用架构大师的精华思想。同样，因为作者对jBPM设计理念的认同、优雅架构的努力追求，所以将力求在介绍中为您起到抛砖引玉的效果。
    本书亦可作为jBPM4的工具手册在您的计算机旁伴随您进行企业流程研发之旅。
需要强调的是，本书中作者在介绍jBPM4的新功能时，会经常性地提到jBPM3与jBPM4的差异，以帮助广大jBPM3的“铁杆用户”消除思维定势，快速把握新版本的变化、从根本思想上“升级”到jBPM4。同时也能让第一次使用jBPM4的用户体会到jBPM系列产品发展的“沧桑历程”，知其然（新功能）亦知其所以然（为什么要变更或加强以前的功能）。
本书由胡奇编著，参与具体工作的还包括王斌、万雷、赵楠、周华樟、朱诚、刘利平、李伟、袁学东、刘浩、杨建平、于洪丹、黄胜、田洪铭、陈培帅、黄北军。业内专家PCCW Solutions，senior consultant，Cyril；盛大在线公司架构师，胡长城；搜狐福州分公司Java架构师，林良益；中通软联信息科技有限公司创始人兼首席架构师，马越；GrapeCity集团技术管理组高级架构师，王瑜；北京天大天科科技发展有限公司首席架构师，吴俊；百度公司软件工程师，徐会生；TIBCO中国开发中心开发部门经理，赵亮；上述8位同志对本书提出了非常诚恳的意见和建议，本书能够面世与他们的辛勤工作和专业建议密不可分。同时我还要感谢我的太太王少玲女士，她在本书的写作过程中给了我极大的支持和鼓励，并参与了第一章的校稿工作。最后将本书献给我刚出生的女儿胡清扬小朋友，愿她健康成长，好好学习，天天向上。
如果您对本书的内容有任何问题或反馈，欢迎通过电子邮件联系我们。
文件使用说明
读者可以先去下面这个地址下载一个压缩文件jbpm-4.3.zip：
这个jbpm-4.3.zip解压缩后有137.9MB大小，这是jBPM4.3的源代码、文档、依赖库、示例代码等所有官方的东西。因为是遵循LGPL开源协议的，读者可以直接下载该文件。解压之后，我们可以看到文件中有个examples目录，为官方的示例代码，结构如下（左）图所示。
本书第6章的大部分示例代码来自于此，而上（左）图中的6-5.txt和6-2-8.txt正是加入的用来表明此代码是第几章节所引用的。我们再通过网址下载本书的配书文件，解压缩到本地电脑。从文件目录结构可以看出，我们对examples目录做了扩充（因为要依赖官方examples的环境），在配书代码中我们还加入了本书其他章节的示例代码，如上（右）图所示。n2_2_10表示第2章第10节的代码。n3_cn_delegate表示中国特色工作流“代理人”部分的代码，为了方便起见，我们直接以面对的问题来命名，这样读者可以有针对性地查找并解决问题。
提示：本书涉及代码可到博文视点公司网站下载。
书 评
(按评论者姓名字母顺序排序)
许久不曾买书，这本《jBPM4工作流应用开发指南》是我迄今为止最期待的一本书。本书循序渐进地介绍了jBPM，从工作流的基础知识开始，到最后的中国特色工作流的jBPM实现，让人不睹不快。可以说，它是一本很好的jBPM参考手册，能够帮助更多的人来学习和掌握jBPM。
陈勇
就职于北京拓尔思信息技术股份有限公司，java开发工程师
本人从六七年前就开始接触工作流系统的设计与开发，一共参与过三套工作流系统的设计与开发过程，应用涵盖了OA系统、行政审批系统、ERP系统。在这么多年的工作流系统的设计与开发过程中，感触颇多，其中有如下两点是体会最深的：
1. 从最开始只关注一个个具体业务流程在自己设计的工作流系统中怎么实现，到后来渐渐关注工作流系统对企业整个业务流程重组（BPR）的巨大推动效应和对企业应用集成（EIP）的强有力支持，这个过程我用了五六年。《jBPM4工作流应用开发指南》的作者在第1章就对这点进行了深入的阐述，让读者在十来分钟的时间内快速完成了这个认识的转变，可以使后续的工作流系统的设计与开发者站在更高的起点去设计与开发适合于自己项目的工作流管理系统。
2. 在中国进行工作流系统的开发尤其不易，特别是政府与国企使用的工作流系统。用户提出的许多“非常有理”的特色功能往往会让工作流系统的设计与开发者焦头烂额，难以在工作流系统的规范性与用户要求的“灵活性”之间加以取舍。很显然《jBPM4工作流应用开发指南》作者的实战经验非常丰富，明确地在本书中对中国特色工作流的jBPM实现进行了详细的说明。
所以《jBPM4工作流应用开发指南》这本书在理论认识与设计思想、具体分析与细节实现这两点上有比较好的平衡，充分体现了作者在工作流管理系统设计与开发上的功力。
Cyril
就职于PCCW Solutions，senior consultant
终于盼来胡奇的新作《jBPM4工作流应用开发指南》出版上市。在作者刚刚着手开始写书的时候，我们俩就针对大纲内容有过探讨，当时定的基调就是“实用”。
“实用”的本质就是“实战经验的总结和抽象”。特别对于工作流应用来讲，看似就是几个节点的连接和组合，但是实际却是变化多样的，不同的行业领域或应用场景之间的差异性太大，而需求又特别繁杂。这也是为什么很少有一款工作流产品能够适应所有行业。有的工作流产品主要面向政务办公中的公文处理流程；有的则面向电信业务的高性能处理流程；有的则面向应用系统过程集成的处理流程；有的则面向制造业中高度自动化控制流程……
在这种情况下，工作流产品要想在“简单易用”和“灵活扩展”之间找到平衡就非常难。但Tom先生（jBPM的创造者之一）却完成了这个壮举，缔造了精美小巧的jBPM。在jBPM中，除了过程调度这一核心模块无法扩展以外，几乎流程相关的所有点都可以扩展活动类型、活动执行方式、事件行为、Spring整合、存储等。所以开发者可以很容易基于jBPM构建出有自己特色的流程框架，以满足特殊业务领域模式。本书中，胡奇用了几个章节的内容，为读者诠释了如何基于jBPM构建属于自己的工作流平台。
提到jBPM4，就不能不提到PVM（Process Virtual Machine, 流程虚拟机）。PVM是新一代流程引擎架构设计理念，而这是由Tom先生在jBPM4中首创的，现在这种PVM设计理念在越来越多的开源和商业工作流或BPM产品中体现出来，比如Orchestra BPM，Oralce BPM Suite 11g，Activiti BPM等。在书中，胡奇为大家详细诠释了PVM的原理和jBPM4的实现，值得参考阅读。
jBPM本身是一款开源的工作流和BPM组件，但如何真正结合实际应用需求和场景，把jBPM运用好却是个很大的挑战。在现实中，开发人员的实施经验不足、jBPM专业开发人员稀少、指导参考资源匮乏，对项目实施质量和进度影响颇多，甚至导致部分项目失败。而在本书中，胡奇不仅对jBPM做了深入透彻的介绍，并分享了自己多年的jBPM成功实施经验，为大家的工作流应用项目实施提供了宝贵经验借鉴，很值得参考学习。
胡长城
就职于盛大在线公司，负责盛大开放平台的整体架构，近十年的工作流研发实施咨询经验
翻开这本书的目录，从对工作流理论发展的理解到jBPM4的设计思想，从Step By Step的图示化安装指南到特定的“中国式企业应用”场景案例，从简单的基于Web页面设计器的流程定制，到与Spring，JMS的复杂整合。对读者而言，该书做到了一步一步带入门，而后逐渐展开视野、深入机理，使人“知jBPM然，也知其所以然”。
作者对工作流模型，尤其是BPM的理解，功力十分深厚。他以适合于中国学生理解的思维方式，为读者解读了jBPM设计，展现了jBPM4的API的全景视图。更难得的是，书中的“中国特色工作流的jBPM实现”这一章非常精准地直击目前中国企业信息化过程中在工作流系统上经常遇到的老大难问题，让人读后拍手称快。
不是所有的书籍都能从工作流的基础概念讲述到开发中遇到的现实问题的，这本书做到了。它既适合刚刚接触流程引擎的初学者入门，又适合于对jBPM3/4有一定使用基础、需要深入学习的在职从业人员。它是本人所读到的国内相关书籍中对jBPM4描述最为全面、最为深入的作品之一。
林良益
就职于搜狐福州分公司，Java架构师，负责网络搜索与SNS底层框架设计
开源项目《IKAnalyzer中文分词器》《IKExpression表达式解析器》作者
jBPM作为历史最悠久，功能最强大的开源工作流引擎一直拥有着国内外广泛的使用群体。2005年我在美国时因为第一次在大型企业应用中使用了jBPM与Seam技术，还得到了jBPM团队所在的JBoss公司2006年度世界创新奖。2007年回国与本书作者成为同事后我们一起为国内大量客户进行了有关工作流引擎的咨询工作。那时候本书作者就开始不断总结客户所面对的问题与需求，并一直想把jBPM真正结合本土业务特色发扬光大。如今本书终于问世，过去一直缠绕着众多国内程序员的一些如回退、会签、自由流等“中国特色”的问题都通过jBPM4有了明快的解决之道。多年来jBPM工作组与本书作者共同的厚积薄发恰如其时地为国内程序员在实际工作中快速应用开源技术又提供了一个宝贵的武器。
马越
就职于中通软联信息科技有限公司，创始人兼首席架构师
社区创始人；2006年Red Hat/JBoss世界创新大奖获得者
美国10年大型商业软件构架经验；第一个将Seam及jBPM框架引入大型企业应用的开拓者
熟悉企业应用开发的人都知道，工作流是企业应用开发中的一个核心概念。从办公自动化领域的公文审批到跨企业的异构系统集成，背后都可以见到工作流的身影。jBPM作为一套开源工作流产品，已在各个行业得到了广泛深入的应用，其工业标准的品质也已成为开源世界中的范例之一。
本书作者具有坚实的工作流理论基础, 同时又具备丰富的基于jBPM的系统设计和开发经验。更难能可贵的是，作者能够很好地将理论知识与软件开发实践结合起来，通过对理论的讲述切入实践，然后通过对实践的讲解进一步巩固理论，进而引发读者思考如何根据理论进一步扩展实践。与此同时，本书还就国内工作流应用的特点，结合jBPM产品给出了自己的解决方案。这些来自开发一线的实践积累和经验总结，对于读者来说无疑具有宝贵的价值。
另一方面，针对某一软件产品的介绍性书籍往往容易被写成一本介绍如何使用该产品的操作指南，冷冰冰的操作步骤描述，再加上直接从外文资料上截取下来的翻译内容，让人阅读起来觉得了无生趣。而本书作者可以说在提高阅读体验方面花了很大心力。语言朴实，描述准确，包括设计演示场景和示例的时候，也是尽量考虑到读者的知识背景和阅读体验。介绍理论的时候不显得枯燥，描述操作的时候不觉得烦琐，无论是初次涉及工作流概念的新手，还是有一定工作流经验的设计师，都能从本书中有所收获。
王瑜
就职于GrapeCity集团技术管理组，高级架构师
首先十分感谢作者给我这个机会在他的作品即将问世之前做一些感想，也正好让我能在忙碌中抽空回顾一下这么多年在技术平台方面走过的路以及在Workflow方面的点点滴滴。因为本书是介绍jBPM的专业书籍，所以我谈不上给些什么评论，只是将对作者的印象和对书中内容引发的一些思考和回味分享给大家。
首先就要从我跟作者如何相识的初次合作谈起了。记得那应该是2005年，我们经历了两年多搭建面向ERP项目的研发平台初具规模，正在10多个大型项目中服务。当时从底层技术框架、代码生成工具、组织权限等诸多技术问题都得到了充分的考虑和解决。当然肯定少不了对Workflow业务的解决。当时我们选用的WfMC的XPDL语法，从引擎、设计器、监控器、模拟器、组织模型全套都实现了。最初因某些项目原因采用的.NET，后迁移到Java平台下，并且以Hibernate做存储，也是采用的微内核和状态机的设计思路。提供了一整套的API（类似jBPM等主流工作流引擎提供的方式）。但在几个大项目实际使用中发现这种纯粹API二次开发的方式，基于封闭工作流系统无法高效地支撑业务快速开发及流程仿真重组。
对业务系统快速实施有价值的是整合了组织定义、流程定义、业务表单定义、业务数据权限定义工具等全集成的定制系统，不用通过编写代码业务需求人员通过拖曳即可完成各种层级集团应用的定义，并适当设置一定的业务脚本即可完成业务系统的定义。所以我们在2005年6月启动了这件事情，基于已有的组织权限、工作流基础上加入业务表单定义及整合的设计定义功能。然后在公司内部到处挖人，我习惯于以技术geek的方式在公司内部到处引诱人，都是先通过非正式的方式从技术角度找到有想法感兴趣的人，然后再用各种手段搞到这个人加入。
记得那个时候一个意气风发、满怀抱负的年轻小伙子给我留下了深刻的印象。他刚刚做完一个电信的项目，爱好非常广泛，JS很好，也会Flash，想法特别多，手特别快。所以我就通过各种手段搞到这个家伙加入我们，那就是年轻时的作者。很快他先搞定了业务表单定义的技术攻关，可能当时我们是最早使用XmlHttpRequest的（Ajax的核心），然后基于Workflow如何接收表单传递过来的数据，然后接手了整个Workflow的优化及实现各种变态的中国特色的工作流需求。我们在10月左右发布了一个完整的版本，支持了上面讲到的那些功能。现在回头看看大家都很神奇，10个人不到3个月就搞定了这么复杂的东西，也许换到今天开源技术如此成熟可能都未必能做到。之后这个家伙就一定要坚持在专业上坚持以Workflow为方向不断成为专家。
再一晃就是多年以后的事情了，我也从搭建ERP研发平台到互联网SNS大型数据平台又转回到专属行业ERP产品平台。不论管理大型团队多少年，始终秉承着对技术的痴迷，从未放弃对任何技术细节的关注，也越来越推崇中庸、推崇妥协。
这期间我们有过断断续续的联系，也曾经为一些点子一起疯狂、一起兴奋，不过终究没有找到合适的机会再次合作。收到作者的邀请时，十分地受宠若惊，当时手头的事情也特别多。而且类似的书我也见得特别多，不外乎就是英翻中，所以就根本没放在心上。直到后来拿到作品仔细阅读了一番，渐渐地能体会和重现这个家伙几年的历程——一直在专业（Workflow）的道路上滋滋以求。
当然文中难免有大量资料的复制，但是能花大量心血组织起来，如此翔实全面地介绍已实属不易。而且加上了这家伙从当年我们一起做流程系统时的经验和他在jBPM系列产品应用实施上多年的咨询经历。
最近我也在平台中的多处集成了jBPM用于解决传统审批流，跨业务域集成BPM，以及ETL流等，当然不会孤立使用Workflow，肯定是结合ESB、MDA、规则引擎等一起使用。一直想给大家从概念到Workflow的历史、再到如何运用jBPM解决各种问题等进行一个全面的讲解，正好拿到这本书，省了我很大的力气。
这几年IT业内浮躁风气、快餐文化盛行，用过Spring、Struts、jBPM就敢说自己是架构师。而很少有人能够踏踏实实潜心研究各种技术的根源，为什么要这么设计，如何扩展更为有效。从我们做平台的人的角度来看简单会用没什么，关键是能理解精髓并扩展或改造才是本事。
像作者这样致力于在国内传播Workflow的模型，让更多的人少走弯路，快速上手，并不断将多年研究的心得和成果同大家分享的人太少了，国内太少这种人了。也许这本书可以为不少人提供了解jBPM的素食套餐。尤其本书中“第20章  中国特色工作流的jBPM实现”十分具有实战意义，是特别值得国内使用jBPM做应用的人们参考的最佳实践。
笔触于此，抬眼已很晚了，一气呵成就先写这么多。让我们一起读完全书后再回来一起思考和回味下面这两个问题吧！
    有想法、专注、愿意分享的年轻人，我们应该有怎样的IT人生？
    业内规范的演化进步，我们又会遭遇怎样的IT进程？
吴俊
就职于北京天大天科科技发展有限公司，首席架构师
很高兴向大家推荐《jBPM4工作流应用开发指南》这本书，jBPM是目前国内公司使用最多的开源工作流引擎，不过虽然越来越多公司选择将jBPM加入自己的项目或产品中，却发现总是被同样的问题绊住手脚。这本书为尚未接触过工作流领域的同仁们开启了大门，它以浅显易懂的文字，循序渐进地介绍了流程领域的应用知识，并提供了实例辅助大家学习，最后还特别针对国内的特殊流程需求提出了对应的解决方案，帮助大家快速越过这些障碍。
徐会生
就职于百度公司，软件工程师 
站长
对于企业级IT应用系统而言重要的内容是业务活动流程、人员组织架构、业务数据标准定义。工作流软件帮助企业应用开发者方便地处理实现以上三个部分的内容，可以使用图形化流程编排的方式定义业务流程，定义企业内部组织结构，人员角色和角色关联的工作任务，在流程中连接企业内部的其他系统，让标准的业务数据流在企业内部的各个系统中流转，完成企业运作的各项工作。
类比编程实现函数的数据处理流程，使用工作流软件工具编排实现业务处理流程是企业应用开发者必须具备的一项技能。随着企业应用系统复杂度的不断提升，只提三尺编程之剑，是无法纵横于软件江湖的。每一个在企业应用领域的技术工作者都需要更先进、更强大的技术来武装自己。工作流是企业应用中非常重要的技术，学习了解这门技术，包括概念、功能、发展过程、基本原理、技术标准、产品工具的使用、开发技能和经验共享等，就是一项紧迫的任务了。
学习需要深入本质，举一反三。我们不需要学习所有主流工作流软件， 选择一个规模适度（不要像IBM软件套件那么让人生畏）、应用广泛、代码开源的产品来切入，这是个明智的选择。本书适合于想学习工作流技术，并且将使用jBPM来做应用开发的读者阅读学习。对于从事工作流产品开发工作的开发者来说也可以从第1、第12、第13、第20章读到一些自己感兴趣的内容。如果说jBPM是开发企业工作流系统的利器，那么只有开发者熟练掌握了这个工具才真正有用。本书就是个很好的选择，它可以帮助你了解学习和掌握这门技术及相关工具。不只局限于对工具使用的介绍，本书将会告诉你这项技术的方方面面，开启一扇步入工作流领域的大门，引导你获悉内功本质，熟练操作招式，在之后的企业应用开发过程中把这项技术用好、用准。
赵亮
就职于TIBCO中国开发中心，开发部门经理
目  录
第一篇  jBPM工作流开发基础    1
第1章  工作流基础    2
1.1  工作流概念    2
1.1.1  工作流管理思想之于企业现代化管理    2
1.1.2  工作流技术在企业中的应用    5
1.1.3  如何从一个开发者的角度看工作流技术    6
1.2  工作流管理系统的发展历程    9
1.2.1  工作流管理系统参考模型    11
1.2.2  BPM    15
1.3  开源工作流选型    16
1.4  jBPM    19
1.4.1  jBPM前世今生    19
1.4.2  关于jBPM4您需要知道的    19
1.5  小结    23
第2章  安装和配置jBPM4    24
2.1  jBPM4安装先决条件    24
2.2  快速开始吧    26
2.3  安装脚本详解    27
2.3.1  关于配置文件    30
2.3.2  关于依赖库    31
2.4  安装到JBoss    31
2.5  安装到Tomcat    32
2.6  基于Web的Signavio流程设计器    33
2.6.1  jBPM Web流程设计器简介    33
2.6.2  独立安装Signavio    34
2.6.3  配置Signavio    34
2.7  用户自定义jBPM Web应用程序    35
2.8  安装jBPM数据库    35
2.8.1  新数据库安装    36
2.8.2  升级旧的数据库    36
2.9  安装图形化流程设计器（GPD）    37
2.9.1  获取Eclipse    37
2.9.2  在Eclipse中安装GPD插件    37
2.9.3  配置jBPM运行环境    38
2.9.4  添加jPDL4 Schema校验    41
2.9.5  导入和使用范例    41
2.10 例程：jBPM HelloWorld    43
2.11 小结    45
第3章  使用jBPM图形化流程设计器（GPD）设计流程    46
3.1  创建一个新流程    47
3.2  编辑流程定义源    49
3.3  例程：设计一个“复杂的”业务流程    49
3.4  小结    53
第4章  把流程部署到服务器上去    54
4.1  部署流程定义和资源文件    54
4.2  部署流程Java类的3个方法    57
4.3  例程：部署业务流程定义    58
4.4  小结    61
第5章  使用jBPM4 Service API控制流程    62
5.1  流程定义、流程实例和执行的概念    62
5.2  流程引擎API    64
5.3  利用API部署流程    67
5.4  通过API删除已部署的流程    69
5.5  使用API发起新的流程实例    69
5.5.1  发起流程实例的常规方法    70
5.5.2  指定业务键发起流程实例    70
5.5.3  指定变量发起流程实例    71
5.6  唤醒一个等待状态的执行    71
5.7  任务服务API    72
5.8  历史服务API    75
5.9  管理服务API    76
5.10  查询服务API    77
5.11  例程：利用jBPM Service API完成流程实例    78
5.12  小结    80
第6章  掌握jBPM流程定义语言    81
6.1  process（流程）    82
6.2  流转控制活动    84
6.2.1  start（开始活动）    85
6.2.2  state（状态活动）    86
6.2.3  decision（判断活动）    89
6.2.4  fork – join（分支/聚合活动）    97
6.2.5  end（结束活动）    102
6.2.6  task（人工任务活动）    107
6.2.7  sub-process（子流程活动）    120
6.2.8  自定义活动    132
6.3  自动活动    134
6.3.1  java（Java程序活动）    135
6.3.2  script（脚本活动）    139
6.3.3  hql（Hibernate查询语言活动）    144
6.3.4  sql（结构化查询语言活动）    147
6.3.5  mail（邮件活动）    149
6.4  事件    153
6.4.1  事件监听    155
6.4.2  事件传播    157
6.4.3  处理异常事件    159
6.5  异步执行    160
6.5.1  异步活动    162
6.5.2  异步分支/聚合    164
6.6  用户代码    166
6.6.1  用户代码的定义    166
6.6.2  用户代码的类加载    168
6.7  小结    170
第7章  流程变量    171
7.1  变量作用域    173
7.2  变量类型    174
7.3  变量的自动更新和序列化    175
7.4  例程：用变量去控制一个流程的运行    177
7.5  小结    179
第8章  流程脚本    182
8.1  Java统一表达式语言    182
8.1.1  语法特点    183
8.1.2  值和方法表达式    184
8.1.3  隐式对象    187
8.1.4  运算符和保留字    188
8.1.5  一些经典EL表达式的例子    190
8.2  例程：用脚本去控制一个流程的运行    192
8.3  小结    194
第二篇  定制属于自己的流程——深入jBPM4扩展研发    195
第9章  jBPM4扩展研发先决条件    196
9.1  深入应用jBPM4所需要知道的    196
9.1.1  如果您的业务基于复杂的规则，在jBPM中加入Drools吧    196
9.1.2  抉择，是否使用BPEL    197
9.2  Maven仓库和Java依赖库    199
9.3  小结    200
第10章  深入jPDL和jBPM Service API    201
10.1  timer（定时器）能为您做什么    201
10.1.1  持续时间表达式    202
10.1.2  工作日历    202
10.1.3  定时转移    204
10.1.4  定时事件    205
10.1.5  工作日历定时    207
10.1.6  定时重复    208
10.2  使用group活动编组流程    209
10.3  如何在活动中调用EJB方法    214
10.4  使用jms活动    215
10.4.1  模拟JMS服务    217
10.4.2  JMS文本消息    219
10.4.3  JMS Object消息    220
10.4.4  JMS Map消息    222
10.5  历史会话监听链    223
10.6  自定义Web任务表单    225
10.6.1  基本思路    225
10.6.2  表单格式    226
10.7  流程实例的自动迁移    228
10.7.1  简单的流程实例迁移    230
10.7.2  终止流程实例运行的迁移    232
10.7.3  应用活动映射的迁移    234
10.7.4  自定义迁移处理器    236
10.8  小结    239
第11章  升级jBPM3到jBPM4    240
11.1  你所要知道的升级局限性    241
11.2  流程定义转换工具    242
11.2.1  命令行执行    242
11.2.2  Java编码执行    243
11.3  jBPM3到jBPM4的语义变更及翻译    244
11.4  小结    246
第12章  流程虚拟机原理    247
12.1  PVM的架构    247
12.2  PVM的实现    250
12.3  小结    253
第13章  jBPM4的设计思想    254
13.1  API设计    254
13.1.1  活动API    256
13.1.2  事件监听API    256
13.2  执行环境设计    257
13.3  命令设计    258
13.4  服务设计    259
13.5  历史流程处理原理    262
13.6  数据持久化设计    263
13.6.1  jBPM4流程定义资源和实例运行时数据表    264
13.6.2  jBPM4流程历史数据表    265
13.6.3  jBPM4身份认证数据表    266
13.6.4  jBPM4引擎属性数据表    267
13.7  例程：扩展jBPM4的API满足客户化的需求    268
13.8  小结    270
第14章  随需而配jBPM4    272
14.1  配置文件设计概要    273
14.2  配置工作日历    274
14.3  配置身份认证组件（组织适配器）    274
14.4  小结    277
第15章  异步工作执行器    278
15.1  设计原理    278
15.2  配置使用    280
15.3  小结    281
第16章  深入jBPM4电子邮件支持    282
16.1  电子邮件的产生    282
16.2  电子邮件服务器    285
16.3  电子邮件扩展    287
16.4  小结    289
第17章  系统日志    290
17.1  配置日志    290
17.2  日志输出级别    292
17.3  Java Logging API日志    292
17.4  利用持久化层日志进行调试    294
17.5  小结    295
第18章  jBPM4与Spring框架集成    296
18.1  集成的目标    297
18.2  为集成配置jBPM4    297
18.3  为集成配置Spring    299
18.4  使用    301
18.5  测试    302
18.6  小结    302
第19章  jBPM4与JBoss应用服务器集成    303
19.1  流程定义打包部署    303
19.2  在JBoss企业级编程模型中使用jBPM4    304
19.3  小结    306
第20章  中国特色工作流的jBPM实现    307
20.1  退回    308
20.2  取回    313
20.3  会签    318
20.4  委派    326
20.5  自由流    331
20.6  小结    332
附录A  jBPM术语    334