Configuration for service aggregation

Feedback


SuperMap iServer service aggregation is to aggregate different types and sources of services to SuperMap iServer system through standardized process, and publishes the services to GIS client in the unified way.

SuperMap iServer can aggregate different sources of maps to one map that can be presented on client. For example, you can aggregate WorldMap from World.sxwu workspace and PopulationMap from Jingjin.sxwu workspace to one map "aggMap" that covers all the contents of WorldMap and PopulationMap. The client can get all map functions through using aggMap without understanding the implementation details on server. SuperMap iServer can aggregate a variety of services of different types. For example, SuperMap iServer can aggregate "ChinaMap" from WMS service to aggMap, making aggMap cover all contents of WorldMap, PopulationMap, and ChinaMap.

SuperMap iServer service aggregation is implemented on service provider layer, an the service aggregation is configured by service provider. SuperMap iServer provides aggregation service provider (AggregationMapProvider etc.) to implement service aggregation.

Basic process

The basic operational process of service aggregation is as follows:

  1. Make sure all the coordinates of the service providers to be aggregated are consistent
  2. Create an aggregation service provider (aggregator)
  3. Create a GIS service component
  4. Associate the interface, the aggregation service uses which to publish service, such as REST

1. Aggregating map services

SuperMap iServer provides AggregationMapProvider to implement map function aggregation, that is, aggregating a variety of maps to offer complete map functions. Maps of different types and different sources can be organized as map service providers on service provider layer. AggregationMapProvider supports aggregating TiandituMapProvider. For more information about map service provided by SuperMap iServer, please refer to Refer to Service Providers.

AggregationMapProvider can be configured through iServer Manager or configuration file.

Configuring through iServer WebManager

Open iServer WebManager, click Add Service Provider on Service Providers tab, shown as below:

In the pop-up dialog box, select the Aggregation Map Provider type, select the service providers that you want to aggregate (this dialog box will automatically list map service providers for you to choose), and type the aggregation map name, aggregation name, aggregated maps, etc. Click OK, and you will get an aggregated map service provider.

Note: the order of map aggregation is consistent with the order of "Selected service providers". The effect is that the World map is on the top and the Jingjin map is displayed below. If the map name is wrong, the output map will the first map in the list of maps published by the corresponding provider.

Configuring through configuration file

iServer adds aggregation service provider by modifying iserver-services.xml. See Service config file structure.

In the configuration file (iserver-services-samples.xml), you need to add a child node <provider> under the node <providers> if you want to add a service provider. An example for aggregating an AggregationMapProvider is shown as follows:

<!-- Note that the port number of the access path of the cache images must be fixed instead of {port} when you configure your Provider and MapImpl in the use of map aggregation service provider. -->
<provider name="jingjinworld" inner-providernames="ugcMapProvider-Jingjin,ugcMapProvider-World" class="com.supermap.services.providers.AggregationMapProvider">
        <config class="com.supermap.services.providers.AggregationMapProviderSetting">
                        <outputpath>../webapps/output</outputpath>
                        <outputsite>http://localhost:8090/output/</outputsite>
                        <name>jingjinworld</name>
                        <targetname>jingjinworld</targetname>
                        <mapNames>
                                <String>Jingjin</String>
                                <String>WorldMap_Night</String>
                        </mapNames>
        </config>
</provider>

In the node <provider>, inner-providerNames attribute is the configured service provider name that you want to aggregate in the services.xml, separated by "," if it is more than one name. The class attribute is the implementation class of the aggregation service provider, namely AggregationMapProvider. The configuration class that the aggregation service provider corresponds to is AggregationMapProviderSetting. The configuration items are shown as follows:

<outputPath>: the path of output images.

<outputSite>: Image root directory URI.

<name>: Configuration Name of Aggregation Service Provider.

<targetName>: Map name after aggregation. Here is jingjinworld.

<mapNames>:Name list of maps in the Aggregation. Here is jingjinworld and WorldMap_Nigh.

Note: When configure through configuration file in the inner-providernames parameter, the map that corresponds to the previous provider is on the top and the effect is that the jingjinworld map is on the top and the WorldMap_Night is below. If the map name is wrong, the output map is the first map in the map list published by the corresponding provider.

 

The map component can use aggregation map service providers to publish map services.

2. Aggegating data services

SuperMap iServer offers AggregationDataProvider to implement data aggregation, that is, aggregating different data sources. For more information about the data service providers offered by SuperMap iServer, see Service Providers.

AggregationDataProvider can be configured through iServer Manager and configuration file.

Configuring through iServer WebManager

Open iServer WebManager, and click Add service provider on the Service Providers tab. It is shown as follows:

In the pop-up dialog box, select the Aggregation Data Provider type, select the service providers that you want to aggregate (this dialog box will automatically list map service providers for you to choose), and type the name of the data source after aggregation, and the description of the data source. Click OK, and you will get an aggregated data service provider.

Configuring through configuration file

iServer adds aggregation service provider by modifying iserver-services-user.xml. See Service Config File Structure.

In the configuration file (iserver-services-samples.xml), you need to add a child node <provider> under the node <providers> if you want to add a service provider. An example for aggregating an AggregationDataProvider is shown as follows:

<provider name="aggDataProvider" inner-providerNames="ugcDataProvider-World,ugcDataProvider-Changchun"
                                class="com.supermap.services.providers.AggregationDataProvider">
        <config class="com.supermap.services.providers.AggregationDataProviderSetting">
                        <name>aggData</name>
                        <description></description>
        </config>
</provider>

In the node , inner-providerNames attribute is the configured service provider name that you want to aggregate in the services.xml, separated by "," if it is more than one name. The class attribute is the implementation class of the aggregation service provider, namely AggregationDataProvider. The configuration class that the aggregation service provider corresponds to is AggregationDataProviderSetting. The configuration items are shown as follows:

<name>: Configuration Name of Aggregation Service Provider.

<description>: Data source description after aggregation, optional.