jbpm和shark工作流引擎对比

合集下载

jBPM4.3简单深入理解(一)

jBPM4.3简单深入理解(一)

jBPM4.3简单深入理解(一)工作流(系统)主要概念工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理流程定义:预先定义的业务流转逻辑流程实例:业务的一次实际流转过程参与者:任务的执行者活动(任务):组成流程定义的节点活动实例:组成流程实例的元素流转:从一个节点到另一个节点这一行为工作列表:当前需要办理的任务集合开发步骤1)根据实际应用场景创建流程文件;即编写*.jpdl.xml文件2)部署流程文件或流程资源到系统中;3)执行流程(使用指定的流程定义);3.1)启动流程实例3.2)获取任务3.3)开始任务3.4)结束任务3.1到3.4是办理一个任务的过程,流程的执行就是启动流程实例+一次次办理任务的过程。

流程在实际应用场景中的一些操作一.流程的定义管理流程定义的发布、查询、删除、暂停、恢复二.流程实例管理流程实例的启动、显示流程图、执行、暂停、恢复三.任务管理分配任务、收回任务、定时任务、任务与表单绑定四.流程的历史查询任务的历史、流程实例历史、活动历史---下面开始进行代码描述------在详细描述之前,我们先来了解一下流程引擎ProcessEngine引用One ProcessEngine object can be used by all reque sts and threads in an application. Here’s how you can obtain a ProcessEngine把这个交给spring去管理Java代码<beanid="springHelper"class="org.jbpm.pvm.internal.processengine.Spring Helper"/><beanid="processEngine"factory-bean="springHelper"factory-method ="createProcessEngine"/>我们需要的一些服务都是通过流程引擎得到的RepositoryService repositoryService = processEngine.getRepositoryService(); ExecutionService executionService = processEngine.getExecutionService();TaskService taskService = processEngine.getTaskService();HistoryService historyService = processEngine.getHistoryService();ManagementService managementService = processEngine.getManagementService();一.流程的定义管理1.1流程定义的发布(即部署流程文件或流程资源到系统中)流程定义*.jpdl.xml的内容可以从文件,网址,字符串,输入流或zip输入流中获得Org.jbpm.api.newdeployment代码public interface NewDeployment extends Deployment {.../** adds a resource as a string */NewDeployment addResourceFromString(String resourceName, String string);/** adds a resource as a string */NewDeployment addResourceFromInputStream(String resourceName, InputStream inputStream);/** adds a resource as a resource from the classpath */NewDeployment addResourceFromClasspath(String resourceName);/** adds a resource as a url */NewDeployment addResourceFromUrl(URL url);/** adds a resource as a zip stream */NewDeployment addResourcesFromZipInputStream(ZipInputStream zipInputStream);/** adds a resource from a file */NewDeployment addResourceFromFile(File file);...}在测试的时候Java代码ProcessEngine processEngine = new Configuration().buildProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService();//布署当前目录下test.jpdl.xml文件String deploymentId = repositoryService.createDeployment().addResourceFromClasspath("test.jpdl.xml").de ploy();在我们实际应用中,addResourceFromInputStream和addResourcesFromZipInputStream运用较多。

jbpm-工作流的基本操作

jbpm-工作流的基本操作

