2024年5月11日发(作者:)
jBPM4.4
一、什么是jBPM
JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用
Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被
部署在任何一款JAVA应用服务器上。
java Business Process Management :工作流,工作流引擎
注:记得j小写,因为j代表java,与Log4j中j一样
工作流管理系统不止一中,如还有Intaliol BPMS … 但JBoss jBPM灵活性且扩展性高。
jBPM项目于2002.3由Tom Baeyens 发起,2003.12发布1.0版本,2004年10.18发布
2.0,并在这天加入了JBOSS组织-被RedHat公司
二、能干什么
提供工作流的实现,帮助更好的进行BPM
三、jBPM有什么,简介jBPM的Service API 各种服务
1:ProcessEngine:流程引擎。并不负责具体的业务,而是用于获取各种Service。
2:RepositoryService:流程资源服务的接口,如流程定义发布、查询、删除等。
3:ExecutionService:用于操作流程实例的服务,可以进行流程实例发布、查询、流
程推进、设置流程变量等操作。
4:TaskService:用于操作人工任务的服务,可以进行任务创建、查询、获取、提交
完成、保存、删除等操作。
5:HistoryService:用于操作流程历史的服务,提供对流程历史库(就是已经完成的流
程实例)的操作。比如:历史流程实例,历史活动实例等。
6:IdentityService:用于操作用户、用户组以及成员关系的服务
7:ManagementService:流程管理控制服务的接口,只提供异步工作(Job)相关的
执行和查询操作。
四、Myeclipse8.5 搭配开发环境
1.
2.
3.
4.
5.
6.
下载完
myeclipsehelpMyeclipse Configuration Center add…….
找到 安装这个插件
记得不要联网 安装, 不要选 source文件
安装完后 windowJBoss jBPMruntime Locationadd 添加jbpm的路径
添加lib下所有jar包,如果你使用的是tomcat6.0则:要把
,, 拷到tomcat lib 下并把原来的删掉
项目中就不要再导上面三个包
五、修改配置文件
1、将example中的下列配置文件拷贝到java项目的src目录下:
、、ties、
、process_
2、在以上配置文件中的,实际上就是我们熟悉的
,这里,要修改为连接我们的数据库。
name="_class">Driver
name="">jdbc:oracle:thin:@localhost:1521:orcl
3、在这里还需要强调,其中的一个配置:
如果这个配置存在的话,那么每次操作数据库都会把原来的数据表干掉,然后
重新建立。所以,
我们在第一次访问数据库的时候打开它,以后则关闭。
六、工作方式
采用xml定义流程方式,这Xml代码既可以直接放在java中,也可以单独存在一个
xml文件中,然后我们对其进行解析。
ProcessDefinition processDefinition = mlString(“
mlResource("");
七、JPDL学习
JPDL(JBPM Process Definition Language)是构建于jBPM框架上的流程语言之一。
JPDL详细定义了这个状态图的每个部分,如: 开始、结束状态,状态之间的转换等。这
种语言的定义对于用户来说比较容易理解,也比较容易对其进行扩展。 一个JBPM的
流程定义XML文件中包含一个< process-definition>元素,而一个< process-definition>元
素又包含零个或一个< description>元素,零个或多个的< swimlane>元素,一个<
start-state>元素,零个或多个的< state>元素或< decision>元素或< fork>元素或< join>元素,
以及零个或多个的< action>元素,零个或多个
元素等等。此外,< process definition>元素有一个标示符,以“name”属性来表示,这
个属性必须存在,用来表示该流程的名称。
在jPDL中提供了任务(tasks)、待
处理状态(wait states)、计时器(timers)、自动处理(automated actions)„等术
语,并通过图型化的流程定义,很直观地描述业务流程。
总结:可以理解为一个产生XML的图形化设计建模软件。
八、流程定义(ProcessDefinition)
就是对一个流程抽象的对象化定义。一套系统中,用户可以定义并保存多
个流程定义实体,如:报销流程定义、请假流程定义、人事录用流程定义等。
流程节点:
是对流程中的过程环节/行为的抽象对象化定义。结点有两个主要职责:
一,实现某个指定行为,这在jBPM中就是执行一段制定的Java代码;二,传递、
维持流程的延续,直至达到最终结点。
流程实例(ProcessInstance):
流程实例是流程定义的运行时状态,它记录了一个流程运行的起始时间、
结束时间等状态信息。
任务实例(Task):
用来描述一个任务实例对象,可以分配给指定的操作者处理,当任务完成
后,将触发流程继续向下流转。任务实例的生命周期很简单,生成实例-->处理-->
任务结束。
九、ProcessEngine流程引擎


发布评论