JBPM学习(1)----概述
来源:互联网 发布:php数组在末尾添加元素 编辑:程序博客网 时间:2024/05/17 23:04
1. 综述
JBPM框架入图所示:
JBPM用户包括了process designer和user,group or system,JBPM把这些用户分为两类,如上图中ACTOR的图标所示;JBPM引擎是通过HIBERNATE持久化数据的;
1.1流程的定义
JBPM的流程制定者(process designer),其职责是通过JBOSS JBPM流程绘制工具绘制流程定义,流程定义绘制完毕成XML形式存在,绘制后的文件系统中包括最基本的三个文件和一系列的资源文件(资源文件:比如你在此流程执行过程中需要的类、图片、文档等),最基本的三个文件包括:1、processDefinition.xml;2、gpd.xml;3、processimage.jpg;
processDefinition.xml文件主要描述了流程执行的过程,从processDefinition.xml中我们可以很清楚的知道流程的业务走向,包括业务是从哪里开始执行,怎样才能使业务结束,业务执行过程中经历了哪些事;processimage.jpg主要是以图片的形式描述了流程的业务走向;在用图片形式描述业务流程的时候,要在图片中绘制每个业务节点(所谓业务节点就是业务流程中的步骤),业务节点在图片中所处的位置问题是在gpd.xml中定义每个节点的坐标;
下图就是一张简单的以图片形式展现的网上购物的流程图(processimage.jpg):
1.2流程的部署
流程绘制完成之后,就应该把流程部署在JBPM引擎中,JBPM引擎则会把此流程存入数据库,数据库中有一系列的表用于存放流程中的各中业务节点(业务节点:例如图中的“等待付款”就是业务流程中的一个业务接点,它是在“检验定单”完成之后开始执行的);
1.3流程的使用
流程定义(processDefinition)完成之后可以根据此流程定义由此流程的使用者(actor)(使用者包括用户,组或者另一套软件系统)用JBPM的上下文(JbpmContext)得到一个流程实例(ProcessInstance)(流程实例:我们可以把流程定义描述成一个JAVA类,把流程实例描述成一个JAVA对象,流程定义只是一个定义,它是抽象的,只是以描述的形式存在;流程实例是具体的,是已经开始执行或正在执行的流程。);
流程是有用户权限的约束的,权限指明了某一个流程只能提供给某一个用户或者某一类用户使用(某一类用户也叫做组);JBPM有自己的用户模块,JBPM把它叫做身份组件,你也可以使用自己的用户模块;
流程实例生成之后,就可以从流程实例中得到开始节点(比如上图中的“新建订单”,是由买家来完成的),用户就可以执行此任务(task),当用户执行完此任务之后进行流程实例的提交或者此任务的提交,JBPM会保存用户当前的操作,用于下一个任务的开始,任务中有任务清单,通常也叫做表单,表单可以在processDefinition.xml中定义,定义在某一个任务上,定义的内容有表单中每个项的名称,类型等;买家用户执行完“新建订单”之后,卖家就可以查找属于自己的任务列表,任务列表中包含了此订单,卖家可以检验此订单,如果检验通过流程实例就等待执行下一个任务,如果由于买家表单填写不够详细而导致检验不通过,就把任务返还给买家,流程实例又回到最初的任务,买家得重新执行“新建表单”的任务,在这一系列的任务中,表单中的数据是不会丢失的,它是存在数据库中的,我们可以从数据库中检索得到。
从上一段描述中可以看出,流程实例中的多个任务是有不同的用户执行的,比如“新建订单”是由买家执行的,“检验订单”任务是由卖家执行的,所以任务是有用户权限限制的;
解决以下问题的对应文档:
1. 如何搭建JBPM的框架?--------------------------------------JBPM框架的搭建.doc
2. 如何绘制JBPM流程图?--------------------------------------JBPM流程图的绘制.doc
3. 如何部署JBPM流程?-----------------------------------------JBPM流程的部署.doc
4. 如何使用部署在JBPM引擎中的流程?--------------------如何使用JBPM流程.doc
5. 如何使JBPM和SPRING整和?-----------------------------JBPM整和SPRING.doc
阅读文档时所要参照的其他资料:
/资料/ jbpm3帮助文档.chm
/资料/jPdl 参考手册.PDF
- JBPM学习(1)----概述
- jbpm工作流引擎(1)----概述
- JBPM学习(1)----JBPM环境的搭建
- jBPM学习(四)----体验jbpm
- jBPM学习(七)----jBPM相关概念
- JBPM学习(一):eclipse集成JBPM
- JBPM学习(一):eclipse集成JBPM
- JBPM学习手册(1)
- jbpm学习(二)
- jbpm学习笔记(1)_HELLOWorld
- JBPM学习日志(二)
- JBPM学习日志(三)
- JBPM学习日志(四)
- JBPM学习日志(五)
- jbpm的学习(一)
- jBPM学习(八)----liferay4.2.2下的jBPM开发
- JBPM学习入门(一) 配置JBPM运行环境
- 工作流-JBPM(1)
- G11N Program
- 最牛X的作文之错别字篇
- Ext.widgets-form(上)BasicForm/Field/Checkbox/Radio/HtmlEditor/TextField
- Vi指令大全
- C#创建不规则窗体
- JBPM学习(1)----概述
- Ext.widgets-form(下)ComboBox,TimeField,DateField,TriggerField,TextArea,NumberField
- RA601的升级
- log4j 配置(转)
- linux/Unix平台G11N的开发
- 如何发布网页
- 凝思释义
- Ant应用--将JAR转换成EXE
- linux环境下安装jdk