更多企业学院:《中小企业管理全能版》183套讲座+89700份资料《总经理、高层管理》49套讲座+16388份资料《中层管理学院》46套讲座+6020份资料《国学智慧、易经》46套讲座《人力资源学院》56套讲座+27123份资料《各阶段员工培训学院》77套讲座+324份资料《员工管理企业学院》67套讲座+8720份资料《工厂生产管理学院》52套讲座+13920份资料《财务管理学院》53套讲座+17945份资料《销售经理学院》56套讲座+14350份资料《销售人员培训学院》72套讲座+4879份资料更多企业学院:《中小企业管理全能版》183套讲座+89700份资料《总经理、高层管理》49套讲座+16388份资料《中层管理学院》46套讲座+6020份资料《国学智慧、易经》46套讲座《人力资源学院》56套讲座+27123份资料《各阶段员工培训学77套讲座+324份资料院》《员工管理企业学院》67套讲座+8720份资料《工厂生产管理学院》52套讲座+13920份资料《财务管理学院》53套讲座+17945份资料《销售经理学院》56套讲座+14350份资料《销售人员培训学院》72套讲座+4879份资料更多企业学院:《中小企业管理全能版》183套讲座+89700份资料《总经理、高层管理》49套讲座+16388份资料《中层管理学院》46套讲座+6020份资料《国学智慧、易经》46套讲座《人力资源学院》56套讲座+27123份资料《各阶段员工培训学院》77套讲座+324份资料《员工管理企业学院》67套讲座+8720份资料《工厂生产管理学院》52套讲座+13920份资料《财务管理学院》53套讲座+17945份资料《销售经理学院》56套讲座+14350份资料《销售人员培训学院》72套讲座+4879份资料关键字:jbpmworkflow工作流离职啦,工作交接中,记录一下。就如同了解Servlet规范、Servlet容器设计和实现一样,学会一种workflow的建模、引擎设计和实现也是必备的。工作流这东西是业务系统的一个核心模块,现在的大多数企业业务系统大多数是业务驱动的,如新闻行业采编发、制造业的采供销、金融保险的审批等,协同OA就不用说了。BPM、ESB、SOA现在很火啊!下面的总结肯定欠成熟,70%合理就不错啦,看到这篇blog的朋友,一定要批判接受哦。当前我指的JBPM是3.2版本,因为从JBPM2.0到3.0,其API从package到class都完全重新设计了,以及其背后的建模思想和架构。在2.0版本里,是按照Spring+Hibernate那种TransactionScript方式组织的,OO的概念比较弱,里面是大量的interface、impl、service。而3.0版本,完全按DomainModel方式组织,Hibernate透明持久化,它是我见到的O/RMapping最优雅的应用。在当前的3.2版本里,其整体架构可以这么去理解:领域对象,如ProcessDefinition、ProcessInstance、Node、Token、Transition等,都是RichModel,里面的方法主要是处理业务,以及建立领域对象之间的关联,持久化则完全放在XXXSession中,如TaskMgmtSession,GraphSession等,也可以认为这些XXXSession是DAO,负责处理持久化。另外,org.jbpm.persistence.db.DbPersistenceService这些类相当于最底层的数据库Helper类。总之,JBPM的技术架构非常清晰易懂,也是非常典型的DomainDrivenDesign,在这种架构中,分层的概念被弱化了。上面是从架构的角度看待JBPM设计,其引擎设计和实现,则隐藏在架构下。了解其引擎设计思想,我的建议是,先仔细读读JBPM的UserGuide第四章GraphOrientedProgramming,专门探讨流程建模的理论,里面附带了一个微型的JBPM实现,几乎包括流程建模的绝大部分,如顺序流、并行、分支等:,我建议研读JBPM源码前,先把这个理解透,JBPM的流程引擎核心代码和它非常相似,包括类名,只是扩展了一些。我用代码统计工具统计了一下,JBPM源码总共4w多行,除去注释和空行,约2万6千行。需要我们hack的核心、比较难、代码多的类约40个(共400多),反正它花了我整四天的时间,现在基本都弄清楚了。我主要是通过一个请假流程的部署、创建、任务执行来动态debug、静态查看的。JBPM源码中最难读懂的那部分是引擎调度,也就是org.jbpm.graph相关的几个包,最重要的是GraphElement和其子类Transition等、Node及其子类Fork等、ExecuteContext和Token。而引擎调度这部分,JBPM附带了一个微型JBPM实现,我在前...