架构风格与基于网络的软件架构设计

来源地址: http://www.redsaga.com/opendoc/REST_cn.pdf

架构风格与基于网络的软件架构设计
Architectural Styles and the Design of Network-based Software Architectures
作者:Roy Thomas Fielding
信息与计算机科学博士
加州大学欧文分校,2000年
博士论文答辩委员会主席:Richard N. Taylor教授

万维网(World Wide Web)的成功,很大程度上是因为其软件架构的设计满足了Internet规模(Internet-scale)的分布式超媒体系统的需求。在过去的10年间,通过对定义Web架构的标准所做的一系列修改,Web以迭代的方式不断地发展着。为了识别出Web需要改善的那些方面,并且避免对其进行不想要的修改,必需要有一种现代Web架构的模型,用来指导Web的设计、定义和部署。
软件架构的研究探索了如何以最佳的方式划分一个系统、如何标识组件、组件之间如何
通信、信息如何沟通、系统的元素如何能够独立地进化,以及上述的所有东西如何能够使用形式化的和非形式化的符号加以描述。我的工作的动机是希望理解和评估基于网络的应用的架构设计,通过有原则地使用架构约束,从而从架构中获得所希望的功能、性能和社会学几方面的属性。一种架构风格是一组已命名的、协作的架构约束。
这篇论文定义了一个框架,致力于通过架构风格来理解软件架构,并且展示如何使用风
格来指导基于网络的应用的架构设计。本文使用了一个对基于网络的应用的架构风格的调查,根据不同的风格在分布式超媒体的架构中所导致的架构属性,来对这些风格进行分类。然后我介绍了表述性状态转移(Representational State Transfer,REST)的架构风格,并且描述了如何使用REST来指导现代Web架构的设计和开发。
REST强调组件交互的可伸缩性、接口的通用性、组件的独立部署、以及用来减少交互
延迟、增强安全性、封装遗留系统的中间组件(intermediary components)。我描述了指导REST的软件工程原则和选择用来支持这些原则的交互约束,并将它们与其他架构风格的约束进行了对比。最后,我描述了从在超文本转移协议(HTTP)和统一资源标识符(URI)的标准中应用REST,以及从这两个标准在Web客户端和服务器软件的后续部署等过程中学到的经验教训。

英文原版地址: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
上面给出的内容是中译版本