jbpm-⼯作流的基本操作删除流程实例:Jbpm流程引擎定义:jbpm,全称是Java Business Process Management(业务流程管理),他是覆盖了业务流程管理,⼯作流管理,服务协作等领域的⼀个开源的,灵活的,易扩展的可执⾏的流程语⾔框架作⽤:jbpm的流程框架⾮常灵活,使⽤起来也⾮常安全,降低开发的风险,同时jbpm拥有⾃⼰的图形化开发⼯具,⾮常⽅便随时了解和掌握运⾏的进程Jbpm的开发步骤:1、引⼊jbpm 4.4 jar2、引⼊jbpm.cfg.xml、jbpm.hibernate.cfg.xml核⼼配置⽂件如图:Jbpm.cfg.xml 配置:<?xml version="1.0" encoding="UTF-8"?><jbpm-configuration><import resource="jbpm.default.cfg.xml" /><import resource="jbpm.businesscalendar.cfg.xml" /><import resource="jbpm.tx.hibernate.cfg.xml" /><import resource="jbpm.jpdl.cfg.xml" /><import resource="jbpm.bpmn.cfg.xml" /><import resource="jbpm.identity.cfg.xml" /><!-- Job executor is excluded for running the example test cases. --><!-- To enable timers and messages in production use, this should be included. --><!--<import resource="jbpm.jobexecutor.cfg.xml" />--></jbpm-configuration>Jbpm.hibernate.cfg.xml 配置:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///jbpm</property><property name="ername">root</property><property name="hibernate.connection.password">123456</property><property name="hibernate.hbm2ddl.auto">update</property><property name="hibernate.format_sql">true</property><property name="hibernate.show_sql">true</property><mapping resource="jbpm.repository.hbm.xml" /><mapping resource="jbpm.execution.hbm.xml" /><mapping resource="jbpm.history.hbm.xml" /><mapping resource="jbpm.task.hbm.xml" /><mapping resource="jbpm.identity.hbm.xml" /></session-factory></hibernate-configuration>Log4j.properties 配置:### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.erryout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file mylog.log ###log4j.appender.file=org.apache.log4j.FileAppenderlog4j.appender.file.File=c:/mylog.logyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=info, stdout3、创建表结构(有18张表)4、/**5、 * 使⽤jbpm ⽅式创建表结构 18张表6、 */7、public void createTable()8、 {9、 org.jbpm.api.Configuration.getProcessEngine();}流程引擎的使⽤步骤:1 、部署流程实例:1、public void deploy()2、 {3、//通过Configuration 类构建流程引擎对象4、 ProcessEngine processEngine = Configuration.getProcessEngine();5、6、//获取RepositoryService 接⼝服务7、 RepositoryService repositoryService = processEngine.getRepositoryService(); 8、9、//发布的⽅式:零散发布10、 repositoryService.createDeployment()11、 .addResourceFromClasspath("jbpm_test.jpdl.xml")12、 .addResourceFromClasspath("jbpm_test.png")13、 .deploy();14、 }其他发布⽅式:2、启动流程实例:public void startProcessInstanceByKey(){//通过Configuration 类构建流程引擎对象ProcessEngine processEngine = Configuration.getProcessEngine();//获取ExecutionService 对象ExecutionService executionService = processEngine.getExecutionService();executionService.startProcessInstanceByKey("jbpm_test"); //key 默认为流程⽂件名称 }3、查询个⼈任务ProcessEngine processEngine = Configuration.getProcessEngine();TaskService taskService = processEngine.getTaskService();List<Task> list = taskService.findPersonalTasks("员⼯");for(Task t:list){System.out.println("任务编号:"+t.getId());System.out.println("任务名称:"+t.getName());}4、办理个⼈任务public void personalComplete(){ProcessEngine processEngine = Configuration.getProcessEngine();TaskService taskService = processEngine.getTaskService();pleteTask("50002"); //任务id}流程变量设置:public void taskComplete(){TaskService taskService = Configuration.getProcessEngine().getTaskService();Map<String, User> userMap = new HashMap<String, User>();User user = new User();user.setDay(2);user.setName("⼩明");userMap.put("user", user);//办理业务并设置流程变量taskService.setVariables("240002", userMap);pleteTask("240002");}流程引擎ProcessEngine 的六⼤服务接⼝:流程引擎processEngine 对象的获取:通过Configuration 类的构建如:ProcessEngine processEngine = Configuration.getProcessEngine();1、 RepositoryService 接⼝(流程资源服务):RepositoryService service= processEngine.getRepositoryService()作⽤:提供对流程的部署、删除、查询和流程图的查看操作。

jbpm简介

jbpm简介

jbpm5.1介绍(1)介绍jBPM是一个灵活的业务流程管理(BPM)套件。

这使得业务分析师和开发人员之间的桥梁。

传统的BPM引擎有一个重点,是有限的非技术人员。

