Activiti实战. 导读

实  战

Activiti实战

闫洪磊 著

 

为什么要写这本书

2011年年末,公司承接了一个保险类的业务系统,包含处理核心业务的ERP系统以及日常办公的OA系统,很明显这两种类型的系统都离不开工作流引擎的支持。我用一周时间对比了几个开源的工作流引擎,最后决定使用Activiti作为整套系统的工作流引擎。

现在回想起来,当初的学习过程是多么的“痛苦”啊!当时Activiti才刚满周岁,除了官方提供的尚能看得过去的用户手册之外,再无其他资料可供参考,这对于国内开发者来说尤为痛苦。仅有的用户手册全部都是英文的,为了学习Activiti只能打开翻译软件硬着头皮把手册看了一遍,当然也离不开打入引擎内部的利器—Javadocs。幸运的是,我的第一份工作(3年时间)是为政府单位开发OA系统,这有助于理解在学习Activiti过程中遇到的一些概念性的内容,在此基础上前后花了一周时间写出了第一个在本书中被讲“烂”掉的请假流程。

国内很多技术爱好者都会使用IM软件或论坛建立技术交流社区,也有一些人开设博客撰写相关技术文章。在开始学习Activiti时,很多人都尝试着去寻找这样的社区,结果由于社区规模小、热度不高,常听到学习资料匮乏以及没有成熟的Demo可供参考这样的声音。我喜欢研究技术也乐于分享,从08年就开始以博客的形式分享一些技术学习心得,在基本掌握Activiti的使用方法后就响应社区的号召在GitHub上公开了Activiti入门Demo项目—kft-activiti-demo,并在个人博客上发布了几篇与Activiti有关的博文。随着国内使用Activiti的企业越来越多,使得Activiti中文社区活跃度大大增加。最初我要花不少时间回答社区中提出的有关Activiti的问题,长此以往,同一个问题每天要回答多次,而且kft-activiti-demo也太过简单,只能作为入门参考,为了能系统地介绍Activiti,就萌发了撰写一本关于Activiti的书籍的想法。

在2012年6月,机械工业出版社华章公司的首席策划杨福川联系我,表示有意向出版一本Activiti方面的书籍。我们一拍即合,于是就有了这本书,这也让我相信机会是留给有准备的人的。这本书原本预计一年完成,不过由于工作与家庭的原因,在2013年一度中断了大半年,导致这本书的难产。在此也对期待已久的读者说声对不起,同时也是因为你们给予的支持与压力促使我最终完成这本书。

在学习和使用Activiti的过程中也遇到了一些Bug或功能缺陷,例如基本上每个初学者都会遇到的流程图中文乱码问题。对于这些问题最初会通过Bug跟踪系统向官方提交问题,在Activiti的源码从SVN切换到GitHub后就可以很方便地让全球的开发者参与进来。笔者也借助GitHub这个平台为Activiti贡献了一些代码,借此机会也呼吁技术爱好者多多参与开源。

读者对象

本书以“理论+实战”的方式引导读者学习,不仅介绍如何使用Activiti,还详细介绍了其遵循的BPMN 2.0规范,所以无论读者是以技术为主还是以业务需求为主,都适合阅读本书。虽然本书中大部分示例都是B/S架构,但不表示Activiti不能在C/S架构中使用。另外,Activiti也不是只针对Java语言的,被其官方定义为BPM平台,借助REST也可以让非Java语言的系统使用Activiti。

适合阅读本书的读者有以下几类:

Activiti用户和爱好者

Activiti代码贡献者

流程引擎相关的项目经理或者需求人员

Activiti开发者,或运维人员

使用Activiti开发流程平台的公司

如何阅读本书

本书分为四大部分:

第一部分(第1、2章)为准备篇,介绍整个体系结构及其特点,并为后面的内容配置开发环境。

第二部分(第3、4章)为基础篇,介绍两种流程设计器的使用,以及BPMN 2.0规范。

第三部分(第5~14章)为实战篇,本书中内容最多的部分,该部分以实战为主,包括流程定义、流程实例、任务、子流程、多实例、事件以及监听器等。

第四部分(第15~21章)为高级篇,通过集成各种服务、中间件来阐述Activiti不仅是引擎,更是一个BPM平台,最后还深入源码内部剖析Activiti的设计模式及PVM。

