jbpm5简介

http://www.pcw8510.com/?p=4468
1.0.JBPM5组建


1.1.什么是JBPM
jBPM是一个灵活的业务流程管理组件。它是轻量级,完全开放并且是使用java语言编写。它允许你建模、执行和监控业务流程,遍及整个的生命周期。

业务流程允许你去建模一个通过描述要达到的目标并按一定次序执行的每一步来作为一个流程表。这样能够明显的提高你的业务流程的可视化和灵活性。jBPM关注于可执行的业务流程,这些业务流程包含足够的细节而使他们能够真正的在BPM引擎上执行。可执行的业务流程解决了业务用户和开发人员的隔阂,这些可执行的业务流程是更高级的并且应用了能够被业务用户所理解并且能够直接执行的特有的域概念。



jBPM的核心是一个纯java语言编写的轻量级、可扩展的工作流引擎,它允许你去执行使用了最新的BPMN 2.0规范的业务流程。它能够在任何的java环境中运行或者嵌入到你的应用中或者作为一个服务。

在核心引擎的顶端,有很多的特性和工具被提供用来支持遍及整个业务流程的生命周期。

l  基于Eclipse和Web的编辑器支持支持你的业务流程的图形化创建。

l  持久化插件和基于JPA/JTA的事务处理。

l  基于WS人工任务的人工任务服务插件针对于包含了各种需要被人工角色执行的任务。

l  控制台管理支持流程实例的管理,任务列表和任务表的管理,和报告。

l  可选择的流程知识库能够配置你的流程

l  历史日志(用于查询)

l  可以和 Seam, Spring, OSGi 进行整合

BPM架起了业务分析,开发人员和最终用户之间的桥梁,并且提供了业务用户和开发人员都喜欢的流程管理特性和工具的方式。特有的域节点能够被插入到模板中,使得流程能够使业务用户更加容易理解。

JBPM提供了可适应性和动态性流程,流程需要灵活的去建模复杂的、真正生命的那些不能够容易的使用死板的流程所描述的情形。我们提供了最终用户的控制权限通过允许他们去控制应该被执行的流程的每一个方面和动态的变更流程等等。

当然jBPM也不仅仅是一种独立的业务引擎,复杂的业务逻辑能够作为一种拥有业务规则的业务流程和复杂事件流程的结合而被建模。jBPM能够和Drools项目相结合来支持统一的环境,结合这些范例你可以建模你的业务逻辑作为流程、规则和事件的结合。除了核心引擎自身之外,还有一些可添加和可选的组件你能够使用,例如基于Eclipse和Web的设计器和控制台管理。

1.2.概览

图片1.1

这张图片提供了jBPM项目不同组件的概览。jBPM能够整合很多其他的服务,但是这我们过关注的组件式jBPM项目自身的一部分。

l  流程引擎是项目的核心并且是必须的,如果你想去执行业务流程,你的应用服务在任何必须的时候都可以调用核心引擎。

l  有一个可选择的核心服务时历史日志,它将会记录你所有的流程实例的当前和先前状态的有关信息。

l  另外一个可选的核心服务时人工任务服务,如果人工角色参与了流程,它将会管理人工任务的生命周期。

l  提供了两种类型的图形编辑器来定义你的业务流程。

l  Eclipse插件是Eclipse集成开发环境的一种扩展,目标针对于开发人员,同时允许你通过拖拽的方式创建你的业务流程,提供高级的测试。

l  基于Web的设计器允许业务用户在基于Web的环境下管理业务流程。

l  Guvnor知识库是一个可选的组件,它能够被用来存储你所有的业务流程。它支持协作和编译等等。Eclipse插件和基于Web的设计器的结合,支持迂回流动的工具。

l  jBPM控制台是基于Web的控制台,它允许业务用户去管理他们的业务流程、任务列表和查看报告。

每个组件的更多细节将会在下面被描述。

1.3.核心引擎
jBPM核心引擎是项目的核心。它是一种轻量级的工作流引擎用来执行你的业务流程。它可以作为你的应用的一部分被嵌入,或者配置作为一项服务。这里还有很多的特性:

l  可靠地、稳定地核心引擎用来执行你的流程实例

l  对BPMN 2.0 规范的本地支持,执行业务流程

l  强壮的执行和监控能力

l  轻量级的(能够被配置在几乎任何的支持简单的java运行环境的设备上,而不需要任何的Web容器)

l  (可选择的)带有一个默认的JPA执行的持久化插件

l  带有一个默认的JTA执行的事务支持插件

l  作为一个普通的流程引擎工具,它能够被扩展来支持新的节点类型或者其他的流程语言

l  监听器可以通报各种事件

l  具有移植运行中的流程实例到他们流程定义的一个新版本中的能力