jBPM的有两个重点:它提供了一种方式,企业用户和开发人员喜欢它的流程管理功能。

jBPM是什么jBPM是以流程图为导向的工作流管理系统。

jBPM的核心是一个轻量级,可扩展的工作流引擎在纯Java编写的,可让您执行业务流程,采用最新的BPMN 2.0规范。

它可以运行在任何Java环境中,嵌入在您的应用程序或服务。

流程语言jBPM以BPMN 2.0为定义语言。

概要应用通过服务调用流程接口其中包括两个流程,一个是历史日志,另一个是人工定制的服务。

定义流程有两种方式,一种是通过Eclipse的插件,一种是通过web的流程设计器。

Guvnor库是一个可选组件,可用于存储您所有的业务流程。

它支持协作,版本等方面存在与Eclipse插件和基于Web的设计师,支持不同的工具之间的往返整合。

jBPM控制台是一个基于Web的控制台,允许商业用户管理他们的业务流程(启动新的进程,检查正在运行的实例),他们的任务列表,并看到报告。

在下面详细描述了每个组件1,核心引擎jBPM引擎是该项目的核心。

它是一个轻量级的工作流引擎,执行您的业务流程。

它可以嵌入到应用程序的一部分,或作为服务部署(可能在云上)。

它的最重要的特点是:∙稳定的核心引擎,执行流程实例∙本版本支持最新的BPMN 2.0的建模和执行业务流程的规范∙性能和可扩展性∙轻量级可以部署到任何Java环境中∙一个可选的JPA环境∙一个默认的JTA实现可插拔的事务支持∙作为一个通用的流程引擎实现,因此它可以被扩展,以支持新的节点类型或其他程序语言2,Eclipse编辑器Eclipse编辑器是一个Eclipse IDE的插件,可让您整合您的业务流程,在您的开发环境。

其目标是开发,并有一些开始的向导,为您的业务流程(使用拖放)和大量先进的测试和调试功能的图形化编辑器。

jbpm 工作原理

jbpm 工作原理

jbpm 工作原理
JBPM是一个开源的工作流引擎,它提供了一个框架,用于在
应用程序中设计、执行和管理业务流程。

JBPM的工作原理如下:
1. 流程定义:开发人员使用JBPM提供的流程定义语言(如BPMN或JPDL)来定义业务流程。

流程定义包括流程的结构、任务节点、条件和节点执行规则等。

2. 流程实例化:在应用程序中,当需要执行一个特定的业务流程时,将创建流程实例。

流程实例是根据流程定义创建的具体业务流程的实例。

3. 任务分配:流程实例在执行过程中,会根据流程定义中定义的任务节点,将任务分配给相应的参与者或角色。

任务可以是人工任务,也可以是自动化任务。

4. 任务执行:被分配的任务可以在JBPM工作台中进行处理。

处理任务的人员可以查看任务详情,执行任务所需要的操作,并将任务交给下一个参与者或角色。

5. 流程控制:流程实例在执行过程中,会根据流程定义中定义的节点执行规则进行流程控制。

节点执行规则可以是条件判断、并行分支或合并等,用于决定流程的执行路径。

6. 监控和管理:JBPM提供了一套用于监控和管理流程实例的
工具。

开发人员可以通过JBPM的API来获取流程实例的状态、执行情况和历史记录等。

总体而言,JBPM的工作原理是通过流程定义、流程实例化、任务分配、任务执行、流程控制和监控管理等步骤来实现业务流程的设计、执行和管理。

BPMX3技术架构说明

BPMX3技术架构说明

查询
聚合数据
查询 结果
索引 文档
索引库
搜索索引 Compass + lucene + Solr 快速构建文档及数据库的索引 查询索引
• • •
移动办公
The Mobile office
画简图表达
移动办公--移动云部署模式
The Mobile office -- Mobile cloud deployment models
移动办公--移动云部署方式(网关)
中国特色的流程支持
Chinese Process Features
流程任务逐步回退处理(任务追回及多级驳回) 流程自由跳转 流程跳转业务规则设置 多级分发任务与任务汇总 会签(并行与串行)\补签及投票处理 流程版本变更管理 流程 表单版本变更管理 流程催办(基于MQ短信及邮件设置) 流程任务的工作日设置(用于统计流程任务执行效率) 任务监控管理 流程委办、转(交)办 任务抄送、知会
基于Ant生成方式 基于Freemark代码模板 基于多种数据库表、视图生成 基于工作流在线表单组件配置生成 单表、多表生成 在线配置访问生成功能页面
代码生成器
Code Generator

