速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

纯 GET 的 REST 集成模式——是同步,还是集成?

  • 2009-10-30
  • 本文字数:954 字

    阅读完需:约 3 分钟

Duncan Cragg 阐释了他关于纯粹基于 GET 的 REST 集成模式的想法,其内容与微软 FeedSync 规范的愿景极为相似。他通过与一名企业架构师的假想对话这一方式,来解释了这一模式。

这位担忧的企业架构师注意到面向服务的环境中充满这样的 REST 实践:Web 站点有“REST API”,或者有着小’s’的“Web 服务”。就算 AtomPub 也有“服务文档”!一些模式,比如 AtomPub,通过完整的 HTTP 方法集,仅提供简单的数据读 / 写服务。而另一些模式仅把这种读 / 写接口作为对更多复杂的服务功能的封装。

他不禁想到:“Web 在 REST 集成中处于什么位置?没有 PUT 和 DELETE,Web 也工作得很好:那么就使用本身 RESTful 的 GET 不就够了吗?”

他将自己的基于 GET 的集成模式称作 FOREST,一个 RESTful 的观察者同步模式,像他所解释的那样:

FOREST 是一个只有 GET 的 REST 集成模式,简单的定义为:一个资源的状态依赖于它所链接的其它资源的状态。[…] 这意味着,为了查看这些依赖,资源服务器同时也必须是客户端。

接下来他给出了一些关于这一集成场景的例子,还包括混搭…

FOREST 是由纯 GET 或 Web 轮询用例引申而来的 REST 模式,包括某些特定类型的混搭,比如 feed 聚合或筛选器,为其它网页创建摘要的站点,等等。

…以及它与企业的相关性。

FOREST 是在 ROA/WOA/SOA 环境里构建“企业混搭”的一个 REST 模式。[…] 据我所知与此最相近的是企业混搭标记语言,但 FOREST 却十分不同:它简单得多,并且是 / 纯粹 / 的 REST 模式。

就这点而言,实际上 ATOM/RSS feed 使用基于 GET 的同步已有一段时间了, FeedSync 就是这样的形式之一,这是微软的一个 feed 同步规范。

FeedSync 对于 Atom 和 RSS 的应用范围是定义一个最小的必需扩展,来支持松散协作的应用使用 Atom 和 RSS feed 来作为条目共享的基础——也就是说,在两个或多个跨订阅的 feed 之间对新的和变更的条目异步地进行同步。

在这样的集成形式中,资源表示 - 通常指的是规范的数据模型,以feed 的方式暴露出来,并可以被端点用于提取同步(pull-synchronization)。如果加上端点可以是各种能够通过使用HTTP 的GET 语义来同步资源状态的设备,服务,应用程序等等这种思想,这种模式将会更加普遍适用。

查看英文原文: GET-only REST Integration Patterns Blur The Line Between Synchronization And Integration

2009-10-30 05:512281
用户头像

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

关注

评论

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

阿里云盘线下交流会

兔2🐰🍃

阿里云网盘 Teambition 线下体验

极客大学 - 架构师训练营第一期 - 第五周作业

Black Eyed Peter

极客大学架构师训练营

第5周作业

paul

5. Bean Validation声明式验证四大级别:字段、属性、容器元素、类

YourBatman

Hibernate-Validator Bean Validation 数据校验

第五周作业 (作业二)

Geek_83908e

极客大学架构师训练营

【架构师训练营 1 期】第五周作业

诺乐

间隔重排序链表Reorder List,iOS架构RxSwift, VIPER,MVVM,MVP, 机器学习,SageMaker,John 易筋 ARTS 打卡 Week 23

John(易筋)

学习 ARTS 打卡计划 重新排列链表算法 iOS 架构RxSwift SageMaker

非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue

程序员小航

Java 源码 并发 源码阅读 JUC

第五周作业

熊桂平

极客大学架构师训练营

架构师训练营第 1 期第 5 周作业

owl

极客大学架构师训练营

架构训练营 - 第5周课后作业 - 学习总结

Pudding

Go发起HTTP2.0请求流程分析(后篇)——标头压缩

Gopher指北

后端 HTTP2.0 Go 语言

作业-2020年10月25日

芝麻酱

一致性hash

袭望

SpringBoot整合原生OpenFegin的坑(非SpringCloud)

冰河

微服务 高并发 远程调用 springboot OpenFegin

Consistent Hashing算法实现 - JavaScript

架构师训练营 - 第 5 周课后作业(1 期)

Pudding

超越视觉支持语音新版OpenVINO发布,为更多智能边缘开发者赋能

E科讯

10月24日,“网安小酒馆”线上活动开启,有红包,更有名酒相送

Cloudaemon

架构师训练营第五周学习笔记

一马行千里

极客大学架构师训练营

架构一期第五周作业

Airs

架构师训练营Week01总结

第五周学习心得

熊桂平

极客大学架构师训练营

【架构师训练营 1 期】第五周学习总结

诺乐

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

xiaomao

week-5-part2 学习总结

陈龙

week-5-part1 java实现一致性 hash 算法

陈龙

Week 5 作业02

Croesus

万字长文深入理解java中的集合-附PDF下载

程序那些事

java编程 JAVA集合 java集合总结 java集合使用 java秘籍

5.5 负载均衡架构

orchid9

作业一:食堂就餐卡系统设计

伊灵

纯GET的REST集成模式——是同步,还是集成?_SOA_Dilip Krishnan_InfoQ精选文章