jbpm(jboss business process managerament)是覆盖了业务管理,工作流,服务协作等领域的,一个开源的,灵活的可执行流程语言框架.既然它是一种工作流框架,我们就应该明白什么是工作流.
工作流就是业务的部分或者整体在计算机的应用条件实现自动化.他要解决的问题是使多个参与者按照某种预定的规则传递文档,数据,管理和监督业务流程的过程自动进行,从而实现某种业务目标,或者促进业务流程的执行.
jboss公司提供的jbpm框架的优势就是灵活,开源,并且还提供了jpdl(jboss process definition language)的图形化工具(gpd),使得流程规则的制定更直观化,形象化.
jbpm的核心就是工作流引擎,jbpm4.0以后他的工作流引擎成为Execution,不再是jbpm3.0中的token,它的作用就是负责业务流程的部署,执行,以及监督和管理业务流程.
jpdl就是指定xml的模式和机制包装流程定义的相关文件到流程文档.
而它的简单实现只要关注三个步骤:
1. 绘制流程定义图,包括流程定义规则以及流程图
2. jbpm4.0 Api的使用.
3. 数据库的结构变化
一.流程定义图的绘制要在eclipse中导入图形化工具插件
绘制*.jpdl.xml和*.png文件.
二.了解jbpm的Api.
他提供的核心是processEngine(流程引擎),通过它可以获得jbpm的各种服务.
大致有:
仓库类服务类(repositoryService):用于发布流程,删除业务流程.
流程执行服务类(executionService):用于启动流程实例,设置流程变量等.
任务服务类(TaskService):用于完成任务,查看正在执行的任务信息以及
设置流程变量等
历史服务类(HistoryService):用于查看已经完成的任务.
三.了解数据库结构
jbpm4.0在jbpm3.0的基础上做了很大的改良,如增加了历史表,去除了流程定
义的相关表.将module的冗余和流程实例合并.
一共有18张表,分为三类:
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存的是进行时的临时变量程执行表
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.身份认证表
1) JBPM4_ID_GROUP
2) JBPM_ID_MEMBERSHIP
3) JBPM4_ID_USER