写点什么

要不要自建工作流引擎?

  • 2009-07-17
  • 本文字数:1083 字

    阅读完需:约 4 分钟

现在,越来越多的人意识到在解决方案中引入工作流的重要性。然而,在面临如何具体实现的时,自建亦或是使用(现有工作流)?争论仍在继续。在 Bernd Rücker 的新博文“工作流引擎?动手整一个……”中,他重拳出击,讨论了围绕在这个问题周围的一些常见误解。

在 Bernd 看来,支持开发“自产的”工作流引擎的典型论点包括以下几个方面:

  • 我们仅有非常基本的需求,简单的状态机。用工作流引擎是用大炮打蚊子。
  • 引擎应该是应用的一部分,而不是独立的。
  • 我们已经对工作流产品 X 做了评估,它并不适合我们的需求。

尽管乍一看这些论点似乎有道理,但是这些论点很少能为开发“自产的”工作流引擎而付出的努力和开销提供充分理由。

我们仅有非常基本的需求,而且,为此而学习新技术或(工作流的)实现而花费时间和努力是不值得的。结果很多实现一开始是基于简单的数据库表,在其中维持每一个流程的实例及其状态。但是,如果现在还需要支持以下方面的需求呢?

  • 存储实例变量的等待状态?
  • 超时处理?
  • 事件上报?
  • 决策网关?

Bernd 指出,根据他的经验,尽管工作流引擎的实现的确始于简单的需求,但随着时间的推移需求一定会不断增长,而且,到最后公司往往“陷入”维护和支持这个日益丰满的工作流系统。

引擎应该是应用的的一部分,因此我们不希望招惹对增加的硬件、软件、集成以及安装过程等的依赖(而这些是很多商业引擎的典型需求)。

Bernd 对这种场景的建议是考虑使用轻量级的 Java 工作流引擎,它们很容易集成到用户的产品中去。这样的工作流有 JBoss jBPM,Nova Bonita,Enhydra Shark 等,这些工作流一般都包含很多配置选项,使得它们可以非常容易地适配具体的应用需求。

我们已经评估过工作流产品 X,它不适合,这是最难应付的理由。Bernd 认为,问题在于,即使是轻量级的开源工作流引擎,也需要时间和精力才能得出合理的评价。对于一个工作流,如果没有足够的时间去检验它,得到的结论往往不充分的;而如果能够花足够的时间去了解技术的话,几乎没有哪个工作流不能提供所需的功能。Bernd 举了个例子,他的客户们无不发现,使用 jBPM 可以很容易地实现他们所需要的任何功能。问题在于要花时间去了解技术。

Bernd 以这样的方式总结他的博文:

请不要再自己开发了![这是项很昂贵的工作]。[理解一个引擎的] 学习曲线往往磨刀不负砍柴工!……[一旦你知道如何使用] 使用引擎的优势就不辩自明了。

今天的人们已经很少自己实现他们的数据库,O/R 映射工具或应用服务器了。为什么人们总是要想着自行开发工作流引擎呢?工作流引擎已经成为商品,而且,使用现有的实现总是比自开发省钱的多。

查看英文原文: Workflow Engine – To Build or Not to Build One?

2009-07-17 01:5018074
用户头像

发布了 184 篇内容, 共 79.8 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL的index merge(索引合并)导致数据库死锁分析与解决方案 | 京东云技术团队

京东科技开发者

MySQL 数据库 索引 企业号10月PK榜

战略引领 注重实绩 形成闭环——中国交建绩效管理创新与数智化实践

用友BIP

绩效管理

出版行业企业如何快速实现数智化转型?

用友BIP

Fast by BIP 出版行业

如何强制SQL走性能更优的hash join

华为云开发者联盟

数据库 sql 后端 华为云 华为云开发者联盟

数据如何同步到云服务器

天翼云开发者社区

云计算 数据迁移

Trino容错模式深度测评与思考

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 交互式分析

淘天集团大模型应用十大挑战命题发布

阿里技术

AI 校招 AIGC 淘天

EVE-NG初次启动及WEB客户端访问

小魏写代码

校源行丨开放原子开源基金会赴北京信息科技大学走访交流

开放原子开源基金会

开放原子开源基金会联合主办的2023 CCF中国开源大会即将开幕

开放原子开源基金会

开源 CCF

【华秋商城】海量现货库存 闪电发货

华秋电子

连接器

Flink测试利器之DataGen初探 | 京东云技术团队

京东科技开发者

大数据 测试 flink sql 执行过程 企业号10月PK榜 DataGen

FinClip小程序技术,加速国产化应用新进程

FinClip

数字孪生5G智慧工厂3D可视化云平台

2D3D前端可视化开发

物联网 可视化 数字孪生 智慧工厂 智能制造

从原理到实战,详解XXE攻击

华为云开发者联盟

安全 后端 华为云 华为云开发者联盟

可制造性拓展篇│HDI(盲、埋孔)板压合问题

华秋电子

HDI

软件测试/测试开发丨Python闭包与装饰器 学习笔记

测试人

Python 程序员 软件测试 自动化测试 测试开发

用友战略签约广联达,共同使能建筑行业企业高质量发展

用友BIP

建筑行业

使用 GitHub Action 自动更新 Sealos 集群的应用镜像

米开朗基杨

云原生 #go

以效率为导向:用ChatGPT和HttpRunner实现敏捷自动化测试(二) | 京东云技术团队

京东科技开发者

自动化测试 敏捷测试 HttpRunner ChatGPT 企业号10月PK榜

火山引擎DataTester:跨境电商网站,如何快速实施AB测试 ?

字节跳动数据平台

大数据 A/B 测试 对比实验 数字化增长 企业号10月PK榜

户外裸眼3D屏幕合适用什么规格

Dylan

3D LED显示屏 户外LED显示屏 led显示屏厂家

当HTAP已成标配,什么才是制胜关键?

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

负载均衡详解

天翼云开发者社区

负载均衡 服务器

云网络对等连接产品的高可用保证

天翼云开发者社区

网络 对等连接

要不要自建工作流引擎?_SOA_Boris Lublinsky_InfoQ精选文章