我司从2006年开始使用Hansky Butterfly工作流平台。随着数据量的增加(Oracle dmp全量备份文件约15G,流程case数约1万条),查询功能越来越慢(员工登录系统的主页面,由于要查询和他/她相关的所有未关闭流程case,页面响应时间在10秒左右,使用Firefox+Firebug多次统计后给出的)。因此,想调研一下其它工作流平台,请大家给出一些建议。我只对jBPM了解一些。
以下是我对Hansky Butterfly优缺点的整理。
优点:
- 可自动生成Web界面。只要设计好流程图,定义好流程所需的域(即字段),就可以自动生成Web界面,几乎不需要美工。
- 可快速定制权限管理。
- 可快速定制查询。针对某一工作流实例新建查询时,可以快速自定义过滤器(即查询条件)和查询结果显示版式(例如:要显示哪些列,排列方式,显示宽度等)。
- 可快速定制图表。基于某一自定义查询新建图表时,可以快速自定义分布图和趋势图。
- 数据持久层是透明的。二次开发者可以不用考虑将数据保存到数据库方面的问题,这些都由Butterfly自动完成。
缺点:
- 在Hansky提供的集成开发环境Butterfly Designer中,进行脚本(BeanShell)编码时,不支持语法检查、代码自动补齐、快速查看方法,等等。可以说,其开发环境只相当于一个文本编辑器。这大大降低了开发效率。
- 不支持单元测试。具体点说,就是不支持对BeanShell脚本进行Mock测试。Butterfly API仅提供了大量Java interface,没有提供Mock桩。
- 由于数据持久层对二次开发者而言是透明的,快速自定义查询和图表的代价是,二次开发者不能优化查询,不能根据查询条件建索引。数据量大时,查询很慢。
- 由于数据持久层对二次开发者而言是不可见的,当数据量大时,不能对数据进行部分迁移或水平垂直拆分。