写点什么

打住!SOA、SOA 2.0、ROA 和 WOA,缩略词也太过头了吧?

2008 年 6 月 15 日

一开始是 SOA(当然,这取决于你的静止参考系 也许是REST [没有双关语义]),然后是REST,面向资源的架构(ROA),接着是EDA, SOA 2.0 ,直到现在的面向Web 的架构(WOA)。除了REST( SOA 和 REST 争论在别处盛行),这些术语到底给这个问题带来了什么意义,或者只是更加混淆了这些问题?根据 Anne Thomas Manes 的说法,WOA 是一个过头了的三字经

Nick Gall 在 2005 年末的 Gartner 峰会上第一次提出了这个术语。他将其描述成SOA 的一个子集并拥抱了 REST 的原则和 W3C 的万维网架构。但之后 Dion Hinchcliff 在今年二月撰写了相关文章 (并重新定义了它)。

按照 Dion 的说法,WOA 的基本信条是: > - WOA 里的信息是以网络上的资源的形式来表示的,通过 URI 中指定的协议来访问和操作,协议一般是 HTTP。

  • 网络上的任一资源可以通过全球唯一地址来定位,即统一资源定位符(URI)或者符合 RFC 3986 的 URI。
  • 资源是被用一种叫作表述性状态转移 REST 的技术,通过 HTTP 的动词来进行操作的(GET,PUT,POST,DELETE)。
  • 对网络资源的操作仅是通过在网络上的组件来进行的(实质上是浏览器和其它的 Web 服务器)。
  • 对资源的访问必须是分层的,并且除本地之外,不需要对网络有更多的了解。
  • 组件的职责是理解状态表述,并使其操作资源的转移状态有效。
  • WOA 资源的服务契约是隐式的;即它接收到的状态表述。
  • WOA 可以包含内嵌的 URI 以构建具有细粒度表述状态的大规模网络(例如,订单资源可以内嵌库存资源的 URLs)
  • WOA 包括了 Thomas Erl 的 SOA 的精髓,尽管常常是以出乎意料的方式(比如拥有契约,尽管是隐含的)。

然而,Anne 继续提到,近来关于 WOA 的话题逐渐增多,支持和反对这一原则的都有:

…… Dana Gardner 四月初发表在 ZDNet 上的一篇文章欢呼 WOA 是 SOA 的救世主。Dion 在 ZDNet 紧跟着发布的另一篇文章详述了 Web 2.0 成功案例并暗示如果 SOA 将焦点集中在 WOA 将会获得更大的成功。但学者群体对又一个的“xOA”缩写一点也不感冒。 SearchSOA 的 Mike Meehan 优雅的总结了这一论题并质问到 WOA 到底给 SOA 带来了什么新鲜的血液?同一天 Dana Gardner 在 ZDnet 发表了第二篇题为“受够了WOA ”的文章。就在上周 ZapThinkers 在一篇讨论中反复衡量指出 SOA 和 WOA 是两个不同层面上的抽象,并提出又一个术语“面向 Web 的 SOA”。

Anne 站在反对 WOA 的一边,她不觉得 WOA 与 REST 有什么本质区别。Mike Meehan相信这是一个缺少基础的术语并且完全是多余的。 按照 Mike 曾游说过的一个人的说法:

“这让我想起了曾经有些人想要使‘SOA 2.0’的概念得到认同(某个供应商曾经尝试使用这个术语,但在受到 SOA 社区的拒绝之后又弃用了)。”

就像 Mike 所指出的一样,尽管 David Linthicum 认为 WOA 也有它积极的一方面,“但它说穿了还是 SOA”:

Dave Linthicum:“变化最快的是企业都发现,其实在 Web 上构建 SOA 是一条阻力最小的道路。他们可以使用 Web 资源,包括内容、因特网交付的 API,以及 Web 服务。一旦 WOA 取得成功,你将会看到跟防火墙或 SOA 成功背后所浮现来的一样的景象。这跟 Internet/Web 系统成功之后 intranet 应用的兴起是一样的。”

然而, Dana Gardner相信 WOA 将会很快侵蚀掉 SOA

所以我现在开始怀疑,那扇被经典定义的 SOA 的整体部署与价值的窗户,是不是已经摇摇欲坠了。Web 接口和遗留应用数据的直接转化是不是就已经足够了?暴露旧的应用,通过巩固和现代化来降低 IT 支持的成本是不是已经足够了?

Dana 给 WOA 下的定义看起来却跟 REST 非常相像。回到 Anne 这边,她指出维基百科上(甚至)都还没有 WOA 这个词条:当然这并不是对其相关性的一个很好的说明。她反复强调这一重要观点 那就是其他人 多年来也同样指出过 SOA 不是一个技术层面的术语:REST 是和 Web 服务一样的一个有效方法:

