争论:SOA已死?

Anne Thomas Manes为SOA写了一篇讣告,声称

2009年元旦,SOA遭遇死亡,经济衰退的灾难性影响彻底摧毁了它。SOA由其后代得以延续:mashups、BPM、SaaS、云计算及其他依赖“服务”的架构方法

她接着说:

SOA曾被认为是IT的大救星,现在却证明是一项极其失败的试验——至少对于大多数组织而言如此。SOA被认为能大规模降低成本和增加机动性。但除了极个别情况,SOA并未兑现它承诺的好处。在投资百万后,IT系统并未得到改善。许多组织的情况更糟:成本增加、项目延期,系统比以往更脆弱。手握钱袋的人们对此已感到厌倦。鉴于2009年的预算紧缩,许多组织消减了他们SOA项目的资金。

尽管SOA最初主要被技术人员接受,但就其本质而言,它是业务而非技术问题。又由于是技术人员和产品提供商引入(并且往往执行)了SOA,他们对SOA技术(软件销售)的关心要多过对其本身业务影响的关注:

人们忘记了SOA的目的,沉醉于愚蠢的技术争论(如,“最好的ESB是什么?”或者“WS-*火拼REST”),却遗忘了重要的内容:架构。

由于无法快速地展示其ROI,导致许多业务决策制定者对SOA敬而远之:

SOA的衰弱导致了SOA的幻灭。业务人员不再相信SOA会带来可观的收益。“SOA”已经成了过街老鼠。它必须从我们的字典中消失。

这意味着IT界的滑铁卢:

SOA的灭亡是IT界的悲剧。组织迫切需要给他们应用程序集合进行架构性改进。面向服务是快速集成数据和业务流程的先决条件;它使环境开发模型(如mashups)成为可能;它还是SaaS和云计算的基础架构。

那么接下来会怎样?根据Anne的说法:

尽管“SOA”一词已死,但是对于面向服务架构的需求比以前更迫切了。

她建议停止讨论SOA,开始讨论服务(可是她并未清晰定义该词,因而为解释和误解创造了条件)。

该文无疑在该领域的思想领袖中引发了极大争议。

David Linthicum分析了出现的问题,解释如下:

  • 缺乏理解SOA的熟练架构师。
  • 大咨询公司更关注战术和时间计费而非结果。
  • 厂商过分关注销售,对解决方案却关注不足。
  • 大肆渲染SOA是所有IT困境的灵丹妙药

Joe McKendrick表示SOA是一种架构风格而非产品:

成功的SOA是变革过程中的一部分,该过程将改变组织被管理和做业务的方式。并且一些组织似乎立刻就“得到了它”。然而,大多数公司可能认为SOA更像是JBOWS(Just a Bunch of Web Services,只是一堆杂乱无章的Web服务)架构。SOA是一种方法论和哲学。SOA所用的技术和方法混合体会发生变化。几年前,这种方法是Web服务,昨天它成了REST和Web或企业 2.0,今天则是云计算。SOA的妙处就在于它必须独立于底层的技术或协议。

Miko Matsumura支持Anne对改变术语的建议,但强调SOA概念,尤其是SOA的业务维度肯定会延续下去:

我认为把SOA作为术语使用迟早要到头,但是解决根本问题的策略将不得不脱离SOA“潮流”继续演变。在SOA死亡的同时,SOA也必然会被一个不同的名字所替代。大组织的DNA会需要接口根据实现方式对需求进行适当地分割,而SOA的设计模式恰恰能实现企业、多企业和真正的“云”平台长期愿景。任何像SOA这样的术语必须经历这种炒作的循环,并经历语言上的神化、实现、试验、最终到达术语的疲劳程度。SOA有一个特别的“大杂烩”议程,因此众多拒绝离开它的人们沉浸在SOA将打救他们的希望之中。坦白的讲,我认为“云”也会出现同类模式,这说明它是个不太容易定义的技术词汇,反而是一系列政治利害和一系列的内幕和实现联系在了一起。

他对反应也提出了警告,在IT最近的历史中它是如此的司空见惯:

对经济的担心应该让位于成为我们必需品的项目。反射性情绪反应的时代但愿能遗留给2008年(或是2009年上半年),并且我们能并肩前进来重新规划和重建我们的基础设施。为了实现这个宏伟愿景,我们需要每一个人都必需做出改变。

Steve Jones这样解释Anne的言论:

由于向你兜售了足够的废物,厂商正在离SOA而去。现在,他们又想向你倾销它的后代:mashups、BPM、SaaS和云计算……现实情况是,服务在现阶段其实比其他时候更重要。这并不是说SOA已死,它意味着在无法销售更多的ESB和Web服务工具时,市场对T-SOA(译注:Technology-SOA,技术性SOA)不再青睐。剩下来的,SOA的服务所带来的事实是SOA的起点不是那些绚丽的技术;如果你采用新的技术,而不具备服务的心态,那么你就会制造一定程度的混乱,结果会轻易地让咨询师和提供商利用EAI而大发横财。在防火墙内部、大型应用之间制造混乱是一方面,在因特网上通过成千上万个小应用这样做则是一个规模完全不同的问题。

接着,Steve阐述了服务的定义,提倡“业务优先”的方法,并把服务定义成“为他人使用而暴露的功能”:

……你需要发现你的服务、理解它们交付的业务价值、理解交付该价值的成本模型,最终决定正确的技术方法

另一方面,Nick Gall不同意Anne指出的方向(“服务万岁”):

作为传统的理解,正是服务思想导致了这场混乱,我们发现自己深陷其中:实体相关(服务)的接口导致的支离破碎。相反,我更愿意说“Web万岁”。我对Anne的博文对Web提都没提表示非常震惊!

他引用了Google、Amazon,甚至是Salesforce的成功,并且把这些成果归因于很大程度上利用了万维网架构、Web社区和Web业务模型:“面向Web”是快速集成数据和业务流程的先决条件;它使环境开发模型(如mashups)成为可能;同时它是SaaS和云计算的基础架构。

最后,相似的观点来自于Don Box在2005年公开发表的预言,尽管它与本讨论无关,但却暗示了相似的结果:

SOA一词终将废止,软件业会发明或重新利用同样模糊的术语来代替它。

务必请阅读Annes的原文。

很明显,光靠改头换面可能无法解决当前SOA的问题,但是有人可能会争辩说,重新关注SOA中的架构和业务方面却可以。你怎么看?SOA已死,或者依旧活力十足?

查看英文原文:Debate: Is SOA Dead?

你可能感兴趣的:(争论:SOA已死?)