1. 概览
1.1什么是jbpm?
jbpm是一个灵活的业务流程管理组件(BPM).它是轻量级的,完全开源的(基于apache的开源协议)并且是java编写的。
它允许您在整个生命周期去模拟、执行和监控整个流程。
一个流程允许您通过一个流程图来描述您需要执行的订单。这大大提高了您的业务逻辑的可见性和灵活性。jBPM以可执行的业
务流程,这些业务流程包含足够的细节,所以他们能在业务流程引擎(BPM)上执行。是一个能被用于特定业务领域的流程,
也能被业务流程用户理解,又能被开发者直接开发的。
jBPM核心纯粹是使用java编写的轻量级的、可扩展的工作流引擎。允许你去执行最新版本的流程引擎规范(BPMN)2.0。它可以在嵌入在任何java环境的应用程序或者服务里面。
有大量的流程引擎工具:
BPM在业务分析师、开发人员和最终用户之间架起了一座桥梁,通过提供在某种程度上流程管理功能和工具,让业务用户和开发人员都喜欢它。特定于域的节点可以插入面板,让业务人员更容易理解流程。
jBPM需要灵活的建模来实现自适应和动态的流程,真实情况下不能使用一个固定的流程来描述。
jBPM也不是一个孤立的流程引擎。复杂的业务逻辑也可以通过配合业务规则和复杂的事件流程来建模的。当你去建立你带有一组流程、规则、事件的业务逻辑的时候,jBPM可以使用Drools来去帮助你去构建它们。
除此之外你还有很多可以选择的构建你的流程的工具,例如基于Eclipse和Web的设计器和控制台。
1.2概览
图1.1
这个图像给出一个jBPM的概览。jBPM可以嵌入到很多其他的服务中(图中的灰色部分),但是我们专注于jBPM自身的部分。
1、当你执行业务流程的时候,流程引擎是最核心的(其他组件都是可以选在的,虚线标示的。)无论什么时候都可以应用服务都可以执行核心引擎。
① 、一个可选的核心服务是日志(History Log), 这个日志可以记录所有当前的和以前的所有的流程状态。
② 另一个可以选的核心服务是人工任务(Human Task)服务,如果需要人工来执行流程可以选在这个服务。
2、有两种图形编辑器可供选择:
③ Eclipse插件是一个扩展了Eclipse工具的,主要是给开发者使用的,允许你拖拽来画流程图,很强的debug功能等等。
④ Web编辑器可以给业务人员在web环境下面画流程图。
⑤ Web表单构建工具(web formbuilder)可以创建、生成、编辑流程表单(开始或者完成任务节点)。
3、Guvnor是一个可选的组件,可以存储你的业务流程。它提供协作和版本控制等等。有在Eclipse插件和Web编辑器之间的集成,可以轮流方便使用。
4、Web编辑器控制台允许业务人员管理他们的运行时流程(管理流程例如:启动流程、检查流程实例等等。),管理任务列表、监听流程运行、和查看记录。
每个组件在下面都有详细的描述.
1.3核心引擎
jBPM的核心引擎是项目的主要部分。执行你的业务流程的是一个轻量级的工作流引擎。
它可以嵌入你的程序中或者部署成一个服务(也有可能使用云服务)。下面是它的主要功能:
核心引擎可以嵌入一些其他的(独立)服务:
1.4 Eclipse编辑器
Eclipse编辑器是Ecilpse开发工具的一个插件。可以编辑开发环境下的业务流程。主要是给开发人员使用的,可以创建业务流程(使用拖拽方式)和很多测试、debug功能。
图1.2 Eclipse编辑器
包含的功能:
1.5 Web设计器
Web设计器可以创建web环境下的业务流程。主要目的是给业务人员来使用的,提供图形编辑(使用拖拽)、查看功能,类似Eclipse编辑器。支持基于Eclipse和Web之间转换。
图1.3 Web设计器创建BPMN2流程
1.6 表单构建器Form Builder
一个基于Web的表单构建器,通过使用WYSIWYG Web Builder编辑器可以创建、生成、编辑表单(开始一个流程、完成一个流程任务功能)。通过拖拽不同表单元素到面板里,非技术人员可以创建任务表单。
1.7 老板库
你可以随意使用一个或者多个老板库去存储你的业务流程(和人工流程)。Web设计器是嵌入在老板库里面,可以让业务人员使用,也可以让你(开发人员)从应用程序中分离管理你的流程,它提供:
1.8 Web管理控制台
Web控制台可以管理业务流程。主要是给业务人员使用的,主要包含的功能:
图1.4 管理业务流程实例
1.9 文档
文档结构如下: