`
ww2
  • 浏览: 422981 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

读jBpm Responsibilities

阅读更多

        jBpm3.0出来十来天了,确只是前两天利用空余时间,简单翻了翻文档介绍,却实在没有时间去再去翻源码了。3.0的模型定义整体上改动不大,但扩充了很多:多了super-state,扩充了event的定义,增加了timer和exception-handler。当然还有一个最大的扩充,那就是有了基于eclipse插件的GPD(jBpm的图形化流程定义),不像2.0还是采用swing,而且2.0简直不能用。——简要了看了一下介绍,3.0的图形化就做得人性多了,总算没白被jboss收购。



哈哈,上面只是一个引子,下面才进入正题。

既然我定的题目是“读jBpm Responsibilities”,那就要从jBpm Responsibilities 说起。

(一)首先来看看jBpm的野心

jBpm是非常有野心的。也许这种野心在其2.0的时候还没有完全显露出来。但是能够被jBoss收购,看来jBoss还是很有眼光,或者也许应该说Tom大叔很有远见和野心。

下面这段话摘自jBpm Responsibilites说明:

A new proposal
The proposal below takes the best of three worlds. In short, this is how you can think of the proposed model : Finite state machines are taken as the basis. Then the concurrency features of activity diagrams are added. And at runtime, the execution semantics of petri nets are used.

        从这句话就可以看出来,jBpm要一口气通吃三种过程建模方法(算法):利用状态机作为控制状态变迁的基础,并且扩充活动图的建模模型,执行机制采用PetriNet算法。
        当然,因为jBpm目前还仅仅定位于workflow,所以估计短时间内还不会把EPC建模方法纳入。但即使上面所说的三种过程建模方法,也足以让jBpm横扫目前所有开源工作流引擎。甚至可以毫不客气地说,其但从引擎角度来说,已经远远超越目前很多商业工作流产品。

       然而,说实在的,至少现在。我觉得这还仅仅只是Tom大叔的一个梦想。从以前分析jBpm内核代码和算法(主要是jbpm2.0版本,3.0的我还没有看)上来讲,FSM估计在jBpm是比较难应用的,除非jBpm扩充其所描述的action含义,但是这根本是不可能的。对于另外两个,Activity Diagram是jBpm的核心思想,这没地说;至于Petri Net的,jBpm是变相的用了一点,但是远达不到execution semantics这种程度。

 (二)来讲解一下Token

        把jBpm Token理解透彻了,那么也就了解一半jBpm了。
        在整个流程实例运行过程中,jBpm希望有那么一种机制,能够迅速的定位到current state。(有关current state,或者state概念,在这儿就不解释了,不懂得,自己去看jBpm帮助文档吧,这样更加直接)。
        我们知道(当然,如果你对PN熟悉的话),Petri Net利用了一种叫Token的概念,可以迅速而又准确的定位当前所处的Place和Transition,当然,对于PN来说,Token最主要的目的不是这个(而是用于使能的判断),但是却可以很有效的解决这个问题。
        而jBpm于是就借用了这个概念,引入了Token概念,我们可以迅速的利用token可以得到其当前的current state。
        但是如何解决“并行”等诸如此类的问题的迅速定位current state呢,比如splite(jBpm叫Fork)情况? jBpm为了解决这个问题,于是让Token对象维护了父子关系,这种关系在涉及到Fork的时候会产生。这个我在《工作流引擎调度算法和PetriNet》中有关jBpm的分析中也有说明。
        jBpm让Token这个对象身兼了多种使命:(1)快速定位current state (2)用于fork,join算法 (3)用于告知任务执行者的任务索引,其职能类似于我们通常所说的workitem。
        很难说这种一身多职的方式到底好与坏,至少我发现那些国外工作流大师们好像很倾向于用这种方式,比如Alast所领导的YAWL也是。

(三)Activity、State与Action
        
         这个主题在 jBpm Responsibilities 中体现的不多,另有一篇文章专门介绍了: Why the term 'activity' should be banned... (http://jbpm.org/2/state.of.workflow.html#activityshouldbebanned
       
        Tom大叔最经典的论证就是:its confusing because an activity is either a state or an action 。的确,在WFMC的概念中,对Activity的描述力度是不细的(所以采用了一大堆application,tool,auto,manual)这些附属概念。
        jBpm就直接很多,就只有State(所处的状态,或者说位置)和 Action(所执行的动作)。但是,估计Tom也遗忘了一个对Auto和Manual的理解。在jBpm中竟然只有State,而且这些State都是人工的,所谓的自动处理均是通过Action来完成—— 赫赫,好像jBpm这么处理,有些不近人情,至少我是很不习惯的。
        
        我是支持Activity这个概念的,但是却也非常喜欢jBpm的Action,以及OSWorkflow的Action。—— 呵呵,有些杂乱无章了。—— 至少我想在做引擎,会尽量多留些可扩展的接口,这几年实施的经验,让我不得不这样。国内的客户,保准准哪天又为提出一个你压根就像不到的需求······ 比如,猴子捞月。

分享到:
评论

相关推荐

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    jbpm简介\jbpm简介

    ### jBPM简介与关键技术知识点 #### 一、jBPM概述 jBPM是一个开源的、纯Java的、轻量级的商业流程管理(Business Process Management, BPM)工作流引擎。它支持多种可执行流程语言,并且可以在任何JavaEE应用...

    jbpm 案例 jbpm jbpm

    jbpm使用案例,非常不错,大家都来看看吧。

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    **jbPM 3.2 知识点详解** jbPM,全称为Java Business Process Management,是一个开源的工作流管理系统,主要用于企业级应用中的业务流程管理。jbPM 3.2是该系统的一个版本,它提供了丰富的功能,包括流程设计、...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...

    jbpm开发指南--jbpm全面介绍

    通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...

    jbpm开发环境搭建

    ### jbpm开发环境搭建知识点详解 #### 一、概述 JBPM(JBoss Business Process Management)是一款开源的工作流管理系统,广泛应用于企业级应用的流程控制与管理。本文将详细介绍基于JBPM 4.4版本在Eclipse开发环境...

    jbpm-jpdl-designer-3.0.13.zip_jbpm_jbpm design_jbpm designer_jbp

    jbpm-jpdl-designer-3.0.13 是一个与jbpm相关的软件包,主要功能是提供jbpm流程定义的图形化设计工具。jbpm(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。JPDL(JBoss ...

    jbpm

    【jbpm】是一种开源的工作流管理系统,全称为Java Business Process Management。它主要用于处理业务流程的自动化,通过定义和执行工作流程来协调应用系统中的不同组件。jbpm不仅提供了流程建模、部署、执行的能力,...

    jbpm jbpm3 jbpm4 用户和开发指南+教程+最佳实践全套

    jbpm是Java Business Process Management(Java业务流程管理)的缩写,它是一个开源的工作流管理系统,主要用于企业级应用中处理业务流程的自动化。jbpm3和jbpm4是该系统的两个重要版本,提供了丰富的功能来支持流程...

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    《jBPM4.4开发指南》与《jBPM4.4中文用户手册》是深入理解jBPM4.4这一开源工作流管理系统的重要参考资料。jBPM,全称Java Business Process Management,是一个用于执行业务流程的轻量级、灵活的开源框架,它为业务...

    eclipse安装jbpm-4.4

    ### Eclipse 安装 JBPM-4.4 详尽指南 #### 一、概述 JBPM(JBoss Business Process Management)是一款开源的工作流引擎,基于Java语言开发,用于执行业务流程。JBPM允许开发者轻松地定义复杂的业务流程,并将这些...

    JBPM采购申请系统——08_JBPM流程节点.7z

    JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...

    jbpm数据库表介绍

    jbpm 数据库表介绍 jbpm 是一个基于 Java 的 workflow 引擎,用于管理和执行业务流程。jbpm 需要持久化流程部署、流程实例、任务、用户认证等信息,于是 jbpm 设计了一系列的数据库表来存储这些信息。在 jbpm 4.4 ...

    jbpm白皮书 介绍jbpm 入门

    ### jBPM 白皮书:介绍 jBPM 入门 #### 一、引言与背景 在当今数字化转型的时代背景下,业务流程管理(Business Process Management,简称 BPM)成为了企业提升效率、优化流程的关键技术之一。BPM 提供了一种程序...

    JBPM工作原理及表结构详解

    JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了强大的业务流程建模、执行和监控能力。本文将深入探讨JBPM的工作原理、表结构及其在实际操作中的应用。 1. **JBPM特色** - **灵活...

    JBPM4 SSH EXTJS JBPM SSH EXTJS

    JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS 希望对大家有帮助。

    jbpm学习资料,jbpm教程

    jbpm(Java Business Process Management)是一款开源的工作流管理系统,它为业务流程自动化提供了一套全面的解决方案。jbpm不仅支持工作流的建模、执行,还提供了监控和管理功能,使得开发者可以方便地构建和部署...

    JBPM4.4_eclipse插件安装

    jBPM4.4 是一款强大的工作流管理系统,它允许开发者设计、部署和执行业务流程。为了便于开发,jBPM 提供了与 Eclipse 集成的插件,使得流程定义可以通过图形化的方式进行。本文将详细介绍如何在 Eclipse 中安装 jBPM...

Global site tag (gtag.js) - Google Analytics