当然,核心引擎能够和其他的核心服务相整合:

l  当人工角色需要参与流程的时候,人工任务服务能够被用来管理人工任务。它是一个完整的插件并且是基于WS人工任务规范的默认工具,管理任务的生命周期、任务列表、任务表和一些更高级的特性,例如自动调整、委托、基于规则的分配等等。

l  历史日志可以存储所有在引擎上的流程的执行的有关信息。如果你需要访问历史信息作为运行时的持久化仅仅存储所有活动流程实例的当前状态这就是必需的了。历史日志能够存储活动的和完整的流程实例的所有的当前和历史状态。它能够被用来查询任何和流程实例执行相关的信息,用来做监测分析等等。

1.4.Eclipse编辑器

Eclipse编辑器是针对于Eclipse集成开发环境的插件,它允许你整合你的业务流程到你的开发环境中。它的目标是针对于开发者,并且有一些向导去开始,有一个图形编辑器用来创建你的业务流程和许多的高级测试和调试能力。



图片 1.2 Eclipse编辑器创建BPMN2流程

它包含的特性有:

l  创建一个新的jBPM项目的向导

l  针对BPMN 2.0 流程的图形编辑器

l  插入你拥有的特有域节点

l  验证

l  运行时支持(你能够选择你喜欢用的jBPM版本)

l  图形化调试,可以查看一个被选择的会话的所有运行时流程实例,可以显示一个特有的流程实例的当前状态等等。

l  审核视图得到一个在运行时所发生的概述

l  和知识库集成

1.5.Web的设计器

基于Web的设计器允许你在基于Web的环境中建模你的业务流程。它所针对的目标更多的是业务用户和提供一个图形编辑器来显示和编辑你的业务流程(使用拖拽),类似于Eclipse插件。它支持Eclipse编辑器和基于Web设计器的迂回流动。



图 1.3 基于Web的设计器创建BPMN2流程

你能够随意的使用一个或者多个知识库来存储你的业务流程。基于Web的设计器被结合到Guvnor知识库中,它所针对的目标是业务用户和允许你从你的应用中分离处理管理你的流程。它支持:

l  一个知识库服务用来存储你的业务流程和相关的人工品,使用一个JCR知识库,它可以作为一个文件系统或者使用REST服务来支持译本、远程接入。

l  基于Web的用户接口用来管理你的业务流程,目标针对于业务用户,支持你流程的可视化,当然还有分类,方案测试。部署配置等等。

l  协作特性对于有很多角色的共同工作可以在同一个流程中定义。

l  知识库代理可以在知识库中很容易的创建一个基于流程定义的新会话。如果一个新的流程已经被配置,它支持动态的升级。

1.6.JBPM控制台
业务流程能够通过一个Web控制台管理。它是主要针对于业务用户,它的主要特性有:

l  流程实例管理:启动一个新的流程实例的能力,得到运行时流程实例的列表,可视化查看一个明确的流程实例等等。

l  人工任务管理:能够得到所有当前的任务列表,完善任务列表上的任务。

l  报告:得到你的应用状态的概览,系统动态产生报告,给你一个关键执行指示的概述



图 1.4 管理你的流程实例

1.7.文档结构
文档的结构如下:

l  概述:概述章节给你一个不同组件的概述

l  获得开始:获得开始章节教你从哪下载源文件和包含很多有用的链接

l  安装:安装章节帮助你得到一个能够运行的演示程序,包括很多的jBPM组件并且通过他们来应用一个简单的例子,还有包括录屏的10分钟指南。

l  核心引擎:下面的四章描述了针对于开发人员的Eclipse插件,有一个旧版本的和一个新的BPMN2.0 工具正在开发当中。

l  设计器:描述了基于Web设计器允许业务用户去编辑在一个基于Web的上下文中的业务流程。

l  控制台:jBPM控制台能够被用来管理流程实例,人工任务列表和报告

l  重要的特性

1.        人工任务:当使用人工角色的时候,你需要一个人工任务服务区管理任务,任务列表的生命周期等等。

2.        特有的域流程:可以在你的流程中插入你自己的高级的、特有域的节点

3.        测试和调试:如何去测试和调试你的流程

4.        流程知识库:一个流程知识库能够用来管理你的业务流程

l  复杂的概念

1.        业务活动监视:事件处理用来监视你的系统状态

2.        灵活的处理:建模很多适用性、灵活性的流程用来升级流程构造并使业务规则和事件处理相结合

3.        整合:怎样和其他的技术,例如maven,OSGi等等整合

转自:http://blog.csdn.net/howareyoutodaysoft/article/details/8040607

猜你喜欢

转载自panyongzheng.iteye.com/blog/1860911
今日推荐