论文部分内容阅读
Web服务从诞生到现在已有十余年历史,人们用它来解决不同平台之间的互操作问题。传统的Web服务的是基于RPC风格的,其实现技术主要包含SOAP、WS标准栈、UDDI等。RPC风格的Web服务在相对封闭、小的应用环境中取得了较大成功,但用在Web这个分布的、开放的环境中将带来一些问题,如技术架构复杂、接口复杂和可伸缩性差等。而且,Web服务理应是遵从Web理念的,但事实不是这样。Web是简单的,而如今的大部分Web服务是复杂的;Web是基于资源的,但Web服务并不暴露资源;Web是基于URI与链接的,但Web服务一般只暴露一个URI和零个链接;Web是基于HTTP的,而Web服务几乎不使用HTTP的任何特性。如今的大部分Web服务都与Web毫无干系,它们重复或者忽略了Web赖以成功的每一种特性,可以说,Web作为分布式编程平台的潜力被忽视了。本文研究的REST式架构风格足以让Web服务回归到Web的理念上来。REST(Representational State Transfer,表述性状态转移)是Web背后的一套设计原则,用来指导现代Web架构的设计和开发。本课题在研究REST理论和Web本质特征的基础上,从几个方面比较了RPC风格的Web服务和REST风格的Web服务,并引入面向资源的架构(Resource-Oriented Architecture,ROA)来设计REST式Web服务,并提出了REST式Web服务的应用设计准则和步骤,为本课题从理论研究上升到应用实践打下了基础。本文的第三章和第四章,设计和实现了一个基于REST风格的社会化网络服务(Social Networking Services)。它利用Web特性,从面向资源的角度看待问题,设计操作资源的统一接口,解决不同的客户端的互操作问题,而不是像RPC风格的Web服务那样,通过复杂的、编程语言式的接口来暴露其内部算法,这种接口,不同的服务都不相同。这个服务具有组件交互的可伸缩性、接口的通用性、组件的独立部署等特征。同时,此服务强调和利用了Web的基础技术,即HTTP应用协议、URI命名标准和XML标记语言。本文的第五章,把此社会化网络服务同当前已有的REST风格的Web服务做了横向对比,跟已有的RPC风格的Web服务做了纵向对比,指出了各自的优缺点。