论文部分内容阅读
随着计算机技术的不断发展及其深入应用,IT系统复杂性越来越受到重视。Web服务的出现一定程度上降低了这种复杂性。作为一种分布式应用,它常常用来解决异构平台互操作和企业应用集成问题。传统的web服务使用SOAP协议交换消息,不同的系统在交换消息前需要创建契约,契约是对交互过程的抽象。随着应用规模的扩大,这种风格的web服务的不足之处也暴露出来,比如系统臃肿,扩展性不高,复杂性大,性能低下等。为了解决这类问题,REST架构风格web服务被提了出来。REST (REpresentational State Transfer,表述性状态转移)由Roy Thomas Fielding于2000年在其博士论文中提出。它由一系列架构约束组成,旨在唤起人们对web技术的重新认识。REST架构web服务就是一种基于REST风格的面向资源的web服务。基于REST架构风格的web服务在一定范围内克服了传统web服务的缺点。它充分发挥HTTP协议的优势,以资源为中心,通过标准的方法接口操作所有的资源,并且将超媒体作为应用状态的引擎。作为一种轻量级的Web服务架构风格,它可以有效降低系统开发的复杂性并且提高整个系统的可伸缩性。随着支持REST架构开发工具的出现,REST架构的应用越来越多,许多由传统web服务技术实现的web服务都REST架构的web服务实现。但是对于什么是真正的REST架构web服务,以及如何设计REST架构的web服务业界还存在不少争议。随着对REST架构web服务的不断深入实践,相信它会越来越成熟,在未来的web服务技术中它必将占有一席之地。本文分析探讨REST架构的定义及其架构约束,并将REST架构和web服务相结合,分析了REST架构web服务的特点,对于REST架构web服务的设计,本文分析了REST架构web服务成熟度模型以及REST架构下的web服务的设计准则,在此基础上提出了基于状态转移的REST架构下的web服务的设计方法,并且根据此方法本文还结合流行的REST框架Django实现了一个REST架构下的web服务的原型系统,通过实验验证了它的可行性,论文在最后对比了REST架构web服务与传统web服务的不同之处,分析其各自优缺点,并推导出了各自的应用场景。