……从技术角度理解最重要的是,一个服务应该支持各种风格的接口访问。它应该允许一个应用程序用它所想用的任何方式来与自己进行交互: - 面向方法的接口 (例如, SOAP)

  • 面向消息的接口 (例如,JMS)
  • 面向资源的接口 (例如,HTTP)

为了理解 WOA(在 Anne 的定义看来应该是 REST)如何与 SOA 进行结合,Anne 指出两者的区别在于 SOA 详述了一个系统层面的架构风格(如何实现你的服务),而 WOA 参考的一种接口层面的架构风格(如何将你的服务暴露给用户)。

你应该从长远来设计你的服务,今年炒得火热的技术很有可能在未来五年内就销声匿迹。

看看 DCE,CORBA,DCOM,J(2)EE 等等的历史,会发现这是一个很好的观点。但最终这会给 WOA 带来什么?生龙活虎,奄奄一息还是死在最后一刻?我们真的需要另一个REST 术语吗,还是WOA 真的有什么显著的不同?

查看英文原文 Whoa There: SOA,SOA2.0,ROA,WOA.An Acronym Too Far?

2008 年 6 月 15 日 22:32982
用户头像

发布了 133 篇内容, 共 27.6 次阅读, 收获喜欢 1 次。

关注

评论

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

精通比特币:为什么它对自由、财务和未来至关重要(上篇)

CECBC区块链专委会

比特币

对话声网 Agora 首席科学家钟声 :5G时代到来前景下RTE实时互动技术的应用与发展

麦洛

Java

浅谈JVM和垃圾回收

SH的全栈笔记

Java JVM JVM虚拟机原理 垃圾回收算法

斗智亦斗棋,零售云市场的“楚河汉界”突围赛

脑极体

NIST发布酒店业网络安全指南

Machine Gun

网络安全 信息安全 WEB安全

Excelize 2.4.0 正式版发布, 新支持 152 项公式函数

xuri

GitHub Excel 开源项目 Go 语言 Excelize

架构实战营 模块2 课后作业

༺NPE༻

浅谈在探索数分之路上的“数据思维”论述

小飞象@木木自由

数据分析 数据分析体系 数据思维 数据分析方法论

为什么微服务一定要有 API 网关?

xcbeyond

微服务 api 网关 4月日更

访谈阿里巴巴安全科学家吴翰清

容光

专访 阿里吴翰清 最新网络安全

百度大脑3月新品推荐:EasyDL视频目标追踪全新发布

百度大脑

百度大脑 EasyDL

融合趋势下基于 Flink Kylin Hudi 湖仓一体的大数据生态体系

Apache Flink

flink

python 变量作用域和列表

若尘

变量 Python编程 作用域

深入理解Java虚拟机-HotSpot

华章IT

Java JVM 虚拟机

一种提升流媒体服务DSS的IO并发性能方案

Changing Lin

签约计划 4月日更

翻译:《实用的Python编程》09_03_Distribution

codists

Python

奇绩创坛2021秋季创业营开始报名

奇绩创坛

Python 爬虫实战(一) 爬取自如网租房信息

U+2647

python 爬虫 四月日更

朱嘉明:算力产业正面临着一个十年的长周期

CECBC区块链专委会

数字经济

ARTS- Week 7

steve_lee

直击灵魂!阿里技术官甩出内部爆款性能优化实战笔记,理论实战一键搞定!

Java王路飞

Java spring 程序员 架构 面试

Lombok初始使用及遇到的问题

风翱

lombok 4月日更

《采访彩食鲜 CTO 乔新亮:IT 团队从 100 到 10000 的管理心得》(采访提纲)

程序员历小冰

调查采访能力考核

使用Agora SDK开发React Native视频通话App

声网Agora

RTC React Native 声网 RTE

面试4轮字节Java研发岗,最终拿下Offer(原题复盘)

码农之家

编程 程序员 互联网 面试 字节

【AI全栈二】视频流多目标多类别无延迟高精度高召回目标追踪

cv君

人工智能 AI 目标检测 视频跟踪 综述

【提纲】专访融云CTO杨攀 | 技术型人才的自我修炼

Python测试开发

调查采访能力考核

如何从零开始学Python:(3)划重点:使用IDLE创建列表时需要注意的地方

广之巅

Python 四月日更

为什么我愿意持续做这样一件看似没有价值的事情

leoay

坚持 持续写作 长期价值

对话声网 Agora 首席科学家钟声 :声网的未来规划和人才建议

小诚信驿站

采访 调查采访能力考核

关于数字人民币、加密货币,央行前行长周小川、副行长李波博鳌论坛发声

CECBC区块链专委会

数字货币

打住!SOA、SOA 2.0、ROA和WOA,缩略词也太过头了吧?-InfoQ