首先十分感谢作者给我这个机会在他的作品即将问世之前做一些感想,也正好让我能在忙碌中抽空回顾一下这么多年在技术平台方面走过的路以及在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做应用的人们参考的最佳实践。

笔触于此,抬眼已很晚了,一气呵成就先写这么多。让我们一起读完全书后再回来一起思考和回味下面这两个问题吧!

l 有想法、专注、愿意分享的年轻人,我们应该有怎样的IT人生?

l 业内规范的演化进步,我们又会遭遇怎样的IT进程?

jBPM4工作流应用开发指南的更多相关文章

  1. 企业门户(Portal)项目实施方略与开发指南

    <企业门户(Portal)项目实施方略与开发指南> 基本信息 作者: 郑文平    丛书名: 企业大型应用集成丛书 出版社:电子工业出版社 ISBN:9787121211843 上架时间: ...

  2. 免费下载获取Odoo中文开发 指南 手册

    引言 Odoo是一个强大的商业应用开源平台.在此基础上,构建了一套紧密集成的应用程序,涵盖了从CRM到销售到股票和会计的所有业务领域.Odoo有一个动态和不断增长的社区,不断增加功能.连接器和其他商业 ...

  3. ASP.NET Aries 开源开发框架:开发指南(一)

    前言: 上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到. 所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架 ...

  4. FreeMarker模板开发指南知识点梳理

    freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生 ...

  5. Jetty使用教程(四:21-22)—Jetty开发指南

    二十一.嵌入式开发 21.1 Jetty嵌入式开发HelloWorld 本章节将提供一些教程,通过Jetty API快速开发嵌入式代码 21.1.1 下载Jetty的jar包 Jetty目前已经把所有 ...

  6. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

  7. iOS原生地图开发指南续——大头针与自定义标注

    iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/23 ...

  8. Angularjs中文版本开发指南发布

    从本人开始在写关于Angularjs的文章开始,也算是见证了Angularjs在国内慢慢的火起来,如今的Angularjs正式如日中天.想知道为什么Angularjs会这么火,请移步angularjs ...

  9. nodejs开发指南读后感

    nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...

随机推荐

  1. [java面试]javascript中dom取值问题radio名字一样归属于同一个组,求点击的是哪一个

    题目描述: 看如下的html文件,里面定义了一些radio类型的元素,请完成parse()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框. </pre><pre code ...

  2. 极光推送---安卓Demo

    对于一个一直干.net的程序媛来说,冷不丁的让小编干安卓,那种感觉就好似小狗狗咬小刺猬一样,不知道从哪儿开始下手,对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下 ...

  3. Android的原始资源Raw和Assert资源的使用-android学习之旅(五十七)

    代码示例 public class MainActivity extends Activity{ MediaPlayer mediaPlayer1,mediaPlayer2; @Override pr ...

  4. MyBatis主键生成器KeyGenerator(一)

    Mybatis提供了主键生成器接口KeyGenerator,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 . 由于 ...

  5. Unity UGUI基础之Button

    UGUI Button,可以说是真正的使用最广泛.功能最全面.几乎涵盖任何模块无所不用无所不能的组件,掌握了它的灵巧使用,你就几乎掌握了大半个UGUI! 一.Button组件: Interactabl ...

  6. Java学习从菜鸟变大鸟之三 多线程中Thread 和Runnable的区别与运用

    多线程机制是java中的一个特点,掌握它对后面的知识的理解至关重要,是java工程师的必备知识,多线程指在单个程序中可以运行多个不同的线程执行的不同的任务,线程是一个程序内部的顺序控制流.进程是静态的 ...

  7. 尚学堂马士兵struts2 课堂笔记(二)

    14通配符问题 其实这个问题看一个例子就ok <package name="actions" extends="struts-default" names ...

  8. Java:函数,类,数组之间的运用

    在我的demoe类中,我实现了以下方法: 这个类在另外一个文件,demoe.java中 public class Demoe { //计算一个数字因子的个数 public static int get ...

  9. Ajax分页 Spring MVC + Hibernate

    效果图: 1.  添加公共类.方法.代码 1.    分页类:Page.java package cn.com.aperfect.sso.base.dao; import java.util.Arra ...

  10. 【IOS 开发】Object - C 语法 之 类型转换

    作者 : 万境绝尘 (octopus_truth@163.com) 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/3913507 ...