BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

李锟谈Fielding博士REST论文中文版发布

| 作者 霍泰稳 关注 1 他的粉丝 发布于 2007年7月3日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

日前,Roy Thomas Fielding博士关于REST的论文Architectural Styles and the Design of Network-based Software Architectures中文版(《架构风格与基于网络的软件架构设计》)正式对外发布。在这个2000年所著的论文中,首次系统阐述了REST的架构风格和设计思想,对理解Web架构和HTTP、URI等标准背后的原理非常有帮助。InfoQ中文站编辑霍泰稳就此采访了主导此次公益性翻译的Ajaxcn.org网站站长李锟

Fielding博士是HTTP和URI等Web架构标准的主要设计者,也是Apache HTTP服务器的主要设计者,他的这篇论文是Web发展史上的一个重要的技术文献。深入理解REST等Web架构背后的工作原理,对于开发者设计和构建高效的Web应用,这也是李锟决定发起这个翻译项目的主要原因:

翻译这篇论文就是为了将REST的思想介绍到中国。我们翻译了《Ajax模式与最佳实践》,这是一本关于REST架构设计的非常好的书籍,内容非常深入。但是如果不懂REST,就难以理解这本书中介绍的架构。而这本书的作者对于REST的来龙去脉也语焉不详,似乎认为每个读者都已经读过了Fielding的论文,对于母语不是英语的中国读者而言,这个假设是不成立的。而Fielding的论文阅读的难度非常大,如果不翻译过来,普通的读者肯定无法读懂(这个判断是客观的,因为我们自己也是在初稿翻译出来后,又费了很大功夫才真正理解了这篇论文)。为了帮助这本书的读者,我启动了这个公益性的翻译项目。

翻译的过程也是一次学习的过程,在这篇论文的翻译过程中,李锟充分理解了REST的各种架构约束,例如通用接口、操作语义的可见性、支持大粒度的数据通信等等。也理解了HTTP和URI的正确的使用方式,因为HTTP和URI正是基于REST的思想设计出来的。所有HTTP的扩展或者使用HTTP的Web应用,都应该与REST的各种架构约束相匹配,否则肯定无法在Web上面取得成功。

在过去的7年中,Web技术的发展验证了本论文所主要阐述的REST技术的有效性,李锟举例说:

一个典型的反例就是SOAP,尽管它在企业应用中取得了一些成功,并且被某些人吹嘘的天花乱坠,但是在Web应用中,却几乎没有人愿意使用SOAP。我的判断是,主要的原因在于SOAP违反了REST的通用接口和语义可见性等架构约束。它仅仅是将HTTP作为一种传输协议来使用的,这种将HTTP仅仅作为一种能够穿越防火墙的传输协议来使用的扩展不只SOAP。

但李锟表示虽然理解REST对Web开发非常重要,这一技术在国内的应用现状却并不乐观:

REST应用目前在国内刚刚萌芽,还谈不上有什么应用。在REST的思想传入国内之前,国内绝大多数开发者并不理解HTTP和URI是用来做什么的,当然也包括我在内。

这篇论文由李锟和他的几个朋友共同翻译,如91yee翻译社区的负责人廖志刚、Matrix技术社区负责人刘丹和《重构与模式》的译者杨光等,由李锟负责全文的审校和润色。在这期间还得到了国内技术社区一些专家的支持,比如庄表伟、李琳骁、孟岩骆古道范凯、刘新生、刘江等。全程用时两个半月时间。

Update:

本论文于2013年被李锟重新翻译,新版经马国耀审校后于2014年发布于InfoQ中文站:查看新版论文译本

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

RE: by Shaucle Friszart

翻译的确很一般,不过还是比英文版好读多了.作者应该也辛苦了.


读完此文后,下面是一些个人理解: (还望多PP)

REST请求具有标准语义(通用的接口),这些语义能够被中间组件解释,主要在于其可见性.

Cookie允许数据在没有充分表明其语义的情况下进行传递,从而无法被中间组件管理或解释。
RPC式的SOAP也是.

REST将约束放置在连接器的语义上(标准),从而(最大化)实现组件的独立性和可伸缩性等.
而其他的架构风格则放置于组件的语义(非标准),而难以达到这些特性.

:) by Ang Gao

比较佩服这样的博士论文,真正是在把技术实现上升到模型和规则,再来服务于技术开发者

公益性的行为值得大力支持! by 刘江 图灵

反正英文和译文都是公开的,大家尽可以多多提出意见,共同使这个译文越来越完美。

可惜最近太忙了,不然真想从头到尾细校一次,用自己的出版背景,做点贡献。

Re: 公益性的行为值得大力支持! by 焦 tony

反正英文和译文都是公开的,大家尽可以多多提出意见,共同使这个译文越来越完美。

可惜最近太忙了,不然真想从头到尾细校一次,用自己的出版背景,做点贡献。


用出版背景能干啥?出个发行版?扯淡不是。前一句还可以说说,后面就不用了吧。

Re: 公益性的行为值得大力支持! by Xie Fengbo

出个单行本也未尝不可!
不过把http翻译成超文本转移协议就不太好接受了。不论从字面上意思表达上还是阅读习惯上我都觉得transfer翻译成传输会更好!
类似的技术术语翻译还是值得考究的。

反正英文和译文都是公开的,大家尽可以多多提出意见,共同使这个译文越来越完美。

可惜最近太忙了,不然真想从头到尾细校一次,用自己的出版背景,做点贡献。


用出版背景能干啥?出个发行版?扯淡不是。前一句还可以说说,后面就不用了吧。

Re: 公益性的行为值得大力支持! by Wang Deo

您这。。。人家论文中本来就说HTTP不是设计成的传输协议,而是设计成的转换协议,你还要这样翻译。。。。。。

Re: RE: by SN Russell

不知现在有无更好的翻译,你是否在认为一般的地方做了改进?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

7 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT