首先十分感谢作者给我这个机会在他的作品即将问世之前做一些感想,也正好让我能在忙碌中抽空回顾一下这么多年在技术平台方面走过的路以及在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. mysqldump的几个主要选项探究

    0.前言 本文主要探讨 mysqldump 的几种主要工作方式,并且比较一下和 mk-parralel-dump的一些差异,为备份方式的选择提供更多的帮助. 1.mysqldump 首先来看下 mys ...

  2. 微信公众号Unauthorized API function

    在进行微信公众号第三方开发的时候经常遇到这个问题,有两个原因: 1. 你的公众号没有这个api的功能(比如你是个人订阅号等). 2. 你的公众号有这个功能,但是你公众号没有进行认证. 具体可以查看微信 ...

  3. (七十六)CoreLocation(二)获取经纬度、速度、方向,进行区域监听

    上节说明了如何在iOS7和iOS8上完成授权,并且开始获取位置,这一节介绍获取位置信息的方法. [定位精度] 定位精度有多种选择:根据字面意思即可理解 extern const CLLocationA ...

  4. Redefine:Change in the Changing World

    EMC World 2014的主题就是REDEFINE.的确,现在科技的发展在重新定义了技术,影响了生活,改变了你我. 对于一个有数万员工,甚至数十万员工的企业来说,Redefine无疑更加具有挑战, ...

  5. python读写word、excel、csv、json文件

    http://blog.csdn.net/pipisorry/article/details/50368044 python读写word文档 (include wps)将word文档转换成txt文档 ...

  6. Socket编程实践(10) --select的限制与poll的使用

    select的限制 用select实现的并发服务器,能达到的并发数一般受两方面限制: 1)一个进程能打开的最大文件描述符限制.这可以通过调整内核参数.可以通过ulimit -n(number)来调整或 ...

  7. XBMC源代码分析 7:视频播放器(dvdplayer)-输入流(以libRTMP为例)

    前文分析了XBMC的基本结构: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 XBMC源代码分 ...

  8. python的IndentationError: unexpected indent python

    都知道python是对格式要求很严格的,写了一些python但是也没发现他严格在哪里,今天遇到了IndentationError: unexpected indent错误我才知道他是多么的严格.    ...

  9. 关于对数组和指针的测试与分析OC

    前言: 这个笔试题想必很多小伙伴都很面熟把,差不多10个人有7个人不会做这道笔试题,或许有知道答案的,但是仅仅知道答案,心里还是一头雾水.如果你真的不会那就请认真看完本文学习一下吧! 错误想法: 有的 ...

  10. ubuntu中taglist和ctags安装使用

    1.使用命令安装ctags: 2.安装taglist 下载: http://vim.sourceforge.net/scripts/download_script.php?src_id=6416 拷贝 ...