如app-user表对应为AppUser,其产生的代码如下所示 – JSP层 • AppUserList.jsp、AppUserGet.jsp,AppUserEdit.jsp – Controller层 • AppUserController.java – Service层 AppUserService.java – DAO 层 • AppUserDao.java – Model • AppUser.java • AppUser.map.xml

流程引擎的使用

流程引擎的使用

流程引擎的使用什么是流程引擎流程引擎是一种软件工具,用于管理和执行复杂的业务流程。

它可以帮助组织自动化业务流程,优化工作流程和加强执行效率。

流程引擎使用者可以通过定义、管理和执行流程,实现任务的自动分配、流程控制、任务调度等功能。

流程引擎的优势•灵活性:流程引擎可以根据不同的需求和场景进行定制和扩展,满足组织的特定业务流程需求。

•可视化:通过流程引擎,用户可以以图形化方式定义和管理流程,增强了操作的直观性和易用性。

•自动化:流程引擎可以自动执行流程任务,并根据定义的规则和条件进行流程控制和任务调度,减少人工干预。

•监控和跟踪:流程引擎可以实时监控和跟踪流程的执行状态、进展和效果,方便用户进行管理和优化。

•可扩展性:流程引擎支持接口和插件机制,可以与其他系统进行集成和拓展。

流程引擎的应用场景流程引擎可以应用于各种业务场景,例如:1.审批流程:流程引擎可以帮助组织实现自动化的审批流程,提高审批效率和准确性。

2.订单处理:流程引擎可以自动分配订单任务、提醒处理人员,提高订单处理效率和客户满意度。

3.工作流程管理:流程引擎可以管理和协调组织内部的各种工作流程,提供统一的任务分配和跟踪机制。

4.客户服务:流程引擎可以帮助组织管理客户服务流程,实现客户问题的快速响应和解决。

5.项目管理:流程引擎可以支持项目管理活动,如任务分配、进度跟踪、资源调配等,提高项目执行效率。

流程引擎的基本功能•流程定义:通过流程引擎,用户可以定义和设计流程的各个环节和规则,包括任务节点、条件分支、并发流程等。

•流程执行:流程引擎可以自动执行流程任务,并根据定义的规则和条件进行流程控制和任务调度,实现任务的自动转移和执行。

•任务分配:流程引擎可以根据预设的规则和条件,自动分配任务给指定的人员或角色,减少人工干预,提高任务处理效率。

•任务跟踪:流程引擎可以跟踪任务的执行状态和进展,提供实时的任务监控和管理功能。

•任务通知:流程引擎可以发送任务通知给相关人员,提醒任务的存在和截止时间,保证任务能够及时处理。

JBPM指南

JBPM指南

JBPM指南JBPM(Java Business Process Management)是一个开源的、轻量级的、面向业务流程的工作流引擎。

它提供了一套完整的业务流程管理解决方案,包括流程的设计、执行、监控和优化等功能。

它的核心理念是将业务逻辑与技术实现相分离,使得业务流程的设计和执行更加灵活,同时也提高了开发的效率。

本指南旨在为培训机构提供JBPM的相关知识和实践指导,帮助培训机构更好地理解和应用JBPM。

一、JBPM概述1.JBPM的特点:JBPM是基于领域特定语言(DSL)的工作流引擎,支持面向业务流程的开发和管理,可以将复杂的业务流程拆解为多个简单的流程节点进行管理和执行。

2.JBPM的架构:JBPM的架构包括流程定义、流程实例和任务管理三个核心模块,同时还包括与其他系统进行集成的服务和界面模块。

3.JBPM的应用场景:JBPM可以应用于各种复杂的业务流程场景,如订单处理、审批流程、工作流程等。

