火龙果软件-深入浅出Restful架构_第1页
火龙果软件-深入浅出Restful架构_第2页
火龙果软件-深入浅出Restful架构_第3页
火龙果软件-深入浅出Restful架构_第4页
火龙果软件-深入浅出Restful架构_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、深入浅出REST内容概要RESTful 服务介绍服务介绍设计面向资源的服务设计面向资源的服务Web服务架构简介及分类服务架构简介及分类ArcGIS Server 10的的REST式架构式架构问题: REST是什么?它代表什么含义?试图解决什么问题?是什么?它代表什么含义?试图解决什么问题? RESTful架构有那些关键的设计原则?架构有那些关键的设计原则? 符合符合RESTful架构的软件有那些优点?架构的软件有那些优点? 日常工作中发现的日常工作中发现的REST式架构的服务有哪些?式架构的服务有哪些? 怎样构架一个怎样构架一个RESTful架构的网络应用软件?架构的网络应用软件? RESTf

2、ul WebServices与其他与其他WebServices(RPC)设计设计有何不同?有何不同? 怎样理解怎样理解ArcGIS的双重软件架构风格?的双重软件架构风格?REST究竟是何物? REST(Representational State Transfer):表示性状态转表示性状态转移,分布式超媒体软件的一种架构风格移,分布式超媒体软件的一种架构风格-源自源自2000年年Roy Thomas Fielding的博士论文。的博士论文。 一套简单的设计原则、一种架构风格一套简单的设计原则、一种架构风格(或模式或模式),不是一种,不是一种具体的标准或架构。具体的标准或架构。 基于使用基于使用

3、HTTP、URI等现有的广泛流行的协议和标准,等现有的广泛流行的协议和标准,并由几个核心抽象概念支撑。并由几个核心抽象概念支撑。 对对Web的本质回归:一种真实描述的本质回归:一种真实描述Web的方式,不被特的方式,不被特定时期的特定应用程序概念歪曲。定时期的特定应用程序概念歪曲。 提供区分良好实践和糟糕实践的途径:判断特定实践是否提供区分良好实践和糟糕实践的途径:判断特定实践是否与与Web架构一致。架构一致。 REST目的:寻找目的:寻找Web特性,然后使用这些特性来指导特性,然后使用这些特性来指导Web设计设计Fielding博士的论文摘要 回顾Web Web1.0的误区:对大多数用户而言

