SuperMap iServer 聚合服务的结构主要由四个部分构成,如下图,包括服务提供者、服务聚合器和服务组件、以及服务接口。这四个层次相互作用,实现服务-聚合-新服务的聚合处理操作。根据 GIS 聚合内容,聚合操作又分为聚合地图(包括地图、GIS 功能)、聚合空间数据、聚合 GIS 高级分析功能。在 SuperMap iServer 聚合服务的服务组件、服务聚合器和服务提供者三个层次中,针对不同聚合操作(如聚合地图,聚合空间数据等)都分别提供对应的模块,如服务提供者包括各种地图服务提供者(WMSMapProvider、UGCMapProvider、UGCDataProvider 等),服务聚合器包括地图服务聚合提供者(AggregationMapProvider),空间数据服务聚合提供者(AggregationDataProvider),服务组件层包括数据服务组件,地图服务组件和分析服务组件等。这三个层次中模块相互作用的对应关系如下图所示:地图服务组件、地图服务聚合提供者以及地图提供者(如 WMSMapProvider、UGCMapProvider)之间形成相互调用的关系,他们遵循一致的接口,实现与地图操作相关的聚合服务;数据服务组件、数据服务聚合提供者以及数据提供者 (UGCDataProvider)之间存在相互调用关系,遵循一致的接口,实现空间数据管理相关的聚合服务。服务接口层提供的各类接口,如 REST Servlet,WMS Servlet 负责将各种类型的 GIS 服务以不同的通讯协议或者标准与客户端进行交互。
聚合提供者-服务聚合器
聚合提供者,SuperMap iServer 中也称之为服务聚合器。它根据客户端提交的 GIS 请求将服务提供者获取的 GIS 服务或者空间数据进行聚合处理。例如需要获取北京道路信息,利用地图聚合提供者(AggregationMapProvider)可以将 WMSMapProvider 提供的北京街道地图与 UGCMapProvider 提供的北京行政区划地图进行聚合处理。
根据聚合操作的类型,SuperMap iServer 分别提供了实现地图聚合操作的地图聚合提供者(AggregationMapProvider)、实现空间数据聚合操作的数据聚合提供者(AggregationDataProvider)。
类型 | 模块类名 | 功能 | 能够被聚合的服务提供者类型 |
地图聚合提供者 | com.supermap.services.providers.AggregationMapProvider |
用于执行与地图相关的聚合处理,包括 1)叠加相同地理范围的地图,如图片叠加。 2)地图参数的聚合处理,如地图参数的叠加。 3)对被聚合的地图服务进行地图的浏览、缩放等基础操作。 4)对被聚合的地图服务进行量算操作。 5)对被聚合的地图服务进行查询操作,实现查询结果的叠加处理。 |
|
空间数据聚合提供者 |
com.supermap.services.providers.AggregationDataProvider |
|
需要说明的是,除了 SuperMap iServer 提供的服务提供者能够被服务聚合器识别实现服务聚合外,SuperMap iServer 同样能够使用户自定义的服务提供者自动被服务聚合器识别,从而参与聚合过程。对于一些标准服务或者第三方服务,SuperMap iServer 并没有提供对应的服务提供者与之交互,用户可以通过领域服务扩展的方式自构该类服务的服务提供者,如用户自构用于与 GoogleMap 服务交互的服务提供者-GoogleMapProvider,将该服务提供者注册到 SuperMap iServer 服务器中,并进行聚合装配,服务聚合器就能够自动识别自定义的服务提供者,并将其加入聚合过程。
服务提供者
服务提供者主要负责按照发现远程的 GIS 服务,与之交互,读取 GIS 服务提供的空间数据和 GIS 功能。SuperMap iServer 提供的服务提供者如下:
类型 | 类名 | 作用 |
UGC 服务提供者 | com.supermap.services.providers.UGCMapProvider | 访问 SuperMap 类型的 GIS 数据,通过 SuperMap 的 GIS 处理内核处理地图服务功能,包括量算、放大、缩小、查询等。 |
WMS 服务提供者 | com.supermap.services.providers.WMSMapProvider | 访问指定的远程 WMS 服务,发送 GIS 请求并获取结果。 |
用户可以根据领域服务扩展的机制,自构领域服务提供者,以便实现与第三方 GIS 服务的交互。自构的领域服务提供者也可以通过聚合装配机制被服务聚合器识别,参与聚合过程。
服务组件
服务组件层分别提供地图服务组件(MapComponent)、数据服务组件(DataComponent)和分析服务组件(AnalystsComponent),这些组件对聚合进行各种策略的技术封装,包括安全策略、缓存策略等。
服务接口
服务组件在服务接口层进行发布,服务接口层决定了所支持发布的服务类型。目前 SuperMap iServer 提供了 REST Servlet,WMS Servlet,即可以发布 REST 风格的 GIS 服务,发布 WMS 服务。