HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

争论:SOA 已死?

  • 2009-01-11
  • 本文字数:2369 字

    阅读完需:约 8 分钟

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?

2009-01-11 08:221907
用户头像

发布了 255 篇内容, 共 56.9 次阅读, 收获喜欢 10 次。

关注

评论

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

Git,GitHub与GitLab的区别,java框架开发面试题

Java 程序员 后端

Google 面试六轮游,结果还是没过!Google面试真题分享

Java 程序员 后端

docker-compose下的java应用启动顺序两部曲之二:实战

Java 程序员 后端

Dubbo面试题,mybatis架构图

Java 程序员 后端

elasticsearch实战三部曲之二:文档操作,java基础填空题

Java 程序员 后端

Elasticsearch查询速度为什么这么快?看啥?问你呢

Java 程序员 后端

git(8)Git 与其他系统,高性能mysql第四版pdf百度云

Java 程序员 后端

IDEA开发Spark应用实战(Scala),java高级开发简历

Java 程序员 后端

github搜索技巧小结,深入理解JVM

Java 程序员 后端

Hadoop分布式高可用HA集群搭建笔记(含Hive之构建)

Java 程序员 后端

HTTP 2,实战篇

Java 程序员 后端

DL4J实战之五:矩阵操作基本功,微服务架构技术栈

Java 程序员 后端

鸿蒙生态的2021:像犀牛在丛林飞

脑极体

HTML笔记 —— 表单,java数组的底层原理

Java 程序员 后端

第 2 周作业

波波

「架构实战营」

git(9)Git 内部原理,nginx模块工作原理

Java 程序员 后端

HCIE云计算--灾备,万字总结

Java 后端

ECMAScript6(ES6)基础语法,linux基础及应用教程第二版

Java 程序员 后端

Elasticsearch聚合学习之二:区间聚合,java中高级面试题大全

Java 程序员 后端

Flink1,java从入门到精通第四版pdf下载

Java 程序员 后端

Github已星标180K又一神作,阿里巴巴内部并发编程笔记

Java 程序员 后端

HashMap底层实现原理及面试问题,linux服务器搭建教程视频

Java 程序员 后端

HashMap(jdk1,linux学习路线图

Java 程序员 后端

爽!字节大佬DDD(领域驱动设计)巅峰之作,拆解业务代码真好用

编程 程序员 字节

flex 布局详解,我是如何收割多家大厂offer的

Java 程序员 后端

Flink on Yarn三部曲之一:准备工作,java开发校招面试题

Java 程序员 后端

jackson学习之六:常用类注解,java编程思想第五版电子书

Java 程序员 后端

Docker 从入门到实践系列三 - Docker 常用命令

Java 程序员 后端

Docker系列(3)--容器连接和Dockerfile,kafka的原理

Java 程序员 后端

Elasticsearch聚合学习之五:排序结果不准的问题分析

Java 程序员 后端

Github神作!2021Java秋招高级面试指南,吃透至少阿里P6

Java 程序员 后端

争论:SOA已死?_SOA_Dilip Krishnan_InfoQ精选文章