REST式面向资源架构

来源 :硅谷 | 被引量 : 0次 | 上传用户:tlling06990702
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2009)1010105-01
  
  万维网(World Wide Web)已经改变我们的生活方式,它不仅仅是一个超大的分布式应用它更是一个用于分布式计算的平台。Web服务、mashup(注1)及Aj锨应用都把web作为平台使用,而如今的Web服务却忽视了Web赖以成功的重要性——简单。本文通过用REST思想对已有的Web服务进行重构,thWeb服务回归“Web”理念。
  
  一、REST和面向资源架构
  
  REST(REpresentational State Transfer)表示性状态转移,并不是—种架构,它更像—种评判架构的方法。Roy Fielding(注2)的博士论文很好的诠释了这一点;面向资源架构(Resource-Oriented Architecture)(注3)正是把REST的最佳实践提炼出来,成为一种高层REST式架构。让我们轻易地构建优雅的、符合设计用途的、融/kWeb的分布式应用,而不是仅仅构筑在Web之上的。
  
  二、Web和Web服务
  
  Web的基础技术——HTTP应用协议,是一种基于文档的协议,被用来设计传输记录的。客户端请求GFr/hello.txt,服务器端相应Hello,world!就这么简单。你连接到服务器,把文档路径给它,然后服务器把文档内容返回给你。它被设计的那么简单,简单性转化成强大的能力。
  Web服务之间差别的形成,正是它们在两个问题上做法有所不同。第一个问题:客户端如何把自己的意图表达给服务器,称之为方法信息(met hod information)。第二个问题:客户端告诉服务器对哪些数据进行操作,称之为作用域信息(scoping information)。
  
  三、RPC式架构
  
  RPC式Web服务从客户端收到充满数据的信封,然后返回一个充满数据的信封。方法信息和作用域信息都放在信封或者报头里。
  XML-RPC是最典型的RPC架构,它只暴露一个URI(端点),并且该URI只支持一种HTTP方法-POST方法。而采用SOAP的web服务也属于RPC式架构,它只不过多了一层信封,这样的大Web服务,使得HTTP成为一种用于传输庞大XML负载的协议,而真正描述信息在XML里,最终使服务变得太过复杂。难于调试。
  
  四、REST式面向资源架构
  
  REST式架构意味,方法信息都放在HTTP方法里面,这是统一接口原则。面向资源架构意味,作用域信息都放在URI里面,这是可寻址性原则。两者结合起来是很强大的,通过HTTP请求的第一行就能基本了解客户端打算做什么。
  任何事物,只要有被引用的必要,它就是一个资源(Rosourse),比如一个文档,数据库中的一条记录,或者是运行某个算法的结果。面向对象的标准设计方法是把系统分解一个个名词,一个对象(Object)是(is)某个事物。在面向资源设计中,一个资源(Resource)是(is)某个事物。
  如果一个web服务将其数据集有价值的东西作为资源发布出来,那么该应用是具有可寻址性的(addressability)。资源必须至少有一个URI的,这就是资源的地址。URI应具有描述性,给人以直觉上的关联,并且还要具有一定的良好结构,以便客户端能够自己构造URI来访闯他们想访问的资源。对于REST式Wob服务来说,他们暴露的URIs有无数个,而对于RPc式Web服务而言,暴露URI很少(往往只有一个)。可寻址性是Web应用最大的优点,使客户端灵活使用网站。
  在REST式web服务里,有两种状态:资源状态和应用状态。资源状态是关于资源的信息,保存在服务器端,而且只能以表式(Representation)的形式发给客户端。应用状态,即关于客户端在应用中所处状态的信息,它被保存在客户端。客户端通过PUT或POST请求里附加一个表示来对资源状态进行处理,而服务器通过在响应客户端的GET请求时附上表示来处理应用状态这正是表示性状态——转移(Representational State Transfer,PEST)这个词的由来。
  客户端与资源之间的所有交互,都是通过为数不多的几个HTTP方法进行的。一个资源只暴露一个统一的接口(uniform interface),最多支持6种HTTP方法。统一接口的强大之处,并不在于它所暴露的具体方法,而在于它的统一性一大家用同样的方法来处理所有事物。
  统一接口意味着,在面向资源设计中也必须设计为资源。资源与资源之间的关系,也必须用资源来表示,如读者(Reader)订阅(subscribe)一个栏目(Column),读者和栏目都是资源,但订阅这个动作不属于统一接口的方法,必须通过一个叫做订阅(Subscription)对象连代表读者和栏目之间的关系。这种关系对象是符合统一接口的,可以被创建,获取,删除。
  
  五、REST式Web服务构建
  
  下面将介绍构建REST式面向资源架构Web服务的一般性步骤(注4);
  1 规划数据集
  2 把数据集划分为资源,对于其中每种资源
  3 用URI为该资源命名
  4,暴露一个统一接口的子集
  5 设计来自客户端的表示
  6 设计发给客户端的表示
  7 用超级链接和表单把该资源与已有资源联系起来
  8 考虑事件经过和可能出现的错误
  
  六、总结
  
  至此,REST让我们认识到Web简单的强大之处,Web服务领域就处在一条快速成为超级新秀的道路上。不过,它还没完全迷失方向。对HTTP的再度重视正在兴起,而且在REST的旗号下,HTTP显示出了取代那些大公司试图强加在人们头上的技术的相当实力;REST是一套简单的原则,开发者们可以根据这些原则按贴近web的方式来把应用连接起来。
