一、什么是工作流
工作流管理联盟(WFMC)把工作流定义为:全部或部分由计算机支持或自动处理的业务过程。
工作流管理系统(Workflow Management System,WFMS)用来支持流程定义、管理和执行一批设定好的工作流程。这套系统的目标是:管理工作流程以确保工作能够在正确的时间内被所期望的人执行。在自动化进行的业务过程中“插入”人工的干预,是工作流系统开发者的主要工作内容。
二、JBPM的定义:
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。
jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。
三、jBPM 的优势
经过这么多年的发展,JBoss jBPM 已经成为一流的开源工作流产品:
- 每月超过20 000 次的下载量。
- 极度活跃的用户论坛和开发者论坛。
- 频繁更新 Web 站点和 Wiki。
jBPM 不仅有着开源社区的支持,同时作为 RedHat/JBoss 的子项目,也具有一定的商业支持保证。所以它可以作为众多项目型公司低成本工作流应用解决方案。
jBPM 是 JBoss 旗下的子项目,JBoss下还包括有 Seam(JavaEE开发框架)、Drools(规则引擎)、 Hibernate(ORM持久化框架)等众多领域的优秀开源项目。由于同属于一个产品家族,所以它们能与 jBPM 完美结合,相互之间都留有接口,方便开发者对业务进行扩展,也为 jBPM 提供更多的可延伸价值。
jBPM 还是 JBoss SOA 平台的一个重要组件,与 JBoss Drools 规则引擎和 JBoss ESB 企业服务总线一起,可以为用户提供全面、完整的 SOA 解决方案。
jBPM 是一个支持"嵌入式"的业务流程管理产品,理论上可以运行在任何JavaEE应用服务器之上,也可以运行在桌面应用中。jBPM4 在流程虚拟机(PVM)技术的基础上,能够同时支持多种流程定义语言。
四、JjBPM4 的特点
1、嵌入式的工作流引擎
开发者可以把 jBPM4 框架作为业务流程管理的基础,在此基础上开发自己独特的业务流程管理模块和功能。在部署时,只需要把 jBPM4 作为项目的依赖库发布就可以咯 O(∩_∩)O哈哈~
2、可插拔的体系架构
jBPM4 采用了模块化的架构设计,采用了 IOC(依赖注入)的设计理念,各模块之间可以比较方便地解除耦合或替换不同的实现,例如持久化、事务处理、身份认证、日志服务等,都是由可选模块实现的。jBPM 的可插拔体系架构,为开发者灵活选择 jBPM 的功能、自定义已有功能和拓展新功能提供了"无限可能"。
3、 易扩展的流程语言
开发者还可以通过定制新的活动类型或者完全重新设计一种新的流程定义语言来描述特定领域的业务流程,满足独特环境下的业务需求。
4、技术方面的特点
- jBPM4 的模型是基于UML Activity Diagram,这些需求人员和开发人员都能通过流程图来理解业务流程。
- jBPM4 提供了可定制的 Event - Listener 观察者模式来处理事件触发,以辅助活动扩展的处理。
- jBPM4 提供了灵活的 EL 条件表达式机制,来辅助条件解析、简单业务逻辑的脚本计算与处理。
- jBPM4 提供了可扩展的 Task 及任务分配机制,来满足复杂的人工活动处理。
- 借助 Hibernate ORM 的优势,jBPM4 能够运行在几乎所有的数据库系统上。