勘误和支持

由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或不准确的地方,恳请读者批评指正。为此,特意创建一个在线支持与应急方案的站点http://www.kafeitu.me/activiti-in-action.html。大家可以将书中的错误发布在Bug勘误表页面中,同时,在遇到任何问题时,你可以访问其Q&A页面,笔者将尽量在线上为你提供最满意的解答。书中的全部源文件除可以从华章网站下载外,还可以从笔者提供的这个网址下载,笔者也会将相应的功能更新及时更正出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱yanhonglei@gmail.com,期待能够得到你们的真挚反馈。

致谢

首先要感谢Tom Beayens发起了这么优秀的开源项目,以及Alfresco公司Tijs Rademakers带领的Activiti团队对此项目的无偿贡献与支持。

感谢Activiti中文社区中每一位充满激情的朋友—袁启勋、临远、翔子、姜维、王垒、于广岳、第二少、小股东、陈浩、jackyrong、卖字母为生,以及名单之外的更多朋友,感谢他们长期以来对社区的支持和贡献。

感谢机械工业出版社华章公司的编辑杨福川和姜影,我始终坚信专业的事找专业的人做,两位在这两年的时间中从各个方面支持我的写作,他们的鼓励和帮助引导我顺利完成全部书稿。

感谢我的驴友们,和他们一起登山探险让我精神得以放松,希望以后的空余时间我们继续用双脚丈量大地。

最后感谢我的家人,感谢他们对我的支持和鼓励。

谨以此书献给我最亲爱的家人,以及众多热爱Activiti的朋友们!

 

闫洪磊(咖啡兔)

于上海

第一部分 准
备 篇

第1章
认识Activiti2

1.1 什么是Activiti2

1.2 工作流基础3

1.2.1 什么是BPM3

1.2.2 工作流生命周期4

1.2.3 什么是BPMN5

1.3 Activiti的特点5

1.4 Activiti的应用6

1.5 Activiti架构与组件7

1.6 Activiti与jBPM5比较8

1.7 本章小结9

第2章
搭建Activiti开发环境10

2.1 下载Activiti10

2.1.1 目录结构10

2.1.2 Javadocs12

2.2 环境配置检查14

2.2.1 检查并安装JDK14

2.2.2 检查并安装Ant14

2.2.3 检查并安装Maven15

2.3 配置文件介绍16

2.3.1 Activiti配置文件16

2.3.2 Maven配置文件17

2.4 Hello World18

2.4.1 最简单的流程定义18

2.4.2 创建单元测试类20

2.4.3 运行Hello World21

2.4.4 添加业务节点21

2.5 Activiti Explorer25

2.5.1 配置并运行Activiti
Explorer25

2.5.2 使用Activiti Explorer26

2.6 本章小结29

第二部分
基 础 篇

第3章 流程设计工具32

3.1 基于B/S架构的流程设计器Activiti
Modeler32

3.1.1 Activiti Modeler特点32

3.1.2 下载signavio-core-components33

3.1.3 配置打包与运行33

3.1.4 Windows用户打包36

3.1.5 设计请假流程37

3.1.6 导出bpmn2.0.xml41

3.2 在Activiti Explorer中使用Activiti
Modeler41

3.3 基于Eclipse插件的流程设计器Activiti
Designer44

3.3.1 Activiti Designer特点44

3.3.2 安装Activiti Designer45

3.3.3 设计流程46

3.3.4 自动化51

3.3.5 升级历史遗留的流程设计55

3.3.6 导入Activiti Modeler设计56

3.3.7 泳池与泳道57

3.3.8 在Activiti Designer中使用泳道与泳池58

 

时间: 2024-10-31 15:07:39

Activiti实战. 导读的相关文章

Activiti实战

实 战 Activiti实战 闫洪磊 著 图书在版编目(CIP)数据 Activiti实战/闫洪磊著. -北京:机械工业出版社,2014.12 (实战) ISBN 978-7-111-48595-7 I. A- II.闫- III. JAVA语言-程序设计 IV. TP312 中国版本图书馆CIP数据核字(2014)第270580号 本书版权登记号:图字:01-2013-1390 Authorized translation from the English language edition,

Activiti实战. 2.3配置文件介绍

