写点什么

REST 作为风格 -- WOA 作为架构

  • 2009-06-11
  • 本文字数:1577 字

    阅读完需:约 5 分钟

Dion Hinchcliffe 最近创作了两篇相关的文章,探求了面向 Web 的架构 (WOA) 与其它技术之间的关系。第一篇主要关于 WOA 与 REST;第二篇主要关于 WOA 与 SOA。第一篇文章的主要观点是:REST 是一种风格而 WOA 是架构。第二篇文章声称 WOA 实际上值得高度称赞的亚风格的 SOA,并探讨了这一简单的观察所揭示的意义。

作为讨论的开头,Hinchcliffe 承认一开始是 REST 最先吸引了你的注意:

你已经在 Web 上读了许多关于 REST 的文章,它将如何成为未来的 Internet 架构,并且你已经决定将其运用于你的工作。但当你更深入到这一课题时,会发现 REST 本身似乎就是关于在 Internet 上将数据资源从一处移到另一处,而不是构造一个完整的应用。对于你来说如何将其合适的应用于你的上下文环境 - 一个完整实现并良好设计的软件 - 中来并不清楚 (当然也是缺乏文档的)。

然后他写到:

你开始揣测 REST 是如何被特别地 (以及策略性地) 用于一个应用或是整个软件架构的。换句话说,哪一些是活动的部分以及应用它们时该如何约束。你同样想知道还有什么是你可以与 REST 共同使用,或能对其补充使其变得更好的。你甚至可能想知道什么时候可以打破规则而使用其它一些相关的措施。这些正好是 WOA 派上用场的地方了。

最后总结到,“因此,简而言之,WOA 远比 REST 更多,而 REST 是 WOA 的基本架构风格。”

Hinchcliffe 将 WOA 分为两部分来定义:核心部分包括 REST,URL,SSL 以及 XML;还有一个“WOA 完全版”包括了协议以及接口 (例如,BitTorrent),身份以及安全 (例如,OpenID),分发与组件 (例如,Open API),以及数据格式与描述 (例如,ATOM)。这些内容以六个层次组织成了 WOA 栈 (包括示例用的技术):

  • 分发 (HTTP, feeds)
  • 组合 (Hypermedia, Mashups)
  • 安全 (OpenID, SSL)
  • 数据兼容性 (XML, RDF)
  • 数据表示 (ATOM, JSON)
  • 转移方式 (REST, HTTP)

这一个栈增强了 WOA 与 REST 之间的关系,后者作为基础支撑着这整个大型的架构思想。

很重要的一点是要认识到 WOA 还并未成熟到成为一个架构模式或是良好定义的框架。如 Hinchliffe 所写的那样:

WOA 是当下开发者们正在实施的…一系列设计 Web 应用的最佳实践。它并不是一个方案和技术的摸彩袋,而是一个真正发挥作用的优雅的模型:它是安全的,有着良好的 Web 伸缩性,性能卓越,…同时还是易于上手,易于实现,而当你一旦理解了 Web 之后这几乎是本能而直观的。

那这一风格与架构的讨论又是如何联系到 SOA 的呢?

首先,依据 Hinchcliffe 的说法,“WOA 实际上值得高度称赞的亚风格的 SOA”。更进一步

对于那些进行传统 SOA 开发的人们来说,WOA 当然也提供了诸多的优势。其中包括了提升明显的服务消费模型,更便宜更节约时间,以及释放了链接架构的巨大能量来驱动信息发现,利用与分析。Open API 与云计算所蕴含的深厚的业务意义这周变得更加清晰。WOA 更是为访问现今可获取许多新的在线产品分发模型打开了匝道。SOA 当中的分发是一个被忽视掉的悲伤的话题,然而 WOA 能带来一个广泛的技术集合,从聚合到非凡的低阻 Web 服务。

而 WOA- 因为将 REST 合并作为核心技术,而又不完全等同于它 - 提供了在基于 SOAP 模型与基于 REST 的 Web 服务技术之间的调和。

WOA 可以被看着是将 SOA 超出防火墙的一种方法。Hinchcliffe 与他的同事,David Linthicum,建议:

