`

JBPM4基础知识

 
阅读更多
对jBPM4.4数据库的几张表简单介绍:

A。资源库和运行时表结构

JBPM4_DEPLOYMENT   流程定义表                                         
JBPM4_DEPLOYPROP 流程定义属性表                                    
JBPM4_EXECUTION  流程实例表  (主要是存放JBPM4的执行信息,Execution机制代 替了JBPM3的Token机制)

JBPM4_JOB  定时表(存放的是Timer 的定义)                                                                 
JBPM4_LOB  存储表 (流程定义相关的布署信息)                                                                  
JBPM4_PARTICIPATION 参与者表 (存放 Participation的信息,Participation的种类有Candidate、Client、Owner、 Replaced Assignee和Viewer。而具体的Participation既可以是单一用户,也可以是用户组。)

JBPM4_PROPERTY  引擎参数表
JBPM4_SWIMLANE  泳道表(Swim Lane是一种Runtime Process Role,多个Task可以一次分配到同一Actor身上。)

JBPM4_TASK 任务表  (存放需要人来完成的Activities,需要人来参与完成的Activity 被称为 Task).      

JBPM4_VARIABLE 上下文表  (存的是进行时的临时变量) 

B。历史数据库表结构

JBPM4_HIST_ACTINST 流程活动(节点)实例表   (Activity Instance的历史记录) 

JBPM4_HIST_DETAIL  流程历史详细表  (保存Variable的变更记录)

JBPM4_HIST_PROCINST 流程实例历史表   (Process Instance的历史记录)

JBPM4_HIST_TASK  任务历史表(Task的历史信息)

JBPM4_HIST_VAR  流程变量(上下文)历史表  (保存历史的变量 )

C。身份认证表结构   

JBPM4_ID_GROUP 组表

JBPM4_ID_MEMBERSHIP 用户角色表

JBPM4_ID_USER  用户表

jbpm4.4最核心的包

1.antlr.jar

2.commons-collections.jar

3.commons-logging.jar

4.dom4j.jar

5.hibernate-core.jar

6.javassist.jar

7.jbpm.jar

8.jta.jar

9.mail.jar

10.slf4j-api.jar

11.slf4j-jdk14.jar

12.slf4j-log4j12.jar

配置文件

jbpm.execution.hbm.xml, jbpm.history.hbm.xml, jbpm.identity.hbm.xml, jbpm.repository.hbm.xml, jbpm.task.hbm.xml五个hibernate映射文件

jbpm.default.cfg.xml     ---->   流程引擎的默认配置文件

jbpm.identity.cfg.xml    ---->   身份验证配置文件

jbpm.jbossremote.cfg.xml ---->   远程调用jboss实现命令模式

jbpm.jobexecutor.cfg.xml ---->   任务执行器的配置

jbpm.task.lifecycle.xml  ---->   任务生命周期,包括启动,暂停,继续,完成,取消之类

jbpm.tx.hibernate.cfg.xml---->   默认的hibernate事务配置

jbpm.tx.jta.cfg.xml      ---->   jta的事务配置

jbpm.variable.types.xml  ---->   配置变量类型映射

jbpm.wire.bindings.xml   ---->   依赖绑定映射

jbpm4.4包作用

org.jbpm.pvm.internal.ant

提供使用ant发布流程,辅助启动jboss的任务。

org.jbpm.pvm.internal.builder

用来构造各种模型,包括活动,活动行为,事件,事件处理器,流程定义,变量,任务,等等。

org.jbpm.pvm.internal.cal

提供日历,包括日期,时间段,持续时间,节假日。

org.jbpm.pvm.internal.cfg

JbpmConfiguration和SpringConfiguration实现了org.jbpm.api.Configuration,用来从配置文件构造ProcessEngine

org.jbpm.pvm.internal.xml

主要用于解析xml的,主要解析jbpm.cfg.xml和流程定义文件

org.jbpm.pvm.internal.util

包含常用工具

org.jbpm.pvm.internal.wire

用来在ioc里进行依赖绑定。子包包含binding, descriptor, operation和xml,而且默认的绑定方式是使用field,而不是常见的setter绑定方式。

org.jbpm.pvm.internal.type

用来进行类型转换,主要是加载jbpm.cfg.xml对流程引擎进行初始化时,还有就是发布流程的时候进行类型转换。子包包括converter,matcher和variable,类型转换器,类型匹配器和变量。

org.jbpm.pvm.internal.tx

其中负责处理事务,JtaTransaction啦,SpringTransationInterceptor 啦,StandardTransaction啦,这些需要根据实际环境具体选择。jta的实现部分已经单独放到子包jta中了。希望spring中的事务也能这样处理就好了。

org.jbpm.pvm.internal.test

包下放了一个JobTestHelper,显然是可以帮助在测试环境下运行job的,。

org.jbpm.api.client

这部分包含ClientExecution, ClientProcessDefinition, ClientProcessInstance。ClientExecution继承了OpenExecution,声明了end(), signal(), suspend(), resume()之类的方法。ClientProcessDefintion继承了OpenProcessDefintion,其中的功能主要是 createProcessInstance和startProcessInstance。

org.jbpm.pvm.internal.cmd

包含Command和CommandService,这是命令设计模式的基础。其中放着所有的命令,所有的流程操作都可以在这里找到。

org.jbpm.pvm.internal.email

下面有两个子包impl和spi,只要注意spi下的AddressResolver, MailProducer和MailSession就可以实现自定义的实现了。

org.jbpm.pvm.internal.env

包含Context, Environment, EnvironmentFactory, Transaction, WireObject。其中Context, Environment和EnvironmentFactory组成了jBPM4里的IoC系统。Transaction定义了通用事务。 WireObject用来做依赖绑定。下面保存着环境有关的实现类。包括Authentication权限认证,Environment与context 相关的各个类。

org.jbpm.pvm.internal.hibernate

下面的类是专门与hibernate进行交互的类,包含类型转换,命名策略和最主要的DbSessionImpl,所有与数据库的操作都来源于此。

org.jbpm.pvm.internal.history

下面是历史操作所需要的部分,其下还包含events和model包。

org.jbpm.pvm.internal.identity

包主要负责身份认证的操作。包含三个子包cmd, impl和spi,cmd下定义所用到的命令,impl下是实现类,spi下放着IdentitySession。

org.jbpm.pvm.internal.jms

包括JmsMessageSession和JmsMessageUtil,应该是用来处理jms的,JmsMessageSession与 org.jbpm.api.job.Message相关联。说明job下的Message是依靠jms发送异步消息的。

org.jbpm.pvm.internal.job

提供了对job, message和timer的实现

org.jbpm.pvm.internal.jobexecutor

提供了任务执行器,包括JobExecutorServlet和对应的线程池,以及一系列的命令和处理器。无论是job, message或是timer,最终都会被这里执行。

org.jbpm.pvm.internal.lob

主要用来处理流程发布时的文件内容,需要把jpdl.xml文件和图片,甚至是以后可能把class文件都以附件形式保存到数据库中,以备后用

org.jbpm.pvm.internal.model

这个模型包中包含了很多很多类,包括Activity, CompositeElement, Condition, ObservableElement, OpenProcessDefinitionTransition。简单分类一下。最底层的是ObservableElement,它是可以被事件监听的元素,并且可以继承,CompositeElement继承了 ObservableElement,它里面可以装填多个活动。再加上Event中定义了多个事件,这些就构成了最基本的事件模型。Activity和 ActivityCoordinates分别定义了活动类和活动位置。以这些为基础,OpenProcessDefinition继承了 ProcessDefinition和CompositeElement。最终,我们还有一个Condition类,它只有一个evaluate方法,接受OpenExecution作为参数返回boolean值,Condition和Activity组合成了Transition,这个转移包含了起点,终点,以及条件判断。最庞大的模型部分,活动,转移,流程定义,流程实例的实现类都放在这里。在它的op子包中包含的是流程进行中的各项操作。

org.jbpm.pvm.internal.query

History, Job, ProcessDefintion, ProcessInstance这四个query类的实现,还提供了一个Page类,但是其中只有firstResult和maxResults,所以没啥大用

org.jbpm.pvm.internal.repository

负责的是流程的发布,主要有Deployment和Repository对应的service, session和cache,这里使用的缓存,所以每次使用流程定义的时候可以利用缓存提高效率。

org.jbpm.pvm.internal.script

包含对脚本的支持,默认支持了JuelScriptEngine。

org.jbpm.pvm.internal.session

支持各种会话,DbSession, MessageSession, RepositorySession和TimerSession。

org.jbpm.pvm.internal.spring

只有一个CommandTransactionCallback用来实现从spring中获得事务,并用其执行jbpm中定义的各种命令

org.jbpm.pvm.internal.stream

用于从各种途径读取资源,无论是jbpm配置文件和流程资源都要通过这些来转换成流的形式,以供给jbpm处理。

org.jbpm.pvm.internal.svc

其中svc或许是service的缩写。这个包中除了包括org.jbpm.api包下定义的所有service接口的实现,还包括commandService的实现和认证拦截器。

org.jbpm.pvm.internal.task

代表了所有与任务,任务参与者相关的信息,包括Assignable, AssignmentHandler, OpenTask, Participation, Swimlane, Task, TaskDefinition。简单划分后,主要有任务,任务定义任务处理。剩下的都是与任务分配有关了。TaskDefinition从字面上来看是指任务定义,里边只有一个getName()。Task中保存了任务相关的一些内容,OpenTask主要用来处理历史事件。参与者部分基本分成三个部分,以Assignable和AssignmentHandler组成的自定义分配部分,Participation参与者和swimlane泳道。暂时没有发现三者之间与任务的联系。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fhx007/archive/2011/02/22/6200085.aspx
分享到:
评论

相关推荐

    jBPM4工作流开发实战

    随着对jBPM4基础知识的掌握,我们可以进一步深入到更高级的功能开发。 **1. 动态任务分配:** 在实际应用中,经常需要根据不同的条件动态地将任务分配给不同的参与者。jBPM4支持动态任务分配机制,可以通过编程方式...

    jbpm4jbpm5

    总的来说,这个主题资料包提供了jbpm4和jbpm5的基础知识、实战经验和用户操作指导,对于想要学习或深化jbpm流程管理框架理解的开发者非常有价值。通过学习这些文档,开发者可以掌握jbpm的核心概念,熟练地设计和部署...

    jBPM4工作流应用开发指南.pdf

    - **基础概念:** 介绍工作流、BPMN(业务流程建模符号)、jBPM4中的关键术语和概念,帮助开发者建立基础知识体系。 - **流程定义:** 深入讲解jPDL、流程图的创建和编辑,让开发者学会如何定义业务流程。 - **...

    jBPM4完整例子

    总之,"jBPM4完整例子"是一个宝贵的实战案例,它将理论知识与实践相结合,帮助开发者深入理解如何在实际项目中利用SSH和jBPM4构建一个完整的工作流应用。通过学习这个例子,你可以掌握流程建模、框架集成、前后端...

    jBPM4学习总结

    【jBPM4学习总结】 ...通过这些基础知识点的学习,开发者能够理解和使用jBPM4构建和管理业务流程,实现自动化工作流和业务流程的优化。在实际应用中,还需要结合具体需求进行定制和扩展,以适应不同的业务场景。

    jbpm4所需jar

    标题中的"jbpm4所需jar"表明这是一组与jbpm4版本相关的Java库文件,jbpm(Business Process Management)是一个开源的工作流程管理系统,用于管理业务流程。在Java应用程序中,JAR(Java Archive)文件是包含类文件...

    jbpm4文档集合

    1. **jbpm4教程**:这部分通常会介绍jbpm4的基础概念,包括工作流引擎、任务管理、事件处理和规则集成等。它可能还会解释如何使用jbpm4的工作流建模工具,如JBPML语言,以及如何创建、部署和执行流程定义。 2. **...

    JBPM4 实例

    - 官方文档:JBPM4的官方文档详细介绍了各个组件和API的使用,是学习的基础。 - 示例代码:"LeaveJbpm"实例代码可以帮助你理解如何将流程概念转化为实际操作。 - 社区支持:参与JBPM社区,获取其他开发者的经验和...

    JBoss JBPM4请假流程示例

    【JBoss JBPM4请假流程示例】 JBoss JBPM4是一个开源的工作流管理系统,它为企业提供了一套灵活且强大的业务流程自动化解决方案。这个示例是关于如何在JBoss JBPM4平台上实现一个简单的请假流程,帮助开发者了解...

    JBPM4整理学习资料

    该资料集合了API文档、安装配置指南、常见操作步骤、数据库表结构解析以及流程分支与合并等核心知识点,旨在帮助学习者深入理解和掌握JBPM4的使用。 1. **JBoss BPM系统介绍**:JBPM4是JBoss组织推出的一款开源BPM...

    JBPM4 JBPM4用户指南 开发指南 安装配置 开发步骤 整合

    本指南将深入探讨JBPM4的核心知识点,包括用户指南、开发指南、安装配置、开发步骤以及如何进行系统整合。 首先,让我们来看看JBPM4的用户指南。用户指南是为初学者准备的,旨在帮助用户了解如何与JBPM4交互。其中...

    基于java的jBPM4工作流引擎

    了解了这些基础知识后,你就可以开始使用jBPM4来设计和实施业务流程,提升企业的效率和自动化程度。通过深入学习这两个文档,你不仅可以掌握工作流的基本理念,还能具备实际操作jBPM4的能力,从而在项目中实现高效的...

    jbpm4.1和jbpm5开发手册

    通过阅读《jbPM4.1中文用户手册》和《jBPM5_用户手册-中文版》,开发者不仅可以掌握jbPM的基础知识,还能深入理解业务流程管理的原理和实践,从而在实际项目中高效地应用jbPM来提升业务流程的自动化水平和管理效率。

    传智播客jbpm教程

    在【JBPM_(1)_Basics_new.ppt】中,你将学习到jbpm的基础知识,包括jbpm框架的概述、它在BPM领域中的地位以及核心组件的介绍。这部分会详细讲解流程定义语言BPMN 2.0,它是jbpm设计工作流的主要工具,让你了解如何用...

    jbpm4.4学习教程

    1. 阅读基础理论:先了解jbpm4.4的基本概念、架构和核心组件。 2. 学习流程设计:掌握BPMN 2.0语言,学习如何在jbpm中创建和编辑流程模型。 3. 实践操作:通过示例代码和项目实践,熟悉jbpm的部署、运行和管理工作...

    传智播客 jbpm 21讲 第4天 (共4天) 及源代码

    **传智播客jbpm 21讲 第4天(共4天)——深入理解工作流引擎jbpm** jbpm,全称为Java Business Process Management,是一款开源的工作流管理系统,主要用于处理业务流程自动化。由Jboss公司开发并维护,现已成为Red...

Global site tag (gtag.js) - Google Analytics