SuperMap iServer REST 服务概述

发送反馈


REST - 表述性状态转移(Representational State Transfer)是 Roy Fielding 博士在2000年提出来的一种软件架构风格。采用 REST 架构风格的 Web 服务相比复杂的 SOAP 服务更加简洁、易用。为此,SuperMap iServer 专门为 GIS 的用户提供了 REST 风格的 GIS 服务。

REST 服务带来了什么?

REST 架构风格的 Web 服务逐渐被越来越多的人认可,更多的网站提供 REST 风格的 Web 服务,也有更多的开发者愿意使用 REST 服务来构建应用系统,究竟 REST 服务哪些特点吸引各种应用者的目光呢?

  1. 在 REST 服务中,所有的资源操作都是基于统一的方式进行的:
  2. REST 服务是无状态的,服务器不会保存任何与客户端的会话状态信息,因此从客户到服务器的每个请求都必须包含理解该请求所必需的所有信息,所有的状态信息只能放在双方沟通的 Message(消息)中。
  3. REST 服务具有幂等性,对于相同的请求,服务器返回的结果也是相同的,因此服务器端返回的结果是可以缓存的,可以利用缓存 Cache 来提高响应速度。缓存既可以存在客户端也可以存在代理服务器端。
  4. REST 服务具有分层结构。在 REST 服务的客户端与资源之间加入了 Proxy 层和 Gateway 层。在这些中间层可以加入一些业务处理以外的功能,譬如:负载均衡,安全控制等等。
  5. 让系统设计更简单。REST 风格的开发方式,会使系统结构更加清晰,而且容易维护。
  6. 相对于其他叠加在 HTTP 协议之上的机制,REST 服务对软件依赖性更小。

SuperMap iServer REST 服务特点

SuperMap iServer 将 REST 服务带来的诸多优势引入到 GIS 服务中,严格遵循 REST 设计准则,同时兼顾功能丰富、开发简单易用、操作灵活、平台扩展性强的原则,开发出专门针对 GIS 的 REST 服务,为 GIS 服务的需求者、GIS 服务的供应商、GIS 服务管理者提供更加简单、开放、灵活的解决方案。SuperMap iServer REST 服务特点如下:(以下各章节如不做特殊说明,所有 REST 服务均指 SuperMap iServer 提供的 REST 服务。)

        SuperMap iServer 的 REST 服务严格遵循 ROA(面向资源的架构)设计,GIS 的各种功能都以资源的形式进行发布,而且任何对资源的操作行为都是通过 HTTP 协议来实现,即 HTTP 把对一个资源的操作限制在4个方法以内:GET,POST,PUT 和 DELETE,这正是对资源 CRUD(Create,Retrieve,Update,Delete)操作的实现。SuperMap iServer REST 服务是一个真正 RESTful 的服务,它继承 REST 所有的优势,为使用者提供简单的操作方式。使用者了解 REST 服务的资源后,可以通过 REST 统一的操作方式对所有的资源进行操作。例如,SuperMap iServer 提供 map 资源表示一个地图,下面 URI 为 World Map 地图的资源地址:http://localhost:8090/iserver/services/map-world/rest/maps/World Map,通过 map 资源可以获得该地图的基本状态信息,如中心点,比例尺,地图范围,图片大小,地图单位,包含的图层,包含的图片等等。通过 PUT 方法可以对该地图资源执行修改地图信息的操作,如修改地图中心点,修改比例尺,修改图片大小等。

REST 服务与客户端是一个交互的过程,客户端提出请求,需要 REST 服务进行响应,客户端根据响应判断操作情况,以便后续的处理。为了方便客户端能够详尽的判断响应结果,SuperMap iServer REST 服务提供了丰富的响应码,将客户端到 REST 服务器这样的一个交互过程中,可能出现的问题映射到不同的响应码中,如401表示因为安全的原因,导致对资源的操作没有完成。客户端通过获取这些响应码,可以判断请求的操作是否成功,如果不成功问题出现在哪里。

SuperMap iServer 将所有 GIS 功能抽象为 REST 服务的资源,这些资源都具有相对独立性,通过通用的链接器接口对资源进行操作,这样保证各类 REST 服务都是解耦的,改善系统可重用性。

REST 服务作为独立应用程序发布,它可以被部署到各种中间件中,如 RESTlet 、中间件(Tomcat,WildFly,Weblogic 等)、Tuscany。同时 REST 服务可以不依赖任何中间件,直接通过 SuperMap iServer 发布。服务供应商可以根据自身特点灵活选择。

SuperMap iServer 不仅提供各类 GIS 功能的 REST 服务,还提供 SuperMap iServer REST SDK。开发商可以利用 REST SDK 对资源、安全、表述等进行扩展,SuperMap iServer 开放的 REST 服务结构允许向服务中加入自定义的资源、安全控制器,响应表述器等。

SuperMap iServer 提供可视化服务配置工具 – iServerManager,该工具提供服务配置向导,用户根据向导可以轻松实现对 GIS 服务的定制。利用该工具,可以创建、修改、删除 GIS 服务,集群服务,可以控制服务的启动与停止。

总的来说,REST 服务是一种以非常简单、轻量级的方式实现服务与客户端之间真正互操作,服务需求者可以很容易地掌握如何使用 REST 服务,并且在某种程度上,REST 风格的 GIS 服务简化了二次开发者构建应用系统的工作量。对于服务提供者来说,SuperMap iServer 提供简单、方便的创建和发布资源的方式,还提供灵活自由的服务扩展机制以及 REST 服务的 SDK,是服务提供者构建 Service GIS 服务的最佳选择之一。