基于Activiti的开源工作流引擎扩展框架——OpenWebFlow

通过近1个月的努力,成功包装完成OpenWebFlow并开源至GitHub,请各位有需要的同行笑纳!

OpenWebFlow是基于Activiti扩展的工作流引擎,它针对Web环境下的工作流做了一些外围的包装工作。

Activiti的用户可能觉得它存在着一些待改进的地方:

  • Activiti为Web应用提供了一个demo,但该demo绑架了很多的东西(如:表单的定义要按照它的样子来,自己的业务逻辑无处插入,等等);
  • Activiti的API很复杂(其实一点都不复杂,相反,它的设计很清晰,就是找起来有点麻烦),最好有一些快速使用的工具类;
  • Activiti绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务系统都会属于自己的用户信息结构(包括User/Group/Membership),但不一定它存储在Activiti喜欢的那个库中,表的结构也不一定一样,有的时候,某些信息(如:动态的Group)压根儿就不采用表来存储;
  • 流程模型允许指定每个活动的执行权限,Activiti对此支持得也很棒。但是,业务系统可能需要根据实际情况动态设置这些任务的执行权限(如:动态的Group);

OpenWebFlow针对如上需求,做了一些工作。简单来说,OpenWebFlow框架:

  • 提供了一系列的Tool工具类,你可以在java应用中、甚至在自己的Controller的方法里取到这些Tool,参见工具类的使用 ;
  • 包装了一系列的事件,注意这些事件是Web上下文的(不同于Activiti的事件机制),开发用户可以基于该事件机制写自己的EventHandler,比较方便的是,EventHandler的写法与Spring Controller的方法一样(支持参数自动映射),详见OpenWebFlow的事件机制
  • 剥离了活动(activity)的权限管理,实现了与流程定义的解耦,即用户对活动的访问控制信息单独管理(而不是在流程定义中预先写死),这样有利于动态调整权限,详见自定义活动权限管理
  • 剥离了用户信息表的统一管理!客户程序可以忘掉Activiti的用户表、群组表、成员关系表,详见自定义用户成员关系管理

开发者使用帮助:https://github.com/bluejoe2008/openwebflow/wiki

感谢咖啡兔http://www.kafeitu.me/,里面有很多的关于Activiti应用方案的讨论。

绝对原创,支持国人开源!

时间: 2024-08-02 18:58:59

基于Activiti的开源工作流引擎扩展框架——OpenWebFlow的相关文章

几种开源工作流引擎的简单比较(转)

摘要:目前开源工作流引擎用的最多的是jbpm , 各种特性都不错, 文档也比较多, 下面只简单列举一下 目前开源工作流引擎用的最多的是jbpm , 各种特性都不错, 文档也比较多, 下面只简单列举一下 其他几种工作流引擎的特性.   Apache ODE Enhydra Shark Bonita Open Business Engine Eclipse JWT  支持的流程建模标准  WS-BPEL 2.0,流程定义必须使用该标准编写才能执行 WfMC和OMG标准 符合WfMC规范 遵循WfMC

Java三大主流开源工作流引擎技术分析

Java三大主流开源工作流引擎技术分析 首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入.但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题! 三大主流工作流引擎:Shark,osworkflow,jbpm! Shark的靠山是Enhydra.Enhydra做过什么呢?多了!从j2ee应用服务器,到o/r mapping工具,到这个工作流引擎等等.为什么Shark的持久层采用DODS来实现?就是因为他们是一家人. Jbpm的靠山是jboss

.net开源工作流引擎ccflow

关于济南驰骋信息技术有限公司的.net开源工作流引擎 驰骋工作流引擎,工作流程管理系统:简称ccflow,驰骋一体化解决方案简称ccport. ccflow是济南驰骋信息技术有限公司向社会提供的一款100%开源软件,我们向社会承诺,核心代码100%的开源,多年以来我们践行自己的诺言,努力提高产品质量,奉献社会,成为了国内知名的老牌工作流引擎. ccflow1.0 发展于2003年,xxx省税收业务管理信息系统. ccflow5.0 诞生于2013年北京亿阳信通股份有限公司,应用于xx省电信,xx

开源工作流引擎内核主要关心的是什么?

JBPM是开源工作流引擎中最突出的一种,这种引擎模式现在使用的范围是比较广的.目前,开源工作流引擎有很多,不同的开源工作流引擎不管是设计还是实现方式都是不同的,其选型.算法.机制等各不相同.说起开源工作流引擎内核,我相信大家最关心的莫过于其引擎内核问题了.开源工作流的引擎内核最关注的是什么呢?下面我们一起来看看: 其实,引擎内核所关注的,只是一个抽象层面的问题,它的职责是很精简的,主要是为了确保流程从一个节点运行到另一个节点上,保证能够执行当前的节点.概括地来说,开源工作流引擎内核所关注的问题有

java开源工作流引擎osworkflow

目前实际用到的三个方法 初始化:initialize(String workflowName, int initialAction, Map inputs) 查询:query(WorkflowExpressionQuery query) 操作:doAction(long id, int actionId, Map inputs) ---- 最重要的两步是初始化和操作,查询可以自己定义查询,因为在初始化和操作的时候会操作表中数据,查询不会修改数据. 目前就本工作流理解的是根据配置文件记录流程的操作

开源工作流引擎 Workflow Core 的研究和使用教程

目录 开源工作流引擎 Workflow Core 的研究和使用教程 一,工作流对象和使用前说明 二,IStepBuilder 节点 三,工作流节点的逻辑和操作 容器操作 普通节点 事件 条件体和循环体 节点的异步或多线程 用于事务的操作 四,条件或开关 迭代 条件判断 节点并发 五,其它 开源工作流引擎 Workflow Core 的研究和使用教程 一,工作流对象和使用前说明 为了避免歧义,事先约定. 工作流有很多节点组成,一个节点成为步骤点(Step). 1,IWorkflow / IWork

java开源工作流引擎jflow的流程应用类型分类讲解

关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单 工作流系统CCBPM节点访问规则接收人规则 适配数据库: oralce,mysql,sqlserver,Informix, PostgreSQL  达梦 根据数据投递的权限范围不同,CCBPM区分为普通类流程与项目类流程.普通类型流程的流转的组织机构定义在整体单位中,对于项目类流程它们的流转范围在整个项目组中. 普通类型:普通类型流程是区别于项目类流程而言,

Slickflow.NET 开源工作流引擎基础介绍(二)

集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造业务代码,适应业务过程的变化,这将会面临不断改写代码的需求:还有一种方式是使用流程引擎控制业务过程的变化,将改写业务代码的操作交由流程引擎,通过流程引擎解析业务规则,驱动业务过程流转,从而将改写业务代码的可能性降到最低. 显而易见,流程引擎带来的好处是为了更好解决业务过程变化后带来的重构风险,信息系

开源工作流引擎web设计器Activiti Modeler 5.17.0 与IE11的兼容性探究

一.源码下载 Activiti官网:http://activiti.org/ github:https://github.com/Activiti/Activiti 官网上下载的是lib库文件.文档和网站样例,推荐使用maven管理项目,可以不用下载库文件,直接下载源码,github上源码已经是5.18.0,但是官方还没有发布,从以下网址找到5.17.0的source code下载链接下载即可:https://github.com/Activiti/Activiti/releases,大小为20