博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
驰骋工作流引擎JFlow与activiti的对比 -总结
阅读量:6109 次
发布时间:2019-06-21

本文共 1566 字,大约阅读时间需要 5 分钟。

hot3.png

 

3546486c35caa7fccb4c89205108c1bb170.jpg

共同点:

    嵌入式的工作流引擎,降低集群复杂性。

    严格而灵活的流程版本控制
    支持多种数据库
    支持多种流程设计模式
    成熟度高的开源工作流,具有可靠的稳定性和性能。

 

区别:

    流程定义方式:

ACTIVITI :采用xml的方式,通过拼字符串的方式完成,所以流程定义时的结果不直观、不方便。

JFLOW:拥有自己的流程设计器和表单设计器,画布性质的,所见即所得。包括流程运转条件、方向条件等。

    面向使用对象:

ACTIVITI :由于设计方式,只能面向流程开发人员。

JFLOW:既面向流程开发人员又面向业务人员,即使不会编程,也可以进行流程设计。

    节点类型:

ACTIVITI :开始节点、结束节点、自动节点、任务节点、fork分支、join联合等多种节点。通过多种节点的配合以及事件等使用,组成流程。

并且,开始节点必须有一个向外的流向。

JFLOW:普通节点、分流节点、子线程节点、合流节点。

开始节点属于普通节点,可以做为一个单节点的流程,没有流向。

结束节点由CC自动判断定义。

CC中的循环是通过方向条件判断,同步、聚合等是由合流节点。

    对复杂流程的支持:

ACTIVITI :不适合非常复杂的流程,他只是提供了一套丰富的工作流模型,可以让你去做任何事情,即便违反工作流规范。

JFLOW:通过节点运行规则、方向条件、丰富的事件、运行模式和表单解决方案,完全满足复杂的流程运转,对任何情况,都是可控的。

    对历史数据的挖掘:

ACTIVITI :对历史数据的支持不是很好,比如,子任务不能写入历史之类。当然,通过修改代码与BUG,也是可以实现的。

JFLOW:具有轨迹功能,即对某一个流程运行产生数据的保存,流程运行中,可以查看相关节点的处理信息与流程数据,流程结束后也可以。

表单集成

因为activiti 仅仅是一个流程引擎,所以无可比性,这里不做对比。仅仅说明表单引擎与流程引擎在业务系统中的应用。

 

表单引擎与流程引擎的关系

我们把BPM系统比喻一部汽车,那么车的控制系统,就象流程引擎,比如:刹车、油门、离合、方向灯,就是车的控制系统。车的车厢就是表单,而货物就是数据。

1672ba58d391593e9b9fcb1bc0d0455696d.jpg

我们研究汽车不能把车的控制系统与车的拉货分开讨论的。

工作流程在运行的过程中,他的主要目的就是协调各个部门,人员,岗位处理业务 流水线化。

流程在运动过程中,需要操纵表单数据的分合,或者需要读取表单数据进行方向转向、流程业务处理的控制工作。

 

最简单的请假流程-根据表单的请假天数来判断流程的分支

 

d3f2d3dc126bd43e3e723b53a17bda6afe9.jpg

可以方便的可视化的设计方向条件

0763cf9aff04cdff403e21e1c281f6b8bfb.jpg

 

流程引擎操纵表单引擎的一个案例

比如:在JFlow的分合流里, 如下流程:

2a2819f2eb38e97c96bc4ded94e62bef3a9.jpg

项目经理下达任务填写节点:

bdc1e912538e37c5c30fdd9cfc3439cf137.jpg

每个销售人员填写数据节点表单:

aad308f5b4961371d8e0267f1a150e9303b.jpg

数据汇总节点(数据汇总):

c1baf4414b3e80dfb45658d3af62a97382c.jpg

JFlow认为一个流程引擎与表单引擎就是

对多种表单的支持
简洁明快的CCForm

70c771754211453b59864091fc29f929592.jpg

6b21471830f20cdf3b57554543aa9b2afcf.jpg

7161aa1cbb9f35f161722b1eabcc5a8753e.jpg

5118fd8bf4903391ddc6e87b64fdfe24cba.jpg

 

Word文档支持

 d15579c186c9efdee7dbc429984e6cb9291.jpg

Excel表单的支持

ea0aef98486269bd8cd23503bbe3afeacf4.jpg

 

 

表单树的支持

 

76f3b93ed793125e6a3be916335f500673e.jpg

 

 

符合中国特色个性化JFlow功能

如果使用符合中国特色的流程引擎,有些牵强,因为一些规则,在国外也需要用到,只是国外的开发者,不想把他们抽象出来。

在国内的开发者,与实施人员要求个性化定制要求比较高,一起需要基于设置开发,所以这对流程引擎的设计者对业务规则的抽象要求提出更高的水平。

并不能说每个属性设置都属于中国特色,以下以几个功能来说明该问题,为什么activti没有涉及到这些功能,因为他们对流程引擎的发展定位不同。

 

流程属性

流程属性是控制整个流程的规则的设置。

比如单据编号生成规则,

每个流程属性,都是从实际也规则走

JFlow提供了丰富的流程属性定义规则,让我们开发

0a756cd008ce12084232ec7673d1c782941.jpg

 

多种接受人规则

 6a09d7e7844869efab4c387a1499f8a7202.jpg

接受人员投递路径自动记忆

04699b7b160d222d65bcefb75532f9cc12a.jpg

转载于:https://my.oschina.net/mengjuan/blog/2995235

你可能感兴趣的文章
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>
SQL Server表分区详解
查看>>