Jbpm课件
1 工作流的概念
说明:
1) 假设:这两张图就是华谊兄弟的请假流程图
2) 图的组成部分:
A. 人物:范冰冰 冯小刚 王中军
B. 事件(动作):请假、批准、不批准
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
2 工作流的过程
3 Jbpm4.4介绍
JBPM(JBoss Business Process Management业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是jBoss旗下的一款开源工作流引擎,它的特是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
3.1工作流引擎
这是jbpm工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
3.2jpdl
JPDL(jbpm process definition language) 是指定的xml模式和机制包装所有的流程定义相关文件到一个流程文档。流程文档是一个zip文件。文档的中心流程是 l . 文件中主要信息是流程图. l也包含关于动作和任务的信息
3.3数据库
Jbpm的后台是数据库的支持。在jbpm4.4版本中,对数据库结构进行了改良。
3.3.1资源库和运行时表结构
1) JBPM4_DEPLOYMENT 流程定义表
2) JBPM4_DEPLOYPROP 流程定义属性表
3) JBPM4_LOB 存储流程定义相关的部署信息。主要存储jpdl文件和 png图片昆凌爸爸
4) JBPM4_EXECUTION 主要是存放JBPM4的执行信息
5) JBPM4_TASK 存放需要人来完成的Activities(活动),需要人来参与完 成的Activity 被称为Task
6) JBPM4_PARTICIPATION 参与者表,存放参与者信息,参与者的种 类有 Candidate、Client、Owner、 Replaced、Assignee和Viewer。而具体 的参与者既可以是单一用户,也可以是用 户组
7) JBPM4_SWIMLANE 泳道表
8) JBPM4_JOB 存放的是Timer 的定义
9) JBPM4_VARIABLE 存的是进行时的临时变量
3.3.2历史数据库表
1) JBPM4_HIST_PROCINST 存放Process Instance的历史记录
2) JBPM4_HIST_ACTINST 存放ActivityInstance的历史记录
3) JBPM4_HIST_DETAIL 保存 Variable的变更记录
4) JBPM4_HIST_VAR 保存历史的变量
5) JBPM4_HIST_TASK Task的历史信息
3.3.3身份认证表
1) JBPM4_ID_GROUP
2) JBPM_ID_MEMBERSHIP
3) JBPM4_ID_USER
这三张表很常见,基本的权限控制,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足
除了前面述及的17张表外,还有一张引擎参数表,这是一张独立的表,在此没有单独列出
除了前面述及的17张表外,还有一张引擎参数表,这是一张独立的表,在此没有单独列出
3.l
导入系统默认的一些信息。这个文件最好别动。
3.5 jbpm.l
与数据库相关的配置文件。
3.6logging.properties
日志的配置文件
4 准备环境
4.1jbpm4.4软件环境
1) JDK1.5或者更高版本
2) 支持的数据库有:hsqldb、mysql、oracle、sybase等。
3) 支持jbpm4.4运行的jar包
4) 火箭少女101为什么解散开发环境为Eclipse3.5或者以上版本,myeclipse为8.6版本
4.2相关资源下载
1) JDK可以到sun的下载
acle/technetwork/java/javase/downloads/index.html
2) 数据库,例如:mysql可以在上下载。
sql
3) Jbpm也可以到相关的网站下载得到。
sourceforge/projects/jbpm/files/
4) Eclipse3.5或者MyEclipse8.6也可以到相应的网站上获得下载。
4.3安装流程设计器(eclipse插件)
1) 到并打开Install New Software…界面
2) 点击Add按钮
3) 点击Archiver…按钮选择jpdl的jar包
Jar包的路径为:jbpm4.4(jbpm的解压缩路径)->intasll->src->gpd
如图所示:
4) 点击打开回到如下页面:
这个时候,Location已经自动填充,千万不能随便改里面的内容,只需要把Name的选择填上就可以了。然后点击OK。
5) 回到Install界面:
6) 点击复选框
注意:安装的时候一定要在断网的情况下才能进行。一直next直到OK就完成安装了。
7) 安装完以后,点击新建工程有如图所示:
说明安装成功了。
4.4在eclipse中添加jpdl4.4 xsd文件
在断网环境下,l文件是不到xmlns=/4.4/jpdl这个地址的。这就需要手动导入其对应的xsd文件。
1) 打开window->Preferences
如图所示:
2) 在最上面的文本框中输入:xml,搜索一下
3) 选择XML Catalog,并点击Add…
4) 如图所示:
点击File System…,在弹出的对话框中到jpdl-4.4.xsd文件。路径为:jbpm4.4->src->jpdl-4.4.xsd,点击打开,再点击OK即可。
4.5准备jbpm4.4开发环境
4.5.1添加jbpm4.4的jar包
在jbpm4.4->lib下除了:
report-engine.zip 不是jar包
gwt-console-server-jbpm.war 不是jar包
gwt-console-jbpm.war 不是jar包
junit.jar 我们要用4版本的
servlet-api.jar tomcat服务器本身携带
这几个包以外,其余的都加到classpath中。
4.5.2添加并制定配置文件
在jbpm4.4-> examples-> src下面有:
l jbpm默认的配置文件(不用改)中秋佳节祝福短信
jbpm.l 数据库配置文件
logging.properties 日志配置文件
注:修改日志文件:
java.util.logging.ConsoleHandler.level = WARNING
修改jbpm.l文件
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop erty>
这里hibernatedialect一定要写成org.hibernate.dialect.MySQL5InnoDBDialect。
意思为可以忽略主外键的约束关系。
4.5.3初始化数据库
利用hibernate初始化数据库。
注:configure方法中必须填入jbpm.l这个参数。因为默认的为l。
5 核心API
5.1ProcessEngine
说明:
1) 在jbpm中最核心的类,其他的类都是由他而来。
2) 产生方式:
3) ProcessEngine是由单例模式产生的对象
4) 可以产生RepositoryService
5) 可以产生ExecutionService
6) 可以产生TaskService
各个Service的作用:
RepositoryService | 管理流程定义 |
ExecutionService | 执行管理,包括启动、推进、删除流程实例等操作 |
TaskService | 任务管理 |
HistoryService | 历史管理(执行完的数据的管理) |
IdentityService | Jbpm的用户、组管理 |
ManagerService | |
我们能不能不分手歌词 |
5.2RepositoryService
是jbpm的仓库服务类。所谓的仓库指流程定义文档的两个文件:l和图 片。
1) 产生方式
初中入团申请书范文2) 可以产生NewDeployment
3) 删除流程定义
5.3ExecutionService
是jbpm的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。
5.4TaskService
是jbpm的任务服务类。可以从这个类中获取任务的信息。
5.5ProcessDefinition
流程定义类。可以从这里获得资源文件等。
5.6ProcessInstance
代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。
如图为ProcessInstance的源代码:
从源代码中可以看出ProcessInstance就是Execution。但在现实意义上有所区别:
这是从帮助文档中copy下来的图案,这种情况下,ProcessInstance与 Execution是一致的。
这个例子有一个特点:wire money(汇钱)和archive(存档)是并发执行的。 这个时候,总线路代表ProcessInstance,而分线路代表Execution。
5.7Execution
Jbpm用这个对象去执行每一个节点。在没有并发的情况下,同ProcessInstance。
6 管理流程定义
6.1设计流程定义文档
6.1.1图片陈道明左小青
6.l文件
说明:流程定义文档有两部分组成:
1) l文件
最后会运行在jbpm里。Jbpm框架结合这个xml文件自 动管理流程。
2) 展示流程图的图片
在系统里需要展示流程的进展图片
6.2部署流程定义
部署流程定义也可以认为是增加流程定义。
说明:
1) 从图中可以看出来这是一个链式编程
2) 图中24获取了一个RepositoryService对象->仓库服务对象
发布评论