【JBPM5.4中文版】第一章

来源:互联网 发布:mac设置iphone6铃声 编辑:程序博客网 时间:2024/05/01 23:28


1. 概览

       1.1什么是jbpm?

              jbpm是一个灵活的业务流程管理组件(BPM).它是轻量级的,完全开源的(基于apache的开源协议)并且是java编写的。

       它允许您在整个生命周期去模拟、执行和监控整个流程。

      

       一个流程允许您通过一个流程图来描述您需要执行的订单。这大大提高了您的业务逻辑的可见性和灵活性。jBPM以可执行的业

       务流程,这些业务流程包含足够的细节,所以他们能在业务流程引擎(BPM)上执行。是一个能被用于特定业务领域的流程,

       也能被业务流程用户理解,又能被开发者直接开发的。



jBPM核心纯粹是使用java编写的轻量级的、可扩展的工作流引擎。允许你去执行最新版本的流程引擎规范(BPMN)2.0。它可以在嵌入在任何java环境的应用程序或者服务里面。

 

有大量的流程引擎工具:

  • 基于Eclipse和基于Web的编辑器支持图形创建您的业务流程(拖放)
  • 可插拔的持久性和基于JPA/JTA事物
  • Pluggable human task service based on WS-HumanTask for including tasks that need to be performed by human actors
  • 可插拔的基于WS-HumanTask人工流程
  • 管理控制台支持流程实例管理、任务列表、任务表单管理和报表
  • 任务生成器来创建、生成或者编辑任务表单
  • 可以选择部署的流程(和其他的相关知识)
  • 历史记录(用于查询/监控/分析)
  • 与Maven、Spring、OSGi的整合等等。

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的核心引擎是项目的主要部分。执行你的业务流程的是一个轻量级的工作流引擎。

它可以嵌入你的程序中或者部署成一个服务(也有可能使用云服务)。下面是它的主要功能:

  • 很稳定的执行业务流程
  • 支持最新的业务流程建模标准(BPMN2.0)规范。
  • 性能和可以扩展性强
  • 轻量级(可以被部署在任何的java环境中,不需要任何web容器)
  • 可选的持久化层,自带默认的JPA实现
  • 作为一个通用的流程引擎实现,可以扩展新节点类型(本来jbpm没有的节点类型)或者集成其他的流程语言。
  • 监听各种事件通知
  • 能迁移运行时的流程实例到新的流程定义中

核心引擎可以嵌入一些其他的(独立)服务:

  • 当人工需要参与流程的时候,可以分配人工任务服务来管理人工任务。它是完全的可配置和默认实现是基于人工(WS-HumanTask)规范和管理任务生命周期、任务列表、任务表单和其他很多高级功能例如升级、委派、规则分配等等。
  • 历史日志可以记录所有的流程执行信息。

1.4 Eclipse编辑器

Eclipse编辑器是Ecilpse开发工具的一个插件。可以编辑开发环境下的业务流程。主要是给开发人员使用的,可以创建业务流程(使用拖拽方式)和很多测试、debug功能。




图1.2 Eclipse编辑器

包含的功能:

  • 强大的创建jBPM项目功能
  • 可以创建符合BPMN2.0规范业务流程图
  • 验证功能
  • 支持运行时(可以选择你喜欢的jBPM版本编辑器)
  • 图形debug功能,可以选择查询所有的运行流程实例的session,显示当前流程实例的状态等等。
  • 查看运行时流程的状态
  • 单元测试
  • 集成到项目中

 

1.5 Web设计器

Web设计器可以创建web环境下的业务流程。主要目的是给业务人员来使用的,提供图形编辑(使用拖拽)、查看功能,类似Eclipse编辑器。支持基于Eclipse和Web之间转换。




图1.3 Web设计器创建BPMN2流程

1.6 表单构建器Form Builder

一个基于Web的表单构建器,通过使用WYSIWYG  Web Builder编辑器可以创建、生成、编辑表单(开始一个流程、完成一个流程任务功能)。通过拖拽不同表单元素到面板里,非技术人员可以创建任务表单。

1.7 老板库

你可以随意使用一个或者多个老板库去存储你的业务流程(和人工流程)。Web设计器是嵌入在老板库里面,可以让业务人员使用,也可以让你(开发人员)从应用程序中分离管理你的流程,它提供:

  • 一个老板库服务存储你的业务流程,使用JCR库,支持版本控制,远程调用,像一个文件系统或者REST服务等等。
  • Web用户界面管理业务流程,主要是给业务人员使用,支持查询和编辑流程,也可以测试、部署等等。
  • 在业务人员和开发者之间提供协作功能。
  • 在老板库中很容易创建流程定义。在新流程部署完成后还可以选择的动态改变session。

1.8 Web管理控制台

Web控制台可以管理业务流程。主要是给业务人员使用的,主要包含的功能:

  • 流程实例的管理:开启新流程实例,列出运行时流程实例列表,图形化的查看流程实例状态等等。
  • 人工任务管理:可以得到当前的所有任务列表(也可以指定某个人或者申请)来完成任务列表(使用客户定制的任务表单)得到。
  • 业务活动监听(BAM)和报告(Report):查看应用程序状态,系统使用动态的生成(客户化)的报告,给你一个关键绩效指标(KPIs)概览。


图1.4 管理业务流程实例

 

1.9 文档

文档结构如下:

  • 概览:概览章节给出不同组件的一个大概概览
  • 入门指南:入门指南章节教你哪里去下载二进制文件盒源代码,包含很多有用的链接。
  • 安装指南:安装指南帮助你安装运行一个包含jBPM组件的例子,在10分钟内运行一个简单的入门例子。
  • 快速入门:当你完成了安装指南,你可能想试试一些通用的任务。
  • 核心引擎:下面4章节介绍核心引擎:流程引擎API,流程定义(BPMN2.0),持久化和事物等等的例子。
  • Eclipse编辑器:下面章节给开发者介绍Eclipse插件
  • 设计器:介绍Web设计器
  • 控制台:jBPM控制台可以管理流程实例,人工任务列表和报表
  • 重要功能:
    • 人工任务:当使用人工任务时候,需要一个人工任务服务来管理任务生命周期,任务列表,等等
    • 特定领域流程:在流程中插入高级别的特定领域的节点
    • 测试和调试:如何测试盒调试流程
    • 老板库:老板库可以管理业务流程
  • 核心思想
    • 业务活动监听(BAM):监听系统流程状态
    • 灵活的流程:在集成业务规则和事件流程下可以创建自适应,灵活的流程。
    • 集成:如何和其他技术集成,例如:maven,OSGi,Spring等等。






0 0
原创粉丝点击