2.3配置文件介绍 本节来介绍两个配置文件,一个是Maven的pom.xml文件,另外一个就是Activiti的默认配置文件activiti.cfg.xml. 2.3.1Activiti配置文件 在bpmn20-example工程的src/test/resources中有一个activiti.cfg.xml文件,此文件就是Activiti的配置文件,用来定义引擎初始化参数.bean.邮件服务器及各种监听器. 代码清单2-1展示了一个标准的Activiti配置文件. 代码清单2-1标准的Activ

Activiti实战. 2.2环境配置检查

2.2环境配置检查 在准备搭建开发环境之前需要读者检查自己的系统环境是否已安装JDK.Ant和Maven,如果已经安装,那么需要检查版本是否满足Activiti的最低要求. 2.2.1检查并安装JDK 在Activiti 5.10版本之前要求JDK的最低版本为JDK 1.5(即5.0),从Activiti 5.11版本开始要求最低JDK为1.6(即6.0):如果本地配置低于不同版本的最低要求,那么需要到Oracle官方下载(http://www.oracle.com/technetwork/ja

Activiti实战. 2.1 下载Activiti

2.1 下载Activiti 通过浏览器访问页面:http://activiti.org/download.html,其中列出自Activiti发布以来历次版本的压缩包和相关文档(10分钟入门.用户手册以及JavaDoc). 在"Latest Release"处下载下面的压缩包,在笔者写作本书时最新版本为Activiti 5.9.细心的读者可能注意到:在"Older releases"的发布列表中5.6版本之前基本上是一个月发布一版,从5.6版本之后基本固定为2-3

Activiti 实战篇 小试牛刀

原文地址:http://blog.csdn.net/qq_30739519/article/details/51166062 1:工作流的概念   说明: 1) 假设:这两张图就是华谊兄弟的请假流程图  2) 图的组成部分:  A. 人物:范冰冰 冯小刚 王中军  B. 事件(动作):请假.批准.不批准    工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动

Ceph分布式存储实战导读

前言 随着信息化浪潮的到来,全球各行各业逐步借助信息技术深入发展.据悉,企业及互联网数据以每年50%的速率在增长.据权威调查机构Gartner预测,到2020年,全球数据量将达到35ZB,相当于80亿块4TB硬盘,数据结构的变化给存储系统带来了全新的挑战.那么有什么方法能够存储这些数据呢?我认为Ceph是解决未来十年数据存储需求的一个可行方案.Ceph是存储的未来!SDS是存储的未来! 为什么写这本书 目前,磁盘具备容量优势,固态硬盘具备速度优势.但能否让容量和性能不局限在一个存储器单元呢?我们

Activiti实战. 2.5Activiti Explorer

2.5Activiti Explorer 前面提到了Activiti Explorer是Activiti为了让开发人员快速入门所设计的一个示例程序,本节将介绍如何运行Activiti Explorer以及如何部署和处理任务. 2.5.1配置并运行Activiti Explorer 如果读者下载的是最新版本,那么直接把activiti-5.1x(5.11及之后的版本)的wars/activiti-explorer.war复制到一个干净的Tomcat的webapps目录后运行Tomcat即可.如果需

Maven实战. 导读

Maven 实战 许晓斌  著 本书由国内社区公认的Maven专家Juven Xu亲自执笔,内容的权威性毋庸置疑. 本书是国内第一本公开出版的Maven专著.它内容新颖,基于最新发布的Maven 30,不仅详尽讲解了Maven 30的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2x版本进行了对比,以便于正在使用Maven 2x版本的用户能更好地理解.本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装.配置和基本使用方法,以便于初学者参考:详细

图解css3:核心技术与案例实战. 导读

图解CSS3:核心技术与案例实战 大 漠 著 为什么要写这本书     CSS3是在CSS2.1基础上扩展而来,事实上,它还没有完全成熟.有些专家会告诉你,CSS3现在还用不上,甚至几年之后都不会有成熟的规范发布.     目前为止CSS3还没有一套成熟的规范,其中的模块也在不断更新,特别是浏览器对CSS3特性的支持也在不断变化,同时没有足够的时间去学习和研究W3C官方文档和规范,致使我们学习CSS3变得更为复杂.     为什么会选择这个时候编写这样一本图书呢?原因很简单.对于希望Web应用开