JBPM源码浅析

本文深入分析JBPM 3.2的架构和设计,介绍其由Transaction Script到Domain Model的转变,强调其清晰的Domain Driven Design。核心难点在于引擎调度,特别是GraphElement和Transition。JBPM的配置、服务管理和流程部署主要涉及org.jbpm和org.jbpm.jpdl.xml包。任务管理、任务分配和任务表单设计也进行了详述,并指出任务查询和日志记录的扩展需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前我指的JBPM是3.2版本,因为从JBPM2.0到3.0,其API从package到class都完全重新设计了,以及其背后的建模思想和架构。 在2.0版本里,是按照Spring+Hibernate那种Transaction Script方式组织的,OO的概念比较弱,里面是大量的interface、impl、service。而3.0版本,完全按Domain Model方式组织,Hibernate透明持久化,它是我见到的O/R Mapping最优雅的应用。

在当前的3.2版本里,其整体架构可以这么去理解:领域对象,如ProcessDefinition、ProcessInstance、 Node、Token、Transition等,都是Rich Model,里面的方法主要是处理业务,以及建立领域对象之间的关联,持久化则完全放在XXXSession中,如 TaskMgmtSession,GraphSession等,也可以认为这些XXXSession是DAO,负责处理持久化。另 外,org.jbpm.persistence.db.DbPersistenceService这些类相当于最底层的数据库Helper类。总 之,JBPM的技术架构非常清晰易懂,也是非常典型的Domain Driven Design,在这种架构中,分层的概念被弱化了。

上面是从架构的角度看待JBPM设计,其引擎设计和实现,则隐藏在架构下。了解其引擎设计思想,我的建议是,先仔细读读JBPM的User Guide第四章Graph Oriented Programming,专门探讨流程建模的理论,里面附带了一个微型的JBPM实现,几乎包括流程建模的绝大部分,如顺序流、并行、分支等ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值