BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

要不要自建工作流引擎?

| 作者 Boris Lublinsky 关注 1 他的粉丝 ,译者 马国耀 关注 1 他的粉丝 发布于 2009年7月18日. 估计阅读时间: 3 分钟 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点

现在,越来越多的人意识到在解决方案中引入工作流的重要性。然而,在面临如何具体实现的时,自建亦或是使用(现有工作流)?争论仍在继续。在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?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

by Wei Fisher

他的意思是说,开始的时候对wf仅有简单的需求。但是随着业务的发展,对wf引擎会出现越来越多的需求,所以从一开始就应该使用成熟的工作流引擎。

我的理解对么?

Re: 哦 by wu fei

right!

Re: 哦 by 张 鹏

选择的依据应该是正确理解并预测用户需求的发展,在考虑技术熟悉周期对项目的影响的前提下,选择可适应客户需求急速变化的产品.

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT