揭秘jbpm流程引擎内核设计思想及构架------作者胡长城前言流程引擎内核仅是“满足Process基本运行”的最微小结构,而整个引擎则要复杂很多,包括“状态存储”、“事件处理”、“组织适配”、“时间调度”、“消息服务”等等外围的服务性功能
引擎内核,仅包含最基本的对象和服务,以及用于解决流程运行问题的调度机制和执行机制
如果,你掌握了一个流程引擎的灵魂,你才有能力理解它的全部
否则,一个引擎对你来说,可能只是一个复杂的结构,丰富多彩API、令人眼花缭乱的“功能”和“服务”而已
本身工作流这个领域就是一个很“狭窄”的领域,国内的厂商也不是很多,其中有部分实现技术并不弱
但可能涉于安全等因素,并没有多少技术人员探讨“深度的工作流技术实现问题”
而广大的开发爱好者却还在花费大量的时间在摸索“如何理解工作流、如何应用工作流”
所以在此之前,国内尚未有一篇技术文章探讨工作流引擎内核的实现,当然也没有探讨jBpm引擎内核的文章了
javaeye
com技术站点和我的blog(http://blog
net/james999)上有几篇专门探讨jbpm应用的文章,对于初步想了解如何使用jbpm的读者来说,值得看看
对于这方面的技术分享,开源是个不错的突破口
本篇就是以jBpm为实例,来诠释工作流引擎的内核设计思路和结构
但是这仅仅是从jBpm的实现角度来辅助大家理解,因为工作流引擎内核的设计、实现是有很多方式:这会因所选的模型、调度算法、推进机制、状态变迁机制、执行机制等多方面的不一样,而会差别很大
比如基于ActivityDiagram模型的jBpm和基于FSM模型的OSWorkflow引擎内核之间就有很大的差别
相比较而言,jBpm的模型比较复杂,而引擎内核实现的比较“精简”,非常便于大家“由浅入深的理解”
1概念的基础本文的读者群主要是面向有一定工作流基本概