其他文献
随着网络经济的发展,企业日益扩张,一种新的基于MPLS的VPN的互联方式成为现在的主流。MPLS VPN虚拟专网业务非常适合于实现企业跨区域内部互连和企业间互连的需求。但由于当前国内MPLS YPN的技术能力还不是非常成熟,升级、调测试或者其他原因造成的网络中断造成了MPLS VPN自身可用性的隐患,而很多能够使用这异地互联的企业对业务的连续性要求很高,一旦网络发生拥塞甚至中断就会对企业带来巨大损
期刊
[摘要]目前以计算机技术为核心的辅助教学已得到广泛使用,但学校计算机公共服务平台几乎都是以胖客户机模式存在,由此带来各种使用和管理上的问题。对此提出,将以“云”为支撑的云计算和云存储应用于计算机公共服务平台中,来解决以往必须安装过多软件,存储重复数据或存储不便等问题。  [关键词]云 云计算 云存储 计算机公共服务平台  中图分类号:TP3 文献标识码:A 文章编号:1671—7597(2009)
期刊
一、引言    随着互联网的迅猛发展,每天由网络产生的数据量越来越庞大。单机面对这些浩繁的数据,常常陷入“力不从心”的尴尬境地。而Hadoop是一个高效的,可靠的和可扩展的开源分布式计算平台,它对海量数据的处理能做到“游刃有余”。
期刊
[摘要]计算机病毒常让人们谈虎色变,实际上是不必要的,因为计算机病毒是可以通过在我们对计算机病毒的正确认识和积极防范中得到较好的避免的。  [关键词]计算机病毒 正确认识 流疫 防范  中图分类号:TP3 文献标识码:A 文章编号:1 671—7597(2009)1010101—01    随着信息时代的来临,计算机的使用在人们的日常生活中越来越普及,计算机的应用是科技进步的象征,是具有跨时代意义
期刊
[摘要]内存作为数字证据的重要来源,研究还处于起步阶段。在各操作系统下的内存取证工作首要解决的问题是定位内核对象的位置,才能根据查找到的对象进一步分析,获得用户打开的文件列表、建立的网络连接等。针对这一问题,提出内存中查找对象的方法。  [关键词]电子证据计算机犯罪 计算机取证分析 物理内存取证
期刊
在当前的互联网生活中,广大网民已经越来越离不开一位助手——搜索引擎。通过它,我们就仿佛有了一本百科全书,可以在浩瀚的因特网海洋中找到我们所需的知识。然而,并不是所有的检索都是那么一帆风顺,人们搜索过程中找到的并不一定都是自己想要的内容,通常情况下,或多或少地夹杂着一些无关的网页,而且其中的一部分甚至排在了页面链接列表的前端,这是用户不愿意看到的。解决问题的途径就是通过Web挖掘技术。本文将重点讨论
期刊
[摘要]动态链接库技术是实现和设计程序常用的技术。分析和比较Windows和Linax两种操作系统动态技术,为对动态链接库技术的学习提供有益的借鉴。  [关键词]动态链接库共享对象技术程序移植  中图分类号:TP3 文献标识码:A 文章编号:1 671—7597(2009)1010092—01    一、引言    动态链(Dynamic Link Library abbr,DLL)技术是程序设计
期刊
一、手机银行发展现状    现在手机在中国的普及度非常高,据权威机构的统计数据表明中国的手机用户数量到2010年将达到7.38亿,这样的用户群体是很庞大的。如今手机银行在国内还没有得到广大传统银行用户的认可,虽然几家大型国有银行都分别推出了自己的手机银行业务,但是因为种种原因并没有得到很好的发展。但是手机银行在国外已经发展了很长一段时间了,技术各方面都相对比较成熟了。本文将对手机银行的架构进行深入
期刊
企业管理的基础是职责的划分,而职责的划分离不开流程,如果没有完善的流程,员工的职责就无法得到真正的落实。企业中每个员工的工作都离不开流程的指引,但是随着企业规模越来越大,运营内容越来越多,流程的数量也是迅速增加。由于企业在流程管理方面的工作往往滞后于对运营工作本身的提升,所以流程内容互相重叠,版本管理混乱,流程定位错误等问题也逐渐浮现出来。具体应该用哪条流程,正确的流程到哪里才能找到,已经成为员工
期刊
一、引言    swing的主要优势在于MVC体系结构的普遍使用,在一个MVC用户界面中,存三个通讯对象:模型、视图和控件。模型是指定的逻辑表示法,视图是模型的可视化表示法,而控件则指定了如何处理用户输入。当模型发生改变时,它会通知所有依赖它的视图,视图使用控件指定其相应机制。
期刊