腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

WOA 与 SOA 之争

  • 2008-09-25
  • 本文字数:1092 字

    阅读完需:约 4 分钟

Gartner 副总裁 Nick Gall 是首个使用 WOA 一词的人,在一次访谈中,Loraine Lawson 请他向商业和 IT 主管们谈谈 WOA 与 SOA 之争的重点内容。

当被问及 WOA 一词的由来时,Nick Gall 说

我所能找到最早的记录是在 2005 年的秋天,当时我是在一个大会上发言时用到这个词的,然后我们公司的另一位副总裁 Whit Andrew在他的博客里记录下了我用到这个词这件事。

他说,REST 风格是跟 WOA 最为接近的架构风格,但“REST 引起了太多的争议,而且关于 REST 的实际含义存在着诸多误解”,于是他就发明了一个新术语。他说道:

在我看来,WOA 意味着一种更加以 Web 为中心的 Web 服务风格,它更简单、不怎么复杂、也不怎么受厂商驱使,它代表的就是这种新出现的风格。

接着,他用公式简洁地描述了这个架构风格“WOA = SOA + REST + WWW”。他通过为 SOA 添加架构约束的方式描述了 WOA。

WOA 是总的 SOA 风格中的一种子风格。对于那些希望符合 WOA 的 Web 服务而言,它们应力求遵守 REST 的所有约束。不过也不必 100% 符合 REST 风格。

SOA 这种架构风格本质上有五点约束。如果你的架构满足所有这些特征——模块化的、可分布的、可描述的、可共享的和松耦合的——那么你的架构就可以称得上面向服务的架构(SOA)。

WOA 更进一步,它还要求遵守 REST 约束,而且 REST 约束与 SOA 约束是完全相容的。其实,REST 的每一条约束都是教你如何满足 SOA 的五大约束。

他说,现在企业里有很多采用 WS-*、SOAP 和 WSDL 等相关技术的 SOA 项目。“它不够完美,但你可以描述它。然而它没有统一的名称”。他称这种风格的 SOA 为“X 风格”。他描述道,

SOA 是五大约束的概括性术语。 目前,他有两种主要的子风格。 一种是 X 风格(即目前还没有名称),它是一种类似分布式对象和 IDL 的风格。 SOA 的另一种主要风格便是 WOA 风格。 在所有实现 SOA 的途径之中,WOA 已经展现出了高度的可共享性与松耦合性。另外,它们的确是两种相互竞争的风格。我们可以对 WOA 风格的 SOA 和 X 风格的 SOA 做一个优缺点的对比。

他说,Gartner 目前正在研究这两种风格的优点与缺点。当被问及 CIO 们该如何判断是关注 SOA 还是 WOA、以及应如何理解所有这些争论时,Nick Gall 建议,

把注意力集中在两条关键准则上:共享和松耦合。若回顾过去,未能看到很大程度的共享,那我认为项目是失败的。而且我还要确保业务流程具有相当的敏捷性。

在访谈结束时,他向 CXO 们提出告诫。他说,

如果他们只是关注于技术层面,那他们将一无所获。真正应该关注的是实现共享和敏捷性所需的架构以及弥补缺陷的不同方式。

一定要看看完整的访谈。你们企业里采用的是哪种SOA?欢迎告诉我们。 查看英文原文: WOA vs SOA Debate

2008-09-25 12:02673
用户头像

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

关注

评论

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

react源码中的协调与调度

flyzz177

React

etcd实现分布式锁

六月的

分布式锁 etcd

go-zero docker-compose 搭建课件服务(九):http统一返回和集成日志服务

六月的

Docker-compose go-zero

【LeetCode】水果成篮Java题解

Albert

算法 LeetCode 10月月更

go-zero docker-compose 搭建课件服务(一):编写服务api和proto

六月的

Docker-compose go-zero

golang中经常会犯的一些错误

六月的

golang

OKR之剑·理念篇03:OKR理念认同

vivo互联网技术

团队管理 OKR 目标管理

go-zero docker-compose搭建课件服务(四):生成Dockerfile

六月的

Docker-compose go-zero

go-zero docker-compose 搭建课件服务(五):完善user服务

六月的

Docker-compose go-zero

golang中的选项模式

六月的

golang 选项模式

PaddleNLP基于ERNIR3.0文本分类:WOS数据集为例(层次分类)

汀丶

nlp 文本分类

golang中的socket编程

六月的

golang socket

go-zero docker-compose 搭建课件服务(三):编写courseware api服务

六月的

Docker-compose go-zero

go channel原理及使用场景

六月的

Go channel

golang中的几种并发模式

六月的

golang 并发模式

rabbitmq原理和应用

六月的

Go RabbitMQ

租房小程序使用uniapp展示地图map

源字节1号

小程序开发

goroutine&waitgroup下载文件

六月的

goroutine waitgroup

100+款AI产品薅羊毛攻略(上)——轻轻松松节省几十万

夏夜许游

人工智能 阿里云 AI 视觉

go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控

六月的

Docker-compose go-zero

go-zero docker-compose 搭建课件服务(六):完善jwt鉴权和返回结构

六月的

Docker-compose go-zero

go-zero docker-compose 搭建课件服务(八):集成jaeger链路追踪

六月的

Docker-compose go-zero

深入浅出redis缓存应用

六月的

redis

golang的内存管理

六月的

golang 内存管理

golang单元测试一(简单函数测试)

六月的

golang 单元测试

golang中的一些实用功能

六月的

golang

golang垃圾回收

六月的

golang 垃圾回收

数据驱动型企业如何借助「新一代智能协作」提升研发效能?

LigaAI

人工智能 数据驱动 亚马逊云科技 企业号十月PK榜

部署 SAP UI5 应用到 SAP BTP 时遇到的 error retrieving MTA 错误消息

Jerry Wang

云原生 Cloud 云平台 SAP 10月月更

实现etcd服务注册与发现

六月的

Docker-compose go-zero

go-zero docker-compose 搭建课件服务(二):编写courseware rpc服务

六月的

Docker-compose go-zero

WOA与SOA之争_SOA_Dilip Krishnan_InfoQ精选文章