经典论文 — REST

标签: 经典 论文 rest | 发表时间:2011-05-27 20:09 | 作者:appleleaf ripwu
出处:http://www.kernelchina.org

旧文 2010-02-17

牛人Roy Thomas Fielding的博士论文,此处可以访问到英文版,中文版可以google一下. Roy何许人也?HTTP1.0,1.1版本以及URI规范的主要作者,Apache的co-founder。在写这篇论文之前已经很牛了,笔者不明白的是这种档次牛人还要读博士,文凭有这么重要吗? 文中没有任何令人眼花的数学公式和统计图表,实际上是一篇描述URI,HTTP设计经验教训总结的文章。 文章的全称是“Architectural Styles and the Design of Network-based Software Architectures”,但是由于文中Roy提出的软件架构Representational State Transfer (REST)被广为传颂,因此人们更多的是提到REST。

笔者仔细读过之后,发现Roy的博士论文有些取巧。原文是2000年写成的,当时HTTP已设计Over了,因此文章应该是总结性的,而非前瞻性的,文章总结了REST架构风格在HTTP和URI规范设计中的应用。对于Roy这样的一线开发者以及标准制定者来说,总结自己做过的事情应该是轻车熟路,估计几个月就搞定了一个博士学位。

我们现在看到的很多经典协议的RFC其实教育意义并不像实际地位那么重要,例如TCP协议的RFC,笔者看的晕头晕脑。因为多数RFC仅仅罗列协议该如何实现,对于背后的设计方法往往不会提及,读者看到的往往是一个不知道从哪里变出来的状态机,有的状态机复杂到无法用图形表示而只好列一个表格,读者无法获得深入的背景。其实这和弯曲的文章一样,讨论往往更精彩。这也是Roy这篇文档的价值所在,这篇文档是学习HTTP, URI等协议标准的很好的一个注脚。

REST这篇文章与其说是Network领域还不如说是软件工程领域。Roy首先介绍了软件架构风格的概念,笔者的理解是,软件架构风格就是软件运行某个阶段的架构快照,属于UML中所谓动态模型的一部分。当然笔者的软工属于业余水平,专业人士不要笑话。Roy首先使用大量的篇幅介绍了现有的几种典型的软件架构风格,接着从零开始,一步一步的告诉读者设计者是如何参照现有的架构风格建立一个REST风格的Web架构。

首先从一无所有的空风格开始:

image
然后这边加加,那边加加,变出来了这么一个东东:

image
这个东东就是作者独创的REST. 对于低手来说,系统分析怎么做无从下手,对于中手,套用积累的经验具体问题具体分析。对于Roy这种真正意义上的Architect,把系统架构这一看来非形式化的东东,以近似形式化的方式表达了出来,思路和目的很清晰,尤其重要的一图是5.1.8风格约束小结部分的总结,下图将REST是如何继承发展现有的架构风格清晰的描述了出来。

read more

相关 [经典 论文 rest] 推荐:

经典论文 — REST

- ripwu - kernelchina
牛人Roy Thomas Fielding的博士论文,此处可以访问到英文版,中文版可以google一下. HTTP1.0,1.1版本以及URI规范的主要作者,Apache的co-founder. 在写这篇论文之前已经很牛了,笔者不明白的是这种档次牛人还要读博士,文凭有这么重要吗. 文中没有任何令人眼花的数学公式和统计图表,实际上是一篇描述URI,HTTP设计经验教训总结的文章.

MongoDB REST Api介绍

- peigen - NoSQLFan
MongoDB默认会开启一个HTTP协议的端口提供REST的服务,这个端口是你Server端口加上1000,比如你的Server端口为27017,那么这个HTTP端口就是28017,默认的HTTP端口功能是有限的,你可以通过添加–rest参数启动更多功能. 下面是在这个端口通过其RESTFul 的API操作MongoDB数据的几个例子,来源是MongoDB官方文档.

WebSockets与REST之争?

- - 酷勤网-挖经验 [expanded by feedex.net]
WebSockets变得越来越流行并积累了不少用户. 去年年底,WebSockets成为了. W3C的推荐候选,这使得其向标准更迈进了一步. Oracle等其他厂商最近也提交了申请,来启动在Java企业版的下一个版本中引入WebSockets(. JSR 356)的标准流程工作. 绝大部分的主流浏览器,如Chrome、Firefox、Safari和IE,都支持某个WebSockets修正本,并最终会采用最后成形的标准.

REST 与 SOAP巅峰对话

- - CSDN博客互联网推荐文章
随着Restful的流行,soap似乎有点贵族落寞了. 下面我们先详细分析一下他们的各自的特点. REST(Representational State Transfer)是 Roy Fielding 提出的一个描述互联系统架构风格的名词. Web 本质上由各种各样的资源组成,资源由 URI 唯一标识.

为啥REST如此重要?

- - 博客园_知识库
  英文原文: Why REST is so important.   本文我们将讨论 REST,它定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的 Web 服务,这是一个非常容易让人误解的概念. 本文主要是写给那些想设计 WebService API 但却对 REST 没有十分清晰认识的开发者们.

REST服务开发实战

- - 互联网 - ITeye博客
本文转自http://kb.cnblogs.com/page/91827/.   如果要说什么是REST的话,那最好先从Web(万维网)说起. 读者可以查看维基百科的词条( http://zh.wikipedia.org/zh-cn/Web),具体的我就不多说了. 总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web.

REST API性能比较

- - Java - 编程语言 - ITeye博客
REST已然成为最流行的提供外界服务API的方式. 同时,随着互联网和物联网的普及,如今的应用需要处理大量并发的请求. 因此,开发高性能REST服务已经成为一个成功应用的必备条件. 我这里集中讨论Java和JVM相关技术. 基于Java的REST应用比基于python和ruby的应用往往具备更好的性能.

撰写合格的REST API

- - 博客园_知识库
  两周前因为公司一次裁人,好几个人的活都被按在了我头上,这其中的一大部分是一系列REST API,撰写者号称基本完成,我测试了一下,发现尽管从功能的角度来说,这些API实现了spec的显式要求,但是从实际使用的角度,欠缺的东西太多(各种各样的隐式需求). REST API是一个系统的backend和frontend(或者3rd party)打交道的通道,承前启后,有很多很多隐式需求,比如调用接口与RFC保持一致,API的内在和外在的安全性等等,并非提供几个endpoint,返回相应的json数据那么简单.

一些 REST 最佳实践

- - 鸟窝
原文: Some REST best practices, 作者: Pierre-Olivier Bourgeois. 译文: 一些REST最佳实践, 译者: yongx. 如今,REST APIs 已经非常普遍,几乎所有WEB应用都用到了它们. 提供简单,一致,实用的API是种义务,方便其它人很容易的使用.