服务的 URI

发送反馈


SuperMap iServer 服务器端是一个三层结构的体系,三层分别是:服务提供者、服务组件和服务接口。

SuperMap iServer 的首页为:http://<server>:<port>/iserver,http://<server>:<port>/iserver/services 可列出服务器当前发布的所有服务。服务完整的 URI 结构为:http://<server>:<port>/iserver/services/<servicecomponent>/<serviceinterface>,其中:

例如,服务器为本机(localhost),端口为8090,已设置服务组件 map-world 并绑定了服务接口 wms111、rest,那么两个服务的访问地址分别如下:

http://localhost:8090/iserver/services/map-world/wms111

http://localhost:8090/iserver/services/map-world/rest

基于IPv6的服务URI

IPv6是用于替代现行版本IP协议 (IPv4) 的下一代IP协议,相对于IPv4 ,IPv6具有地址容量更大,报头格式更简单,可提供有保障的个性化网络服务等优点。此外,IPv6保障了网络层端到端通信的完整性和机密性,安全性更强,基于此, SuperMap iServer 11i(2023) 支持 IPv6,为用户提供更加安全、方便有质量保障的服务 。

要使用IPv6格式的地址来访问服务首先需要在系统中配置IPv6协议,此处主要介绍如何在Windows和Linux环境下配置IPv6协议。

Windows环境下配置IPv6

Windows环境下开启IPv6的方法较多,这里仅介绍Teredo隧道开启IPv6的操作步骤。

安装IPv6协议

 Windows Vista与Windows 7、Windows 2008、Windows 10等默认已经安装了IPv6协议,可跳过此步骤。Windows XP与Windows2003操作系统默认未安装IPv6协议,需手工进行安装,安装命令如下:

netsh interface ipv6 install

这个命令基本适用于所有Windows操作系统,此外还有一个命令仅适用于XP系统:

ipv6 install

安装完成后,控制面板 > 网络和共享中心 > 更改适配器设置 > 本地连接 > 属性,将IPv6的勾选状态取消。

开启IPv6

在命令提示符窗口或 Windows PowerShell 输入以下命令来设置Teredo服务器:

netsh interface teredo set state enterpriseclient server=default

测试IPv6链接:

ping -6 ipv6.test-ipv6.com

ping -6 [2001:470:1:18::125]

重置IPv6配置

netsh interface ipv6 reset

然后重启系统,在命令提示符窗口输入以下命令:

netsh interface ipv6 show address

若已分配到2001::开头的IPv6地址,则表明已分配到IPv6地址。如仅有fe80::的地址代表已经接入IPv6网络,本地网络并却未开通IPv6服务。

若以上方法不成功可能是Windows配置不正确,或是 Teredo 服务器无法正常连接,具体解决方法请参考各类教程。

Linux环境下配置IPv6

以Linux的centos系统为例,介绍如何配置IPv6。

使用以下命令来确认是否已开启IPv6

ifconfig

若未开启则修改/etc/sysctl.conf文件,在文件中将如下内容修改或者增加为“0”,然后执行 sysctl -p 命令,启用IPv6。

net.ipv6.conf.all.disable_ipv6 = 0

net.ipv6.conf.default.disable_ipv6 = 0

net.ipv6.conf.lo.disable_ipv6 = 0

将/etc/modprobe.d/disable_ipv6.conf配置文件中的如下信息改成“0”。

options ipv6 disable=0

将/etc/sysconfig/network文件中的如下信息改成“yes”

NETWORKING_IPV6=YES

然后重启:

service network restart

至此,设备就开启了IPv6。

配置IPv6地址

IPV6ADDR=2001:da8:8003:202:120:1:1         % IPv6地址%

IPV6DEFAULTGW=2001:da8:8003:801::1       %IPv6地址网关%

通过IPv6地址访问iServer服务

注意:当您的Windows/Linux系统中存在多个IPv6地址,或是您在Linux系统中使用隧道适配器的方式来配置IPv6时,为了保证IP读取的正确性,建议您在%SuperMap iServer_HOME%/bin/catalina文件(Windows为catalina.bat,Linux为catalina.sh) 中,设置JAVA_OPTS的-Diserver_ip为期望的IP,例如:

JAVA_OPTS="-Diserver_ip='fe80::c069:a23d:57e6:61ef'"

设置后catalina.bat文件如下:

catalina.sh如下:

配置完成后开启IPv6,关闭IPv4,即可通过IPv6地址访问iServer服务。但要注意,与IPv4不同的是IPv6的登陆地址为http://[IPv6]:<port>/iserver,其中IPv6的地址外需加上“[ ]”,如下图。

至此即可通过IPv6协议的地址去访问服务。常规的GIS功能,如服务发布,服务代理,多进程,集群等均支持IPv6,且使用方法与IPv4协议下一致,具体支持情况如下表所示。注意:若要从客户端访问IPv6格式的iServer服务,则客户端也需要配置IPv6。

iServer各服务对IPV6的支持情况

表1 iServer各服务对IPv6的支持情况

功能类型 是否支持IPv6

地图服务

数据服务

几何服务

三维服务

数据流服务

流数据服务

-

动态标绘服务

交通换乘服务

地址匹配服务

空间分析服务

交通网络分析服务

三维网络分析服务

数据目录服务

数据注册功能

分布式分析服务

-

分布式切图服务

服务代理

缓存分发

转发服务

CAS单点登录

多进程

iServer集群

分布式计算集群

可以正常启动本机集群,但是若使用其他Spark集群,则无法识别IPv6

不同数据源对IPV6的支持情况

iServer也可通过IPv6协议将常用的数据源发布为服务,不同数据源对IPv6的支持情况如下表所示:

表2不同数据源对IPv6的支持情况

数据源 详细 是否支持IPv6

Shapefile文件目录

 

第三方在线地图

 

地图缓存

MongoDB存储的瓦片

UGCV5瓦片

UGCV5(MVT)瓦片

阿里云OTS瓦片

FastDFS瓦片

SMTiles

SVTiles

MbTiles

GeoPackage文件

ZXY瓦片

ArcGIS缓存

数据库

PostGIS

PostgreSQL

Oracle

MySQL

SQLServer

HBase

Elasticsearch

-