二、JBPM的安装和配置2.JBPM的配置:介绍JBPM的配置文件,包括数据源配置、日志配置、用户管理等。

三、JBPM的流程设计和执行1. 流程定义:介绍使用JBPM Designer工具进行流程定义的方法,包括创建流程、定义流程节点和流程跳转等。

2.流程执行:介绍JBPM引擎的流程执行过程,包括启动流程实例、执行节点任务、变量传递等。

四、JBPM的任务管理和监控1.任务定义:介绍如何创建和定义任务节点,包括任务的输入输出参数、任务的执行者等。

2.任务管理:介绍如何查询和管理流程中的任务,包括任务的分配、处理和完成等。

3.流程监控:介绍如何监控流程的执行情况,包括查询流程实例状态、查询流程历史记录等。

五、JBPM的集成和扩展1.与其他系统的集成:介绍JBPM与其他系统的集成方法,包括使用RESTAPI、使用消息队列等。

2.JBPM的扩展:介绍如何扩展JBPM的功能,包括自定义节点、自定义任务等。

六、JBPM的最佳实践1.流程建模的最佳实践:介绍如何设计和优化业务流程,包括流程的可读性和可扩展性等。

JBPM——一个开源的J2EE工作流管理系统

JBPM——一个开源的J2EE工作流管理系统