4、,的误区:对大多数用户而言,Web不过是一个只不过是一个只读文件仓库!读文件仓库! Web2.0颠覆用户错误观念:颠覆用户错误观念:Web不再是简单的文档仓库不再是简单的文档仓库!Web是双向的!是双向的! 重新审视重新审视Web作为全球信息空间的概念,作为全球信息空间的概念, Web2.0更加丰更加丰富的含义:富的含义:“Web数据数据”和和“平台化的平台化的Web”。 网站就是网站就是Web服务,服务,Web作为分布式编程平台具备极大作为分布式编程平台具备极大的潜力(以前的潜力(以前web服务的分类服务的分类:programmable web ,human web),一个既可以为人也可以为

5、计算机程序使用一个既可以为人也可以为计算机程序使用的网路的网路Web1.0到Web2.0的转变HTTP信封里的文档 HTTP协议的形象理解:协议的形象理解: 信封格式有严格标准,不关心里面内容信封格式有严格标准,不关心里面内容请求响应URI简介 URI(Uniform Resource Identifier):通用资源标识符,:通用资源标识符,它被设计充当可用位置和持久名称。它被设计充当可用位置和持久名称。 语法规则:大致指向一个层次空间,协议是树根,从左往语法规则:大致指向一个层次空间,协议是树根,从左往右每部分是前部分的分支。右每部分是前部分的分支。例:例:http:/ /site/pag

6、e ? name=zdp # photo方案方案 域名域名 路径路径 查询查询 片段片段 路径:并非一定要采用层次结构,可根据应用程序模型定路径:并非一定要采用层次结构,可根据应用程序模型定制路径结构。制路径结构。 URI规范规范(RFC 2396)指出:指出:“资源可以是任何有标示的东西资源可以是任何有标示的东西”。“并非所有的资源都是通过网络能够获取的并非所有的资源都是通过网络能够获取的”。 任何事物,只要有被引用的必要,就是一个资源任何事物,只要有被引用的必要,就是一个资源(resource)。它可以是一个实物,也可以是一个抽象的概念。它可以是一个实物,也可以是一个抽象的概念。 通常一个

7、资源是某个可以存放在计算机上并体现为比特流的通常一个资源是某个可以存放在计算机上并体现为比特流的事物。在事物。在Web中,可以这样认为中,可以这样认为资源是资源是URI标示的东西标示的东西。资源表示 资源和表示不是一码事。资源和表示不是一码事。Web上获取的不是资源,而是资上获取的不是资源,而是资源的表示。源的表示。 对于给定的资源,可以有很多不同的表示。对于给定的资源,可以有很多不同的表示。HTMLXMLFLASHTEXTURI标示符状态 首先要理解资源状态和应用状态首先要理解资源状态和应用状态 在客户在客户-服务端模式下,让客户端维护应用状态,并确保服务端模式下,让客户端维护应用状态,并确

8、保客户端向服务器发出的请求都包含理解请求所需的全部信客户端向服务器发出的请求都包含理解请求所需的全部信息,而服务器不应该维护该状态。息,而服务器不应该维护该状态。 REST式解决方案是使用式解决方案是使用URI。每个概念上独立的资源都。每个概念上独立的资源都可使用单个可使用单个URI,不希望通过,不希望通过Cookie或隐藏在有效负载的或隐藏在有效负载的参数来提供额外信息。参数来提供额外信息。REST式服务的关键设计原则 网络上的所有事物都被抽象为资源网络上的所有事物都被抽象为资源 每个资源对应一个唯一的资源标识每个资源对应一个唯一的资源标识URI 通过通过HTTP协议方法作连接器对资源进行操

9、作协议方法作连接器对资源进行操作 对资源的任何操作不改变资源标识对资源的任何操作不改变资源标识URI 所有的服务器操作都是无状态的所有的服务器操作都是无状态的违背REST有什么恶果u 服务端必须维持状态服务端必须维持状态 难以对难以对URI进行缓存进行缓存 应用部署难以水平扩展应用部署难以水平扩展(Session) 存在安全隐患存在安全隐患uURI难以持久化(变更难以持久化(变更URI) 暴露技术实现且易变更暴露技术实现且易变更URI 代码方法入侵代码方法入侵URI 不利于搜索引擎不利于搜索引擎REST架构的过程视图ROA的定义 ROA(Resource-Oriented Architectu

10、re) REST不是一种架构,而是一种设计原则(或者是一种约不是一种架构,而是一种设计原则(或者是一种约束)而束)而ROA应该是一种具体的应该是一种具体的REST架构架构 ROA是一种把实际问题转换成是一种把实际问题转换成REST式式Web服务的方法服务的方法ROA的功能成分 资源资源 资源名称资源名称 资源的表示资源的表示 资源间的链接资源间的链接ROA四个属性(特征标志) 可寻址性可寻址性 无状态性无状态性 连通性连通性 统一接口统一接口设计REST式服务的一般步骤规划数据集规划数据集把数据集划分为把数据集划分为资源资源对于其中的每种对于其中的每种资源,用资源,用URI为为该资源命名该资源

11、命名暴漏一个统一接暴漏一个统一接口的子集口的子集设计来自客户端设计来自客户端的表示的表示设计发给客户端设计发给客户端的表示的表示用超链接和表单用超链接和表单把该资源和已有把该资源和已有资源联系起来资源联系起来考虑有哪些典型考虑有哪些典型的事件经过的事件经过考虑可能出现哪考虑可能出现哪些错误些错误http:/host:port/arcgis/rest/services/XX/mapservices/road Web服务架构分类相互竞争的Web服务架构 REST式面向资源的架构式面向资源的架构 具备具备Web特征的服务:静态网站、许多未采用特征的服务:静态网站、许多未采用SOAP的只读的只读Web

12、服务、许多只读型服务、许多只读型Web应用等应用等 RPC式架构式架构 所有采用所有采用XML-RPC遗留协议的服务,几乎所有的遗留协议的服务,几乎所有的SOAP服务服务 REST-RPC混合架构混合架构 大部分大部分Web应用,大量采用应用,大量采用MVC模式的模式的Web应用应用.(Flicker网站网站)区别 方法信息方法信息:REST式风格把方法信息放在式风格把方法信息放在HTTP方法里,而方法里,而其他其他Web Services架构把方法信息放到架构把方法信息放到URI或报头里。或报头里。 作用域信息:面向资源的架构把作用域信息放到作用域信息:面向资源的架构把作用域信息放到URI里

13、,里,而其他的而其他的 Web Services把作用域信息放到了实体主体中把作用域信息放到了实体主体中。SOAP-RPC例子REST-RPC的例子 GET services/rest?api_key=xxx&method=flickr.photos.search&tags=penguin HTTP/1.1 Host: services/rest/penguin大Web服务试图解决哪些问题 SOAP WSDL UDDI 安全性安全性 事务事务 常见的Web服务著名的著名的Amazon S3 (Simple Storage Service) http:/ Gdata API 提供提供Atom发布

14、协议的变型的服务发布协议的变型的服务http:/ Server产品产品(Web应用的一种应用的一种)所有的所有的SOAP服务服务采用采用XML-RPC的服务的服务del.icio.us APIFlickr Web APIREST服务框架(Restlet)DEMOArcGIS Server 10的Rest式架构ArcGIS Server软件架构ArcGIS 客户端 API Js API Flex API SL API iPhoneArcGIS Server 10新特性 编辑(编辑(FeatureServiceFeatureLayer) 时态图层时态图层(Timer-aware layers) AMF(更加快速的传送方式更加快速的传送方式) Bing Maps Geometry Service Mapping Enhancements(relationShips,identify,find for layerdefinitions) Network Analyst updates(Closest Facility,Service Area相对应的相对应的Task) Geocode updates(supports outSpatialReference)DEMOh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论