当前位置:文档之家› JBPM工作流引擎

JBPM工作流引擎


使用工作流
<?xml version="1.0" encoding="GBK"?> <process-definition xmlns="urn::jpdl-3.1" name="helloworld"> 3.1" <!-- 申请 --> <start-state name="request"> <task> <controller> <variable name="name" /> <variable name="day" /> <variable name="note" /> </controller> </task> <!-- 流程转向 --> <transition name="to_confirm" to="confirm"> <action name="requestAction" class =".chengang.jbpm.RequestAction"> <reason> 我要请假 </reason> </action> </transition> </start-state> <!-- 审批 --> <state name="confirm"> <transition name="to_end" to="end"> <action name="finishAction" class =".chengang.jbpm.ConfirmAction" /> </transition> </state> <!-- 结束 --> <end-state name="end" /> </process-definition>
• 开源
jBpm是一个灵活可扩展的工作流管理系统。 。jBmp是一组J2SE组件,可以作为J2EE应用集群 部署。遵循Apache Licence
JBPM
OpenWFE
OSWorkflow
OpenWFE是一个开放源码的Java工作流引擎 工作流引擎。它是一个完整的业务处理管理套件:一个引擎, 一个工作列表,一个Web界面和一个反应器 界面和一个反应器(存放自动代理)。
选择工作流
• 国外
IBM WebSphere BPM BEA AquaLogic BPM
特点:完整的解决方案
选择工作流
• 国内
西安协同 SynchroFLOW Primeton 普元SOA流程平台(Primeton BPS ) 联合易讯 MagicFlow
特点: 办公或业务流程的人工信息化处理
选择工作流
使用工作流
使用工作流
• JBPM对象
JbpmConfiguration JBPM流程实例的配置,在流程的执行过程中,需要使用 需要使用JbpmConfiguration去创建需要的服务。 JbpmConfiguration是线程安全的对象,可以使用单例模式创建 可以使用单例模式创建。 JbpmContext 已经提供的服务。 处理流程的持久化操作,可以获得一系列Jbpm已经提供的服务 ProcessDefinition 用于解析xml格式的流程定义文件,生成流程的流程定义对象 生成流程的流程定义对象。用于把它部署到流程中去。 processInstance 流程实例是流程的具体实例,具体使用时,每一个具体的处理过程都对应一个流程实例 每一个具体的处理过程都对应一个流程实例。 Token作用 利用token得到其当前的current state Node 一个流程图由许多node和transition组成。每个 每个node都有一种类型,这个类型决定了当流程执行到 这个node时的不同行为。 TaskInstance 描述一个任务实例对象可以分配给指定的操作者处理,当任务完成后,将触发流程继续下行 描述一个任务实例对象可以分配给指定的操作者处理
使用工作流
• jBPM开发工作流的ห้องสมุดไป่ตู้般流程 开发工作流的一般流程:
1) jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库 因此系统设计时要选定所用数据库。只要是 Hibernate支持的数据库,jBPM就支持。 。数据库的初始化可以由jBPM自动完成, 也可以通过ant generate.ddl任务生成SQL SQL语句,在jBPM外部自己创建所需的表。 2) 使用jPdl定义工作流,生成processdefinination.xml processdefinination.xml文件。可以采用GUI工具 gpdl。 3) Ant create.pde生成pde包的工作目录 包的工作目录。将processdinination.xml文件和其它需 要的文件放在指定的目录下,使用ant build.precess.archives ant build.precess.archives生成pde包。pde包 的格式采用jar。 4) 更改pde工作目录/src/config/jbpm.properties /src/config/jbpm.properties的相关属性,主要是设定相关的 数据库连接信息。注意要将数据库的JDBC JDBC驱动放在pde工作目录的lib目录下。 5) Ant deploy.process.archives将刚才生成的 将刚才生成的pde部署到数据库。实际上就是向数 据库插入一些相关数据。 6) 利用jBPM API函数开发相应的工作流程 函数开发相应的工作流程。
工作流处理方式发展
• 人工处理 • 系统集成(MIS系统) • 独立的工作流管理系统
工作流管理系统
工作流管理系统
工作流管理系统
• 工作流执行服务器 • 工作流引擎 • • • •
用来创建、管理、执行工作流实例。(工作流执行服务器负责调 由一个或多个工作流引擎构成的软件服务器,用来创建 度引擎,为工作流实例安排执行的工作流引擎) 为流程实例提供运行时的执行环境的一种软件服务体。( 。(提供了维护流程实例生命周期的环境,包括流程实例 的创建、执行、挂起、恢复、完成)
使用工作流
JBoss jBPM 组件一览
使用工作流
• JBPM组件介绍
JBoss JBoss JBoss JBoss JBoss JBoss JBoss jBPM核心组件 jBPM 图形化流程设计器 jBPM控制台web应用程序 应用程序 jBPM 身份组件 jBPM 调度程序 jBPM 数据库兼容包 jBPM BPEL扩展
使用工作流
• jBPM 流程定义语言 (JPDL)
JPDL(JBPM Process Definition Language)是JBPM流程定义语言 JBPM 。JPDL详细定义了这个状态图的每个部分 详细定义了这个状态图的每个部分,如: 开始、结束状态,状态之间 的转换等。这种语言的定义对于用户来说比较容易理解 这种语言的定义对于用户来说比较容易理解,也比较容易对其 进行扩展。 一个JBPM的流程定义XML文件中包含一个 process-definition>元 文件中包含一个< 素,而一个< process-definition>元素又包含零个或一个 description> 元素又包含零个或一个< 元素,零个或多个的< swimlane>元素 元素,一个< start-state>元素,零个或 多个的< state>元素或< decision>元素或 fork>元素或< join>元素, 元素或< 以及零个或多个的< action>元素,零个或多个 零个或多个<task-node>和<node> 元素,一个< end-state>元素等等。 。此外,< process definition>元素有 一个标示符,以“name”属性来表示 属性来表示,这个属性必须存在,用来表示该流 程的名称。
使用工作流
• 报警信息处理流程定义
谢谢! 谢谢
OSWorkflow是一个灵活的工作流引擎,设计成可嵌入到企业应用程序中。它提供了许多的 EJB,Hibernate,JDBC和其它。OSWorkflow还可以与Spring集成。 持久化API支持包括:EJB,Hibernate,JDBC
特点:灵活、可扩展
选择工作流
JBPM ,全称是Java Business Process Management( Java Management(业务流程管理),它是覆盖了业务 流程管理、工作流、服务协作等领域的一个开源的 服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。 jBPM是公开源代码项目,它使用要遵循 Apache License, License,。 JBPM在2004年10月18日,发布了2.0版本 版本,并在同一天加入了JBoss,成为了JBoss企 业中间件平台的一个组成部分,它的名称也改成 它的名称也改成JBoss jBPM。随着jBPM加入JBoss组织, jBPM也将进入一个全新的发展时代,它的前景是十分光明的 它的前景是十分光明的。 JBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范 最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC&acute;s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的 而是采用了它自己定义的JBoss jBPM Process definition language ( jPdl)。jPdl认为一个商务流程可以被看作是一个 认为一个商务流程可以被看作是一个UML状态图。jPdl就 是详细定义了这个状态图的每个部分,如起始 如起始、结束状态,状态之间的转换,过图型化的流 程定义,直观地描述业务流程。 JBPM的另一个特色是它使用Hibernate来管理它的数据库 来管理它的数据库。Hibernate是目前Java领域 最好的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, jBPM 也就支持.过 Hibernate,jBPM将数据的管理职能分离出去 将数据的管理职能分离出去,自己专注于商务逻辑的处理。
相关主题