55H
!
微! 处! 理! 机
客户端浏览器 (如常见的 "# 等) 4 应用服务器 $%& 容器 ( ’%()*%+, ,’-) #,. 容器 ’%//012 .%32 4 40&%(23+% 数据库映射 4 工作流数据库
:J JK 年!
,.-6 的过程建模采用的是改良了的 E6= 活动图。 做了两点改良, 一是在用 E6= 活动图表述业务流程 时, 只建 模状 态层 ( 状 态和 控制 流) , 不 包括 动 作 ( E6= 活动图没有区分状态和动作, 它们都用活动 来表示) 。二是如果多个迁移到 达一个状态, 缺省 定义为不需要同步的合并 ( E6= 活动图中默认是需 要同步的联合) 。 ,.-6 定义了自己的流程定义 语 言 F-B*, 用它 来精确描 述 E6= 活动 图的每 一个 部 分。它也是 G6= 格式的。 状态是业务流程的基本元素, 状态代表了一种 对外部参与者 ( 3A+1( ) 的依赖。状态的意思就像 “现 在 G 系统或某某人必须作某些事, 在此等待直到参
/ ! 简! 介
工作流技术是在上世纪九十年代发展起来的一 门新兴研究方向, 是近年来计算机应用技术与信息 技术领域最具发展潜力的方向之一。工作流管理联 [ 1] 盟 ( 7R"$ ) 给出的工作流定义是 : 工作流是一类 能够完全或者部分自动执行的经营过程, 它根据一 系列过程规则、 文档、 信息或任务能够在不同的执行 者之间进行传递与执行。7R"$ 还给出了工作流管 理系统的定义: 工作流管理系统是一个软件系统, 它 完成工作流的定义和管理, 并按照在计算机中预先 定 义 好 的 工 作 流 逻辑 推 进 工 作 流 实 例 的 执 行。 *+’", 全称是 *FVF +;M=>DMM ’GIHDMM "F>F?D<D>K, 是 一个开放源代码的基于 *,(( 的轻量级工作流管理 系统。由于 *+’" 功能足够, 结构、 配置以及定义工 作流简洁清晰, 因此就结合 *+’" 来谈谈工作流管 理系统, 重点是工作流引擎的运转过程。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jbpm和shark工作流引擎对比 Xpdl:xml process definition language. Bpel:Business Process execution language. Jpdl:JBoss Jpbm Process definition language.

考察角度:稳固性,易用性,灵活性,可监管,扩展性,可爱护性,进展趋势。 Shark Jbpm

持久层 Shark自己的一个ORM的方案DODS,差不多上没有什么人来使用DODS,也没有人了解它,表现也专门一样. 能够配置jdbc连接. 支持当前大多数流行的数据库. 能够访咨询LDAP用户定义数据. Jbpm3种使用的是开源框架Hibernate3, Hibernate是目前Java领域最好的一种数据持久层解决方案,Jbpm将数据的治理职能分离出去,自己用心于商务逻辑的处理。 能够配置jdbc连接参数. 能够配置使用web容器的连接池. 支持当前大多数流行的数据库.

安装部署

能够独立部署. 能够和其他应用集成. 自带web治理工具. 能够独立部署. 能够和其他应用集成. 自带web治理工具. 针对不同数据库有一个对应的初始化脚本文件.

流程设计器 使用的Xpdl语言定义流程. 有一个Jawe来图形化定义流程. Jawe功能图形化功能相对较强. 能够编辑活动变量,流程逻辑操纵属性. 需要改造设计器和平台的权限模型结合. 已有一个Flash版web设计器,感受不是专门直观好用. 引入UML泳道使流程用户模型更加清晰,但关于同一用户在多时期都参与的流程难得画好. 使用Jpdl流程定义语言. 有一个Eclipse流程定义插件. 插件图形化功能较弱,只能绘制流程流转的差不多元素. 对活动属性和流程逻辑操纵需要手工编辑Jpdl文件. 没有设计插件的源代码,要和当前平台权限模型结合需要手工编辑Jpdl文件. 初步思路是自己来开发一个web设计器. 有泳道概念,但泳道用于工作任务的处理者属性,不表达在流程图绘制,流程图结构可不能受到用户泳道的约束.

定义语言 遵循WfMC规范. 内容结构是按元素类型组织的. Xpdl:制定的描述业务流程操纵流的XML格式规范, 格式复杂. 与具体语言无关,不灵活. 能够嵌入脚本操纵语言. 宣传称也遵守WfMC规范. 内容结构和设计图流转顺序更加一致。 Jpdl:直观易明白,能够手工修改. 内容按结构储存在数据库中. 方便扩展自己的逻辑操纵内容. 可嵌入一个简单自定义的脚本操纵语言. 表单定制 通过活动的变量来定制处理表单. 能够通过变量来定制处理表单.

异构系统交互 Shark能够开CORBA的服务. 需要借助java的其他远程访咨询框架. 支持EJB. 可改造性 体系和功能最为复杂. 秉承“模块化”的思想,比较容易扩展. Xpdl文件储存在大字段中,难于分析扩展. 活动事件模型专门容易扩展自己的操纵逻辑. Jpdl文件被分析好结构化地储备在各个数据表中,容易依照需求扩展出特定的活动模型,如多人会签活动,超时自动处理活动,多人选择处理活动. 专门方便进行二次开发扩展升级.

支持文档

公司积存文档丰富. 积存文档丰富.

网上具有大量的共享技术资源. Jpdl流程定义讲明文档专门好用. 运行稳固性 比较稳固. 比较稳固.

可爱护性 公司对shark有专门多的积存. 熟悉的人员有露明,明华等. 引擎开源. 设计器代码开源. DODS开源吗,熟悉它的人专门少. 熟悉的人员有宏伟,文力. 对3.2版本流程定义和操纵模型幽闭叫深入的研究. 比较容易爱护满足业务需求. 引擎开源. 设计器插件不开源. Hibernat开源,熟悉的技术人员多. 使用简单,易上手,源代码也易读. 可配置性 各模块按接口调用,能够替换模块的实现,专门灵活. 能够配置数据库连接和日志输出等. 没有那么灵活.

Shark Jbpm 体系结构 结构清晰,参见附图1. Activity-Assignment-User. 工作列表产生于Activity- Assignment. 结构清晰,参加附图2. Node-Task-User. 工作列表产生于Node-Task.

活动和流转模型

流程包. 活动(定义任务和处理页面). 块活动. 子流程活动. 工具活动(自动执行一些后台功能). 路由结点. 转移. 条件转移. 否则转移. 例外转移. (依照活动或转移里定义的条件选择路径流转) 没有包概念. 任务结点(能够定义多个任务,每个任务有自己的处理页面和处理人员)=>TaskNode. 状态结点(执行会中断,直到外部触发一个信号signal,方便实现分布式系统)=>State. 自动结点(执行可不能中断,自动连续流转)=>Node. 决策结点(自动)=>Decision. 超结点(相当于块结点)=>SuperNode. 子流程结点=>ProcessNode. 分支和汇聚结点=>ForkNode和JoinNode. 转移(每个转移有一个名字,引擎的Token依照名字操纵转移路径,路径命名使流程图的业务逻辑更加直观)=>Transition. 可用操纵机制

包,流程,活动能够定义属性操纵变量. 流程实例挂起,复原,终止,舍弃. 活动实例的接收,完成,挂起,复原,终止,舍弃,改派. 改造后实现工作的回退,收回? 流程,结点,任务能够定义属性操纵变量. 变量分为流程级不和任务级不,具备不同可见性范畴. Action,Handle等也能够操纵变量. 每个结点能够定义事件(进入,退出,专门,超时等)处理逻辑(Event-Action模型). 转移发生时也能够定义事件的处理逻辑. 工作任务生成能够定义自己的操纵逻辑. 超时事件. 流程实例挂起,复原,终止,舍弃. 任务实例的接收,完成,挂起,复原,终止,舍弃,改派. 改造实现任务的回退,收回(需要研究确认). 假如不改造,特定环节的回退能够通过流程设计来实现.

可监控 管内容

流程定义的加载,删除. 流程实例的创建,删除. 能够实现任务执行情形查询和催办. 能够查询到相关环节日志记录. 流程定义的创建,删除. 流程实例的创建,删除. 能够实现任务执行情形查询和催办. 能够对流程流转,任务操作,变量操作等多类日志进行查询分析.

进展趋势 IBM早期支持(收购FileNet). 早期中国也有一批公司支持. 早期好评较多(2003—2005),活跃了1年半左右时刻. 靠山是Enhydra. 思想保守,不思进取,排除异己. 版本更新比较慢,代码的更新也没有按照开源的方式来完成. Shark2.0后,有专门多组件不开源了,而且差不多上只有Demo,假如要用,需要付费. 仍有为数许多基于Shark开发的系统在运行爱护. 进展已进入暮年. IBM/Oracle现在是支持BPEL的老大. BEA支持BPEL(收购uego). 是近年java&j2ee界极力举荐的开源选型(2005到现在). 靠山是jboss,jboss用户群专门庞大. RedHat收购了Jboss,以后RedHat系统可能会内嵌Jbpm. Jbpm组织当前仍保持专门活跃状态. Eclipse在组织BPEL的开源设计器. 越来越多的软件厂商采纳JBpm做为自己产品中的工作流子系统. 网上对Jbpm的正面评判比较多. 今年显现Jbpm原创人员离开组织现象. 以后进展仍存在一定的不确定性. 附图1(shark类结构图): 流程图 附图2(jbpm类结构图): 定义部分

tofrom

NodeTransitionProcessDefinition

ProcessDefinitionNodeStartStateEndStateProcessStateSuperState

StateForkJoinTaskNode

TaskTransitionEventDecision

ActionExceptHandle

CancelTimerActionCreateTimerActionScript

VariableAccessTaskControllerProcessStateScript

Swimlane

运行部分 ProcessInstanceTokenModuleInstance

ContextInstance

TaskMgmtInstanceTokenVariableMapTaskIanstanceVariableInstanceSwimlaneInstancePooledActorTimerActionTokenProcessInstanceTaskInstanceVariableLogTaskLogProcessLogSignalLogTransitionLogActionlLogTokenTansitionNodeActionMessagesignalCommandExecuteActionCommandTaskNodeCommandMessageLogProcessInstanceCreateLogProcessInstanceEndLogRunTimeActionNodeInstance(StateNodeInstance)(DecisionNodeInstance)(SuperNodeInstance)(ProcessNodeInstance)(Fork/JoinNodeInstance)(TaskNodeInstance—>TaskInstance)

流程图

Fork和join范例(这也是和shark区不较大的一个地点):

相关文档
最新文档