- 浏览: 924946 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (322)
- Hibernate研究&源码 (27)
- Server (10)
- Coder碎语 (64)
- EnglishMulling (11)
- About XML (1)
- persistence (12)
- Core Java & OO (23)
- Java EE (6)
- JavaScript/JSON/Ajax/ext... (22)
- 我的读书笔记 (16)
- Source Codes Study (29)
- workFlow/jBPM (22)
- OFBiz: Open For Business (1)
- 项目积累 (21)
- srcStudy_acegi (1)
- Cache/Ehcache... (9)
- Java Test/JUnit.. (7)
- maven/ant (2)
- 设计模式 (1)
- SOA/cxf/ws-security (2)
- Android (4)
- 云计算/Hadoop (2)
- 加密/签名 (1)
- 正则表达式 (1)
- htmlparser (1)
- 操作系统 (5)
- DB (1)
最新评论
-
天使建站:
这里这篇文章更详细 还有完整的实例演示:js跳出循环 ...
jQuery中each的break和continue -
heshifk:
刚刚我也遇到同样的问题,然后就在纠结为什么不能直接使用brea ...
jQuery中each的break和continue -
masuweng:
不错写的.
集万千宠爱于一身的SessionImpl:get研究(四): Hibernate源码研究碎得(8) -
muzi131313:
这个老是忘,做一下笔记还是挺好的
jQuery中each的break和continue -
lg068:
data = data.replace("\n&qu ...
项目小经验: eval与回车符
1, jBPM是个什么东东及其它?
自己鼓捣jBPM也有段时间了, 但要想自己满意地回答这个问题,仍然感到无从下手.
简单地说, jBPM是JBoss的一个开源项目, 用来实现工作流的. 那工作流又是什么? 除jBPM外又有哪些实现? 为什么要用jBPM?
再往下说为什么要用工作流?工作流这个概念是什么时候提出的? 它的历只发展脉络又是什么? ....
这一大串问题,
现在不可能在这么一个名为"一点简单介绍"的博客中做出完整的回答, (以后倒是有可能搜些资料,争取做个回答).
我觉得这些问题,最终都归纳到"为什么要用工作流"这个问题上, 不过对于这个本质问题,
我当然也没什么能说服自己的想法,搜了下,发现有不少类似的疑问.比较后,发现这篇博客(http://qzone.qq.com/blog
/9899217-1234028060)总结的不错, 对自己的帮助也挺大的. 有兴趣的看官可前去看下.
jBPM作为一种工作流的实现, 那广义地来看, 工作流又都有哪些基本的构成呢? 一般来说, 一个工作流有如下的三个大构件:
- 流程定义. 通过这个构件来修改现有的流程或定义新的流程.
- 流程执行. 把前面定义好地流程在自己的系统中调用, 从而执行整个业务逻辑, 也就是让前面定义的的流程"流"起来.
- 流程执行监测. 记录流程执行过程中的相关数据, 以便于性能调优等.
2, 体验下jBMP及文件目录介绍.
前面对jBPM有了个概念上的把握, 下面我们运行起来, 对这个jBMP来个近距离观察. 按上篇中提供的链接下载到本地, 解压下,
为了介绍的方便, 我们称这个解压后的目录为jBPM_HOME,
运行%jBPM_HOME%\jbpm-server目录下的start.bat文件, 在浏览器里输入"http:
//localhost:8080/jbpm/
"就能看到jBMP自带的一个例子. 如何来操作体验那个例子, 网上有不少例子, 我这里就不再赘述.
这里先介绍下jBPM解压的目录结构, 注意我这里用的是3.1.4的版本, 现在最新的版本目录结构上有很大的不同, 为了研究的方便, 我们这里采用大多项目中用到的这个旧版本, 即3.1.4.
解压后, jBPM_HOME目录下有五个文件夹, 依次是jbpm, jbpm-bpel, jbpm-db,
jbpm-designer,jbpm-server. 以后我主要打交道的是jbpm文件夹, 这个文件夹下有可能要常看的文档,
jBPM自身的源码和自带例子的源码(这是最最常用的,
以后对jBPM的研究还是以debug的方式来跟踪jBPM运行源码的),jBPM运行所依赖的jar包.
第二个文件夹jbpm-bpel没什么可说的, 看名字觉得它跟bpel整合相关, 现在先关心这个,跳过. 每三个文件夹jbpm-db,
这个也是我们开始这段时间常看的一个文件夹, 它下面放的是jbpm部署时往各种常见数据库里建表的SQL语句, (当时我不知道有这个文件夹,
硬是自己改了hibernate的配置它在把相应的sql语句输出到文件中,想想自己走了不少弯路呀).
第四个文件夹jbpm-designer,它下面放着是jBPM对eclipse做的流程定义插件, 后面我们搭建Eclipse里会用到这里,
到时再说.
最后一个jbpm-server,它下面放的是jBPM自带一个服务器,我们刚才就是启动这里的服务器对jBPM有了个初步的体验,当然它还有其它一些功
能,如对流程运行的监视, 还有JMS等, 不过这些我还没有接触过, 以后再补上.
3, 使用jBPM要做些什么及结合构件图的一点说明说明.
简单地说,在项目中使用jBPM一般有这么些要做的: 按业务逻辑画出流程图, 打包部署定义好的流程图, 在项目中配置jBPM,调用jBPM的API完成整个业务逻辑.
这里结合jBPM的构件图, 我们看下这些步骤都是jBPM中的"谁"来具体负责的.
先看最右边的ProcessArchive. 我们用Process language(也就是这里的jDPL)定义业务逻辑,
打包为这里所说的Process Archive, 也就是说这个archive里包含的是业务的流程信息,
这里不仅仅指通过eclipse生成的解压文件, 还指部署到数据库后的信息. 再顺着箭头往左走, 看到Definition Loader,
jBPM通过它把前面部署到数据库里的流程信息加载到jBPM的执行引擎中, 这样就有了下面的"process definition",
通过这个路径我们知道这个process definition是流程信息在内存中的表示. 我们再看最右边的Process client,
我是把它理解成jBPM让我们调用的API, 也就是我们项目中写的代码让流程一步步地执行. 再往右是Request Handler, 顾名思义,
jBPM通过它来接收process client发来的请求,再往下的Execution Service,
jBPM通过它结合前面加载到内存的流程定义来真正执行定义好的业务流程. 其余的两块Process Monitor和Log Manager,
就是负责前面说的"流程执行监测"任务了. 另外一下State Manager,应该是负责引擎执行过程中状态的变更事宜相关.
至此, 我们对jBPM的轮廓做了个相当简单的介绍,后续的文章中将结合实例来做详细的分析.
评论
先看最左边的ProcessArchive. 我们用Process language(也就是这里的jDPL)定义业务逻辑, 打包为这里所说的Process Archive, 也就是说这个archive里包含的是业务的流程信息, 这里不仅仅指通过eclipse生成的解压文件, 还指部署到数据库后的信息. 再顺着箭头往左走, 看到Definition Loader, jBPM通过它把前面部署到数据库里的流程信息加载到jBPM的执行引擎中, 这样就有了下面的"process rmn190 写道
pure1202 写道
是jPDL,你huyou我了 我怎么huyou你了呢?
这个图的下面那段话:“最左边的ProcessArchive”-是最右边等等。。。
还有“也就是这里的jDPL”是jpdl(jbpm定义语言)。。。。
谢谢提醒, 我改了你说的第一个问题.
但不清楚你说的第二个问题指的是什么.
pure1202 写道
是jPDL,你huyou我了 我怎么huyou你了呢?
这个图的下面那段话:“最左边的ProcessArchive”-是最右边等等。。。
还有“也就是这里的jDPL”是jpdl(jbpm定义语言)。。。。
是jPDL,你huyou我了
我怎么huyou你了呢?
发表评论
-
jBPM研究整理 (1-20)
2010-10-24 19:16 22941, jBPM零起点体验(一):感受下卖面包 the f ... -
jbpm4(1):jBPM4环境搭建
2009-08-01 19:24 3865下载jbpm4,解压。在此,我们称之为JBPM4_HO ... -
jBPM(20):JbpmContext类自身属性
2009-04-30 08:36 2184jBPM(19):JbpmContext类 ... -
jBPM(19):JbpmContext类构造方法需要什么?
2009-04-29 08:29 1938在前几篇博客(jBPM(十三): 从ObjectFact ... -
jBPM(十七): popJbpmConfiguration的错误理解及纠正
2009-04-19 12:12 1955有几天没写jBPM方面的博客了, 这方面有些生疏了. ... -
jBPM(十六): 记录JbpmContext实例的诞生
2009-04-16 08:36 1684在jBPM(十一): ... -
jBPM(十五):配置文件到ObjectFactory
2009-04-14 09:14 1742在jBPM(十四): 见证一ObjectInfo实例的 ... -
jBPM(十四): 见证一ObjectInfo实例的诞生
2009-04-12 11:05 1595在jBPM(十三): 从ObjectFactory到O ... -
jBPM(十三): 从ObjectFactory到ObjectInfo
2009-04-11 07:57 1573在jBPM(十一): 从JbpmContextFi ... -
jBPM(十二): 流程运行的历史和轨迹与ProcessLog
2009-04-05 17:03 1716接触jBPM一段时间后, ... -
jBPM(十一): 从JbpmContextFilter说起
2009-04-04 12:32 1733在jBPM(十):webSale ... -
jBPM(十):webSale的"页面流"介绍
2009-04-03 08:36 2186通过前面几篇博客,我们看到了jBPM自带例子w ... -
jBPM(九):jBPM的webSale在Tomcat下怎么连上的数据库?
2009-04-02 08:24 1751在jBPM(八) ... -
jBPM(八): 也说jBPM + Tomcat + MySQL
2009-03-26 05:39 2146经过几天的梳理总结, 现在到了jBPM系列里一个具有里 ... -
jBPM(七): 如何让jBPM自带例子运行在指定数据库?
2009-03-24 08:21 2572我们知道jBPM自带例子是运行在其默认的HSQL ... -
jBPM(六): 由手动建表想到一个教训
2009-03-23 08:45 1854在jBPM(四): 部署jBPM所用表到数据库_1 ... -
jBPM(五): 部署jBPM所用表到数据库_2
2009-03-21 06:51 1994在jBPM(四) 中, 笔者介绍了如 ... -
jBPM(四): 部署jBPM所用表到数据库_1
2009-03-19 08:25 2534... -
jBPM(三): 如何在Eclipse搭建jBPM环境?
2009-03-18 08:23 6089在jBPM(二) 里我们做了个简单介绍, 其中包括&q ... -
jBPM(一): 开场白, 想从jBMP中学点什么?
2009-03-07 10:32 3398终于静下心来开始写jBPM系列博客了. ...
相关推荐
这一点使得JBPM更易于被开发人员理解和应用。JBPM还利用Hibernate作为数据库管理层,这使得它可以兼容支持Hibernate的任何数据库,从而简化了数据库管理的复杂性,让开发者能够更加专注于业务逻辑的实现。 JBPM工作...
2)第二层:node、processDefinition、Transition、Task 它们都继承自GraphElement (1)processDefinition表示流程定义(implements NodeCollection),它有下面的属性:name、version、nodes、startState。nodes表示流程...
本文将详细介绍如何在JBPM 4.4中实现动态设置参与人数的功能,这对于提高业务流程的灵活性和适应性具有重要意义。 #### 一、JBPM 4.4简介 JBPM 4.4是一款基于Java的企业级工作流管理系统,它支持BPMN2.0规范,提供...
- jBPM 提供了相应的工具和 API 来实现这一点。 - **历史日志** - jBPM 还支持历史日志的存储,这对于审计和问题追踪非常有用。 - 可以将这些日志保存在数据库中,以便后续分析。 #### 8. 示例 - **jBPM 示例*...
JBPM通过定义工作流程模型来实现这一点。 2. **流程定义(Process Definition)**:使用BPMN(Business Process Modeling Notation)语言来创建流程模型,描述了业务流程的各个步骤、决策点和流转规则。 3. **任务...
#### 二、jBPM jPDL基础知识 ##### 2.1 jPDL套件 - **jPDL** 是一个轻量级的工作流引擎,用于定义和执行业务流程。 - **套件** 包括了jPDL的核心组件和服务,例如流程设计器、流程引擎等。 - **jPDL图形流程设计器**...
通过以上介绍可以看出,JBPM4 PVM的流程定义模型与过程调度机制不仅提供了高度灵活的流程定义能力,还能通过精细的过程调度机制确保流程能够按照预期的方式执行。这对于实现复杂的业务流程自动化至关重要。
这可能包括创建一个简单的请假申请流程,或者模拟一个采购审批流程,通过这些实例来体验JBPM在实际业务场景中的应用。 通过【JBPM4.4视频教学01~05】的学习,你不仅可以了解JBPM的基础,还能掌握其在实际项目中的...
目的是帮助开发人员快速上手,完成流程的简单开发任务。 #### 流程设计 ##### 售前流程 - **流程图设计** - 使用OA系统内置工具绘制流程图,包含开始节点、任务节点、决策节点、同步节点及结束节点。 - 节点...
以上部分对工作流、BPMN、Activiti的概念做了一个简单的介绍,目的是了解Activiti究竟是什么,能做些什么…及在学习Activiti之前需要了解的知识与技术。其中大部分文字来自Copy网上的各种资料与文档,通过总结而来的...