论文部分内容阅读
Web服务从被提出发展到现在已经有十余年的时间了,它通常都是被用来解决不同平台之间相互关联的问题。传统Web服务的是基于RPC-style的,其实现在的技术主要包含SOAP、WS标准栈、UDDI等。RPC-style Web服务在相对封闭并且较小的应用环境中取得了一些成就,但是应用在分布、开放的Web环境中将会带来一些问题,比如说技术架构和接口复杂以及可伸展性差等。而且,Web在服务理论上应该是遵从Web理念的,但事实上并不是这样。Web其实是非常简单的,但是如今可以见到的大部分Web的服务都是复杂的;Web是基于资源的,然而Web服务并不将资源暴露出来;Web是基于URI与链接的,但是Web服务通常只暴露一个URI和零个链接;Web是基于HTTP的,而Web服务几乎不使用任何HTTP的特性。如今的大部分Web服务都与Web没有关联,它们要么重复要么忽略了支持Web成功的特性,可以说,大家忽略了Web作为分布式编程平台的潜力。本文研究的RESTful架构可以让Web服务回到Web本质上来。REST(Representational State Transfer,表述性状态转移)是Web背后的一套设计理念,用来指导在现代如何设计与开发Web架构。本课题在对REST理论和Web本质特征进行了研究的基础上,从几个角度对RPC-style Web服务和RESTful Web服务进行了比对,并引入面向资源架构(Resource-Oriented Architecture, ROA)来设计基于REST的Web服务,并且提出了基于REST的Web服务的设计准则和步骤,为本研究课题从理论研究上升到应用实践奠定了基础。本文的第三章在爱立信RCS项目的背景下设计并实现了一个基于REST的Web服务。这个服务利用了Web的特性,用面向资源的方法解决问题,设计了操作资源的统一接口,解决了不同客户端相互关联的问题,并没有像RPC-style Web服务那样,通过复杂的、编程语言式的接口来暴露它在内部的算法,这样的接口对于不同的服务各不相同。这个服务具有组件相互关联,可伸展性、接口通用性、组件独立部署等特征。并且,这个服务加强了对Web的基础技术的应用,即HTTP应用协议、URI标准命名规则和XML标记语言。本文的第四章,把本文设计的Web服务现在已有的RESTful Web服务在横向进行了对比,同已有的RPC-style Web服务在纵向做了对比,指出了不同Web服务的优点与确定。