专访开源项目Amoeba架构师陈思儒
DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。
作者 霍泰稳 发布于 2007年7月2日 下午9时26分
日前,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技术社区负责人刘丹和《重构与模式》的译者杨光等,由李锟负责全文的审校和润色。在这期间还得到了国内技术社区一些专家的支持,比如庄表伟、李琳骁、孟岩、骆古道、范凯、刘新生、刘江等。全程用时两个半月时间。
翻译的确很一般,不过还是比英文版好读多了.作者应该也辛苦了.
读完此文后,下面是一些个人理解: (还望多PP)
REST请求具有标准语义(通用的接口),这些语义能够被中间组件解释,主要在于其可见性.
Cookie允许数据在没有充分表明其语义的情况下进行传递,从而无法被中间组件管理或解释。
RPC式的SOAP也是.
REST将约束放置在连接器的语义上(标准),从而(最大化)实现组件的独立性和可伸缩性等.
而其他的架构风格则放置于组件的语义(非标准),而难以达到这些特性.
比较佩服这样的博士论文,真正是在把技术实现上升到模型和规则,再来服务于技术开发者
反正英文和译文都是公开的,大家尽可以多多提出意见,共同使这个译文越来越完美。
可惜最近太忙了,不然真想从头到尾细校一次,用自己的出版背景,做点贡献。
反正英文和译文都是公开的,大家尽可以多多提出意见,共同使这个译文越来越完美。
可惜最近太忙了,不然真想从头到尾细校一次,用自己的出版背景,做点贡献。
用出版背景能干啥?出个发行版?扯淡不是。前一句还可以说说,后面就不用了吧。
出个单行本也未尝不可!
不过把http翻译成超文本转移协议就不太好接受了。不论从字面上意思表达上还是阅读习惯上我都觉得transfer翻译成传输会更好!
类似的技术术语翻译还是值得考究的。反正英文和译文都是公开的,大家尽可以多多提出意见,共同使这个译文越来越完美。
可惜最近太忙了,不然真想从头到尾细校一次,用自己的出版背景,做点贡献。
用出版背景能干啥?出个发行版?扯淡不是。前一句还可以说说,后面就不用了吧。
DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。
作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。
Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。
Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。
本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。
JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
5 条回复
回复