服务的 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是用于替代现行版本IP协议 (IPv4) 的下一代IP协议,相对于IPv4 ,IPv6具有地址容量更大,报头格式更简单,可提供有保障的个性化网络服务等优点。此外,IPv6保障了网络层端到端通信的完整性和机密性,安全性更强,基于此, SuperMap iServer 11i(2024) 支持 IPv6,为用户提供更加安全、方便有质量保障的服务 。
要使用IPv6格式的地址来访问服务首先需要在系统中配置IPv6协议,此处主要介绍如何在Windows和Linux环境下配置IPv6协议。
Windows环境下开启IPv6的方法较多,这里仅介绍Teredo隧道开启IPv6的操作步骤。
Windows Vista与Windows 7、Windows 2008、Windows 10等默认已经安装了IPv6协议,可跳过此步骤。Windows XP与Windows2003操作系统默认未安装IPv6协议,需手工进行安装,安装命令如下:
netsh interface ipv6 install
这个命令基本适用于所有Windows操作系统,此外还有一个命令仅适用于XP系统:
ipv6 install
安装完成后,控制面板 > 网络和共享中心 > 更改适配器设置 > 本地连接 > 属性,将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的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地址网关%
注意:当您的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。
表1 iServer各服务对IPv6的支持情况
功能类型 | 是否支持IPv6 |
地图服务 |
√ |
数据服务 |
√ |
几何服务 |
√ |
三维服务 |
√ |
数据流服务 |
√ |
流数据服务 |
- |
动态标绘服务 |
√ |
交通换乘服务 |
√ |
地址匹配服务 |
√ |
空间分析服务 |
√ |
交通网络分析服务 |
√ |
三维网络分析服务 |
√ |
数据目录服务 |
√ |
数据注册功能 |
√ |
分布式分析服务 |
- |
分布式切图服务 |
√ |
服务代理 |
√ |
缓存分发 |
√ |
转发服务 |
√ |
CAS单点登录 |
√ |
多进程 |
√ |
iServer集群 |
√ |
分布式计算集群 |
可以正常启动本机集群,但是若使用其他Spark集群,则无法识别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 |
√ |
|
Elasticsearch |
- |