SuperMap iServer 的服务聚合器(AggregationMapProvider、AggregationDataProvider 等)是属于 Provider 的一种类型,这类 Provider 专门负责提供聚合服务。通过这类服务聚合器将聚合服务的内部实现进行屏蔽,利用 SuperMap iServer 依赖注入的服务管理方式对服务聚合进行装配管理,即服务聚合的装配管理方式与其他类型的服务提供者的服务配置方式完全相同,聚合服务的管理者只需要在 SuperMap iServer 服务配置文件中对服务聚合器(AggregationMapProvider、AggregationDataProvider 等)以及配套的聚合配置信息类(如 AggregationMapProviderSetting、AggregationDataProviderSetting)进行配置,聚合服务器就可以实现对服务聚合内容的操控,以满足业务聚合的需求。具体装配机制如下:

SuperMap iServer 聚合服务提供者调用服务提供者上下文,从而访问配置文件的聚合服务元数据列表,获取聚合服务配置信息(AggregationMapProviderSetting、AggregationDataProviderSetting),并基于此自动发现被聚合的服务,将其作为“数据源”通过聚合服务器加入 iServer 服务,进行聚合分析。

 

因此服务聚合的装配管理为 SuperMap iServer 的聚合服务提供输入、输出、聚合过程的描述信息,指导 SuperMap iServer 聚合服务实施聚合操作。

目前 SuperMap iServer 提供的地图服务聚合器(AggregationMapProvider)以及配套的聚合配置信息类(AggregationMapProviderSetting)的装配信息如下:

类型

装配信息

AggregationMapProvider

innerProvider:待聚合的地图提供者名称

name:该聚合服务器的名称

AggregationMapProviderSetting

targetName:聚合后地图名称

name:该配置实例的名称

serviceInfos:服务端点信息列表。其中服务端点信息主要包括如下内容:

type:服务的端点类型,其中规定,UGCMapProvider 的服务端点类型为“UGC”,WMSMapProvider 的服务端点类型为“WMS”

binding:服务绑定信息。对于 UGCMapProvider 服务,binding 的信息内容格式如下:“mapName=XXX;outputPath=XXX;putputSite=XXX”

address:服务绑定地址。其中对于 UGCMapProvider 服务,需要设置 SuperMap 的工作空间路径,如“data\\world.sxw”(相对 java 的路径);WMSMapProvider 服务需要设置 WMS 服务的地址。

聚合服务管理者只需要对上述聚合服务器以及配置管理类的相关属性进行配置,SuperMap iServer 的聚合服务器就会按照管理者的要求进行聚合操作。

AggregationMapProviderSetting 是 SuperMap iServer 根据已有服务提供者的地图服务类型专门设计的聚合配置信息类,如要聚合 UGCMapProvider 和 WMSMapProvider,就可以配置 AggregationMapProviderSetting,如果用户希望聚合服务器能够聚合第三方外来服务,可以根据第三方服务的特点做聚合服务器和聚合配置信息类的扩展。聚合服务器以及聚合配置信息类的扩展方法与 SuperMap iServer 的领域服务扩展方法相同,具体请参考领域服务扩展的介绍。

对于聚合服务的管理者,可以直接通过 SuperMap iServer 的配置文件对聚合服务的服务端点等信息进行配置,还可以通过 SuperMap iServer 的服务管理器在可视化的工作界面对聚合服务进行配置。