WOA 最大的舞台可能是其跨防火墙的意义,API 部门可以使用 SOA 来提供可伸缩的,自服务的交易合作功能,尽管防火墙内部的业务也是一个很大的舞台。

WOA 支持 SOA 实践者去探索不同的业务场景集合。Hinchcliffe 讨论了五个潜在的场景,包括:“SOA 信息的爬虫性,搜索性,与发现性”与“Open API 将 WOA 直接暴露于合作伙伴。”

揭开WOA:前沿架构风格的六个方面 SOA 世界开始认真考虑 WOA 这两篇文章都值得一读,以更深入的看待 REST,WOA,与 SOA 这个三元组。

查看英文原文: REST is a style – WOA is the architecture.

2009-06-11 01:054216
用户头像

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

关注

评论

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

急了,Mysql索引中最不容易记的三个知识点通透了

知识浅谈

8月月更

一起来学华为云数据库,RDS实践【华为云至简致远】

科技云未来

云数据库

它们不一样!透析【观察者模式】和【发布订阅模式】

掘金安东尼

前端 设计模式 8月月更

基于ECS实现一分钟自动化部署【华为云至简致远】

科技云未来

自动化部署

LeaRun模型驱动开发框架 重塑企业生产力

力软低代码开发平台

2022年中国全民健身发展白皮书

易观分析

行业分析 健身

写给 Java 程序员的前端 Promise 教程

CRMEB

QCon 回顾 | Data Fabric:逻辑统一、物理分散

网易数帆

大数据 数据湖 降本增效 Data Fabric

运筹帷幄决胜千里,Python3.10原生协程asyncio工业级真实协程异步消费任务调度实践

刘悦的技术博客

Python 协程 Async Python3 协程原理

开源一夏 | RuntimeException 子类

六月的雨在InfoQ

开源 8月月更

华为云服务之弹性云服务器ECS的深度使用和云端实践【华为云至简致远】

科技云未来

弹性云服务器ECS

用完华为云会议解决方案,我直接卸载了之前的会议软件【华为云至简致远】

科技云未来

云会议产品

基于华为云弹性云服务器ECS(搭载openEuler的鲲鹏通用计算增强型)完成鲲鹏代码迁移工具实践【华为云至简致远】

科技云未来

鲲鹏服务器 弹性云服务器ESC

Taro小程序跨端开发入门实战

京东科技开发者

小程序 taro 开发 移动端

APICloud AVM 封装日期和时间选择组件

YonBuilder低代码开发平台

安卓 低代码开发 多端开发

永续合约交易所系统开发逻辑详情

开发微hkkf5566

EMQ畅谈IoT数据基础软件开源版图,引领本土开源走向全球

EMQ映云科技

开源 物联网 IoT emq 8月月更

科创人·优锘科技COO孙岗:错误问题找不到正确答案,求索万物可视的大美未来

科创人

调研阶段复盘

Geek_XOXO

复盘

2022纯手工打造1700道Java高级工程师面试宝典(含面试题解析)

Java工程师

Java 面试 八股文

以数治企,韧性成长,2022 年中国 CIO 数字峰会成功举行

金蝶云·苍穹

如何用精益敏捷组合管理,提升研发效能?|ONES 研发管理大师课

万事ONES

10分钟快速入门RDS【华为云至简致远】

科技云未来

RDS

Java泛型的继承场景

Geek_163f36

企业“数字化转型”成功的2个必备条件!

优秀

数字化转型

华为云分布式缓存服务Redis开通及使用规划教程【华为云至简致远】

科技云未来

redis'

mysql进阶(二十九)常用函数汇总

No Silver Bullet

MySQL mysql常用函数 8月月更

国内部分手机游戏开始显示用户IP属地

郑州埃文科技

游戏 手游 IP归属地

Grid 布局介绍

CRMEB

基于华为云ModelArts的水表读数识别开发实践【华为云至简致远】

科技云未来

水表读数识别项目

Qt下异步使用C++调用Python文件

Geek_163f36

REST作为风格 -- WOA作为架构_SOA_Dave West_InfoQ精选文章