jBPM是一个开源的、纯JAVA的、轻量级的支持多种可执行流程语言的商业流程管理(BPM)工作流引擎。他可以运行在任何Java EE应用服务器或者简单的配置了JDBC的JVM中。实际生产中有很多种可执行的流程语言,每种语言都是面向特定的业务环境。jBPM允许这些不同的流程语言都在同一种技术上建立模型,也就是流程虚拟机(PVM)。jBPM目前支持三种不同的流程语言:jPDL,WS-BPEL 和 Seam框架的Pageflow。未来jBPM还会支持更多的流程定义语言。jBPM提供了开发流程、发布流程、执行流程、管理角色任务、管理商业流程、协调Web Service等功能。
jBPM技术特点
JBoss jBPM 是一个支持复杂的企业级应用的可扩展的工作流管理系统。JBossjBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等。把这些操作绑在一起,JBoss jBPM 就有了最强大和易扩展性的控制流机制。对于企业应用来说JBoss jBPM 只有很小的倚赖性,可以很容易的作为JAVA库来使用,当然它也可以用在吞吐量极为关键的J2EE集 群应用服务器环境中。JBoss jBPM 可以同任何数据库配置,可以部署在任何应用服务器上。
为什么要使用jBPM
对于企业来说,随着商业环境的发展,企业的业务流程面临越来越多的变化和挑战,业务设计面临更大的灵活性需求,流程设计人员和程序员之间需要一个更加灵活有效的沟通方式。
对于使用jBPM的企业来说至少能从以下两个方面收益:
● 开发部署方便
工作流管理系统能够简化企业级软件开发和维护。降低开发风险,通过使用状态和动作这样的术语,业务分析师和开发人员使用同一种语言交谈。这样开发人员就不必将用户需求转化成软件设计了。实现的集中统一,业务流程经常变化,使用工作流系统的最大好处是:业务流程的实现代码,不再是散落在各种各样的系统中 。加快应用开发,你的软件不用再关注流程的参与者,开发起来更快,代码更容易维护。部署更加方便,流程的改变不需要把全部的代码重新部署,而只是需要更改一下商业流程的描述文件。
● 业务流程管理
使用jBPM可以提高业务流程管理的效率,可以更加灵活的控制业务流程,使流程可以按照业务的需要重新设计。并且在开发过程中更加重点的关注流程,从而使流程更加流畅和简单。同时使用jBPM可以提高对迭代开发的支持。如果软件中业务流程部分不容易更改,企业就会花很大的精力在开发前的业务流程分析中,希望一次成功。但是现实是,在任何软件项目开发中,这都很少能实现。工作流系统使得新业务流程很容易部署,业务流程相关的软件可以一种迭代的方式开发,因此使用工作流系统使开发更有效、风险更低。
jBPM可以完全的记录流程的执行情况,每一步的操作都是被记录到数据库中,可以方便以后的审计和报表生成。在您的JAVA应用中嵌入多种流程定义语言jBPM开发工具中包含了不同的子项目,它包括了一个流程虚拟机(PVM),一个可视化图形工具(GPD),jPDL支持包,BPEL支持包。
流程虚拟机(PVM)
流程虚拟机(PVM)是一组简单的JAVA类库,用来生成和执行不同流程语言所定义的商业流程。它是所有类型工作流、商业流程管理(BPM)和流程语言的基础。jBPM的流程虚拟机是嵌入式的,传统的工作流技术一般是提供一个独立的工作流服务器,然后通过和工作流服务器建立连接交换消息。这种重量级的设计方案对于传统的系统来说部署代价太高,不容易使用。PVM是建立在嵌入式的流程管理概念上的,这就意味着工作流引擎是应用程序的一部分,在持久化工作流的时候jBPM的数据库表结构可以是应用数据库中的一部分。并且PVM是运行在独立的,完全的JAVA环境中,也就是说PVM可以是Swing程序的一部分,可以是Web应用的一部分或者是企业级JAVA EE的一部分,可以使用或者不使用数据库的支持。PVM支持多种流程定义语言,不同的语言在运行时被翻译为一组JAVA接口,所以对于jBPM来说开发一种支持的流程定义语言是简单的,企业可以很方便的扩展PVM所支持的语言,来实现特定领域和行业的流程定义语言。
jPDL(JAVA工作流定义语言)
jPDL是具有出色的建模框架、强大的任务管理的与JAVA完全集成的流程定义语言。它是一种紧凑的、简洁的、可读性很强的XML格式的语言。jPDL支持商业分析师和软件开发人员的合作。首先jPDL是可视化开发的,它可以简单方便的定义流程。其次,开发人员可以完全不关注商业流程,而把注意力放在技术细节上。jPDL有一个图形开发工具,它可以把图形表示的流程和XML语言实时的同步。jPDL可以在XML中嵌入简单的JAVA代码,可以使系统在不重新编译的情况改变行为模式。
BPEL(SOA流程定义语言)
BPEL是面向服务(SOA)的流程定义语言的标准。它是基于WSDL和企业服务总线的(ESB)强大的集成技术。使用BPEL,所有的应用通过企业服务总线进行沟通和调用,可以通过简单的脚本在原有的服务的基础上定义新的Web Service,然后把新的服务发布在企业服务总线上。
流程的图形设计工具
jBPM包含了一个图形化设计流程的工具(GPD)。它是一组eclipse插件,最初是专门用来设计jPDL的图形化流程的,后来随着Seam使用jBPM来定义页面跳转流程,GPD同时也添加了支持Seam PageFlow的功能。用户可以使用GPD来设计、测试、发布、监控商业流程。另外程序开发人员可以利用GPD很方便的实现单元测试。
JBPM的特点和优势
嵌入式的工作流引擎
jBPM是完全的嵌入式的工作流开发平台,区别于传统的工作流平台,它不需要独立的工作流服务器,减少了硬件的投入,同时减低了应用部署的网络复杂度,使应用更加容易的实现集群。企业可以把jBPM作为企业应用的一部分,在它的基础上开发自己的模块和功能。在应用部署时,只需要把jBPM作为JAVA Library发布就可以了。
图形化开发工具
jBPM提供了图形化的开发工具(GPD)。商业分析师可以简单的利用图形开发工具画出商业流程而不关心具体实现。然后程序员可以在此基础上添加技术细节,包括各种任务和节点的属性以及XML的源代码。开发人员可以利用图形化开发工具实时的发布和测试商业流程。
轻量级、100%纯java实现
jBPM为100% java实现,不包含本地代码,最大限度的实现跨平台,跨数据库的支持。
开源及独特的订阅服务模式
? 开放源代码。对源代码的访问可以帮助用户快速定位故障所在。
? 产品的透明度。用户可以在 jira.jboss.com查看产品的发展路线图,并实时查看新特性和bug修复进展。
? 用户对产品的影响力。用户可以在jira.jboss.com提交申请和投票决定jBPM产品的发展方向,需要增加哪些新特性。
? 基于订阅的模式。降低了企业成本,提高了投资回报率。用户可以与产品的核心开发人员得到直接的联系,得到开发支持。
支持多种流程定义语言,灵活且易于扩展jBPM目前支持jPDL,BPEL,Seam Pageflow三种流程定义语言。它具有开放的扩展接口,用户可以很简单的通过实现这些开放的接口来支持其他的流程定义语言。
可视化管理工具平台
jBPM有一个基于浏览器的管理平台,它可以实时的监控工作流引擎内的流程运行的情况,包括变量内容,流程状态,角色的任务列表等信息,并且可以实时的调度流程。同时还可以管理不同版本的流程定义。
关于JBPM更全面详细的内容可到oecp社区http://www.oecp.cn/hi/yongtree/blog/2172免费下载