`
我想我是海
  • 浏览: 214793 次
社区版块
存档分类
最新评论

JBPM quick start 第九章 流程模型

阅读更多
9.1概述
一个流程定义是对一个业务流程的正式说明,以及它是基于有向图的。该图是结点(node)与流向(transition)的组合。图中每一个结点都是一个特殊的类型,结果的类型决定了该结点的运行时的行为。一个流程定义有且仅有一个开始状态。
一个令牌(token)是执行的轨迹。令牌是一个运行时的概念,其维护着速个图中指向结点的指针。
一个流程实例(process instance),是流程定义的一次执行过程。当流程实例被创建 ,一个令牌被创建,该令牌叫做这个流程实例的根令牌并处于这个流程实例的开始状态。
信号(signal)命令令牌继续执行,当接收到一个未命名的信号时,一个令牌将通过默认的“离开流向”离开当前结点,如果该信号有明确命名,令牌将通过指定的流向离开该结点。给流程实例发送命令是由令牌来代理。
当令牌进入结点后,结点会被执和,结点本身负页让流程继续,而让流程继续就是让令牌离开当前结点,每个结点类型可以实现不同的动作来让流程继续。一个结点如果不继续执行则可以看作是一个状态。
动作(Action)是在执行流程的时候事件触发执行的Java代码,图是软件需求的重要表达方式,但是图只是一个软件的视图,它隐藏了许多技术的细节。动作就是把技术细节隐藏在图以外的一种 机制。动作可以装饰图。主要的事件有:进入一个结点,离开一个结点,开始一个流向等。

9.2流程图
流程定义的基本设施是由结点及流向组成的图。那些信息是由一个叫processdefinition.xml的XML文件来定义的,每个结点有自已的类型,如状态、选择、分支、合并。每个结点有自已的流向集,每个流向有其唯一的名称。如,下面一幅图是一个JBAY拍卖流程的流程图:

下面是其对应的processdefinition.xml
<process-definition>

  <start-state>
    <transition to="auction" />
  </start-state>
  
  <state name="auction">
    <transition name="auction ends" to="salefork" />
    <transition name="cancel" to="end" />
  </state>
  
  <fork name="salefork">
    <transition name="shipping" to="send item" />
    <transition name="billing" to="receive money" />
  </fork>
  
  <state name="send item">
    <transition to="receive item" />
  </state>

  <state name="receive item">
    <transition to="salejoin" />
  </state>
  
  <state name="receive money">
    <transition to="send money" />
  </state>

  <state name="send money">
    <transition to="salejoin" />
  </state>
  
  <join name="salejoin">
    <transition to="end" />
  </join>
  
  <end-state name="end" />
  
</process-definition>


9.3结点
流和图由结点及流向组成,更多的图及执行模型,见第四章,面向图形编程。
结点有类型,结点的类型决定了在运行时,执行进入到一个结点时发生的事情。JBPM有一系列的预置结点类型供我们使用。同时,你可以自已定义自已的结点类型。

9.3.1结点的责任
结点有两个主要的责任,一,可以执行Java代码,通常这些Java代码与该结点的功能有点,如创建一个任务实例,发送一个通知,更新数据库,二,结点负责传播流程,即使流程可继续执行,概括地说,结点在传播流程时有下面一些选项:
    * 1 不传播流程,这种情况下该结点表现为一个等待状态。
   * 2 执行其中一个流向,流开当前结点。也就是说令牌在进入该结点的时候被程序要求执行一个流向流开:executionContext.leaveNode(String)。该结点表现为自动结点,它可以执行一些自定义逻辑并且继续流程而不需要等待。
    *3 创建新的执行轨迹,结点可以决定创建新的令牌。每一个新令牌代表一个新的执行轨迹且可以在结点的流向中加载。一个好的示例就是分支结点。
    *4 执行轨迹的结束点。结点可以决定结束一个执行轨迹。意味着令牌被终止、执行轨迹完成。
    *5 通常,结点可以改变流程的整个运行时结构,运行时结构是指包括一系列的品树形分布的令牌。每个令牌代表一条执行轨迹,结点创建或结束令牌,通过流向把令牌放到一个结点
JBPM包括 -- 像所有的工作流和BPM引擎一样-- 一系列的预置的结点类型,有文档描述
它们的配置和行为。但是JBPM和面向图形编程基金会最难得的一点是我们对开发者开放模型,开发者可以自定义结点行为并易于在流程中使用。
传统的工作流和业务流程管理系统很相像的时,他们通常提供合适的结点集合(称为流程语言),他们的流程语言是封闭的,并且执行模型是隐藏在运行环境之后。查找工作流模式结果表明,光有流程语言是不足够的。我们选择一种简单的模型并允许开发者写自已的结点类型。JPDL流程语言是开放的。

下面,我们来讨论一些比较重要的JPDL的结点类型。
(待续)
分享到:
评论
1 楼 leondu 2006-12-08  
前八章呢?

相关推荐

    jbpm4表结构模型

    jbpm4表结构模型jbpm4表结构模型jbpm4表结构模型jbpm4表结构模型

    深入浅出jBPM.1-6章测试代码_jbpm-test.rar

    - **流程定义**:jBPM通过BPMN 2.0模型来定义工作流程,包括任务、事件、决策等元素。 - **流程实例**:当流程定义被实例化并开始执行时,就产生了流程实例。 - **任务服务**:用于管理任务的分配、领取、完成等...

    JBPM4 PVM的流程定义模型与过程调度

    ### JBPM4 PVM的流程定义模型与过程调度 #### PVM的流程定义模型 JBPM4中的流程定义模型基于一套灵活且强大的架构设计,它不仅借鉴了BPEL和BPMN等标准规范,还引入了一系列创新的概念,使得整个模型更加适应现代...

    jbpm深入浅出第7章实例代码

    本资源“jbpm深入浅出第7章实例代码”聚焦于通过jbpm实现工作流的实战演练,旨在帮助读者更深入地理解和掌握jbpm的使用。 jbpm的工作流程管理包括了流程定义、流程执行、流程监控等多个方面。第7章可能涉及的内容...

    JBPM流程监控的实现过程

    ### JBPM流程监控的实现过程详解 JBPM作为一款由JBOSS公司推出的开源工作流管理工具,以其强大的功能和灵活性赢得了众多开发者的青睐。尽管如此,JBPM原生并未直接提供流程监控功能的API,这无疑给那些希望在企业...

    深入浅出JBPM最新源码第七章-报销实例

    【深入浅出JBPM最新源码第七章-报销实例】是一个关于企业流程管理(Business Process Management,简称BPM)的实战教程,主要聚焦在JBPM框架的使用上,结合了myeclipse集成开发环境、SQL数据库、Tomcat6.0应用服务器...

    JBPM4.4完整可用审批流程

    使用JBPM4.4,开发者可以设计复杂的审批流程,例如请假申请、报销审批等,通过图形化的流程设计器(Business Process Designer)创建流程模型。流程中的每个步骤可以关联到一个任务,任务可以分配给不同的角色或用户...

    深入浅出jBPM 5,6章

    《深入浅出jBPM 5,6章》是一本专为理解jBPM这一流程管理系统而精心编写的书籍。jBPM是一个开源的工作流管理系统,它提供了业务流程建模、执行、监控和优化的全面解决方案。这本书的第5章和第6章尤其关键,它们涵盖...

    JBPM流程引擎资料

    JBPM是业务流程管理(BPM)领域的一个灵活且强大的开源工作流引擎,它主要用于建模、执行和监控业务流程。文档《JBPM流程引擎资料》详细介绍了如何利用JBPM开发流程应用,涵盖了从框架构造到节点处理的方方面面。 ...

    jbpm4jbpm5

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

    JBPM工作流开发指南

    二、第一个流程 5 2.1、开始前的准备 5 2.2 、Hello World 例子 6 三、学习JPDL 11 3.1 、简介 11 3.2 、流程版本(Version) 11 3.3 、流程定义 12 3.3.1 process-definition(流程定义) 12 3.3.2 node(自动节点) 13...

    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...

    JBPM3.2 表初始化,流程发布

    流程发布则是将设计好的工作流模型部署到JBPM系统中,使其可供业务使用。在这个“案例一”中,我们将深入探讨这两个关键步骤。 ### 1. 数据库初始化 在开始使用JBPM3.2之前,必须确保数据库已经为JBPM准备就绪。这...

    JBPM视屏教程共9节 jBPM 4视频教程04设计请假流程

    【标题】"JBPM视屏教程共9节 jBPM 4视频教程04设计请假流程"揭示了本次教程的核心内容,聚焦于企业业务流程管理(Business Process Management, BPM)工具jBPM的使用,特别是如何利用jBPM 4版本来设计一个具体的请假...

    jbpm流程设计器

    jbpm流程设计器是一款强大的工具,专门用于设计和构建jbpm工作流。...在整个过程中,jbpm流程设计器扮演着桥梁的角色,连接了业务分析师和开发人员,降低了业务流程管理的复杂性,提升了企业运营的效率。

    JBPM流程框架源码

    - **工作流模型**:JBPM基于BPMN(Business Process Model and Notation)标准,提供图形化的流程设计工具,可以创建复杂的流程模型。 - **任务节点**:流程中的每个步骤都代表一个任务节点,可以是人工任务或自动...

    jbpm简介\jbpm简介

    ### jBPM简介与关键技术知识点 #### 一、jBPM概述 jBPM是一个开源的、纯Java的、轻量级的商业流程管理(Business Process ...对于寻求提高业务流程管理效率、简化软件开发过程的企业来说,jBPM是一个理想的选择。

    jbpm业务流程

    jbpm(Java Business Process Management)是一款开源的工作流和业务流程管理框架,主要用于设计、执行和管理复杂的业务流程。它提供了一整套工具和服务,帮助企业构建灵活、可扩展且易于维护的业务流程应用。jbpm是...

    jBPM-jPDL学习笔记

    jPDL的XML元素包括但不限于:`&lt;process&gt;`(定义整个流程)、`&lt;start&gt;`(流程的起点)、`&lt;end&gt;`(流程的终点)、`&lt;task&gt;`(用户任务)、`&lt;action&gt;`(执行特定动作)、`&lt;sequenceFlow&gt;`(流程流转)和`&lt;decision&gt;`...

    用java web start来发布jbpm(三)

    在本篇博客“用java web start来发布jbpm(三)”中,博主将深入探讨如何使用Java Web Start来发布JBPM(Business Process Management System,业务流程管理系统)。 JBPM是一个开源的工作流和业务流程管理框架,它...

Global site tag (gtag.js) - Google Analytics