Relationships between layers

Feedback


SuperMap iServer organizes and manages the modules of the three-layer structural service with dependency injection and cofiguration file to support service extension of SuperMap iServer services at any level , and publish GIS services based on network, protocols, and GIS features implementation.

Each level realizes communication contract through interfaces

SuperMap iServer three-layer modules implements communication contracts through interfaces. For the interfaces cannot be changed easily, the code changed in one layer will not affect the other layers' features. GIS services will normally provide GIS features as long as the component features of interfaces are implemented correctly. This will minimize the impact on layers, and provide a good framework for users to customize component extension.

Modules on layers dynamically implement dependency injection to lower module through configuration file

The service provider module as well as service components and service interfaces have loosen coupled relationship; the binding relationship doesn't exist between component and server provider, and also no binding relationship between interface and component. The relations among the three are determined by the description of configuration file to the three relations. When SuperMap iServer server is running, it will organize the three relations according to dependency injection to form a suite of GIS service.

You have to know concepts below before understanding the interaction relations of layers in SuperMap iServer architecture.

Name Explanation
GIS Application

GIS application provides a series of professional GIS service collections aiming at specific business data. GIS application includes three parts, service provider, GIS service components and service interfaces. Service provider offers implementation of GIS features or offers the third-part GIS service connections, and business data are processed in this module. GIS service components offer service provider a secondary encapsulation that shapes proper graind-GIS service components. Service interfaces offer an entry point with which service provider can access the services.

GIS service

GIS service is a form. Finally, it will be provided to the GIS application client in GIS form through the GIS service component, service provider, service interface in GIS application.

In accordance with GIS features, the GIS services of SuperMap iServer can be divided into four parts, the basic map service, spatial analysis, 3D service as well as data management service. These services are consist of GIS service components and service providers of their separate types.

In accordance with publishing protocols, the GIS services of SuperMap iServer includes REST service, SOAP service, WMS service, RMI service, etc. These services are based on various service interfaces to implement.

In accordance with GIS features and publishing protocols, a GIS service published by a GIS application can be divided to basic map service of REST style, spatial analysis service, etc. based on GIS service characters.

Service Provider Set

Service provider set put several service providers as a whole to provide processing of GIS features for GIS service components. The characteristics of service provider collection are shown as follows:

  1. Service providers in service provider set are controllable which enables to control what service providers can provider their GIS service capabilities.

  2. Service provider as a whole are allowed to be used by GIS service components which call that service provider collection to use service providers available.

GIS Service Component Set

GIS service component set is a collection that put several GIS service components together, and publish as GIS service through service interfaces. Clients can get all GIS services of this collection only accessing GIS service component collection. GIS service components in GIS service component set cab be any type.

The purpose of GIS service component is to publish service centrally, and clients can get many GIS services through an accessing address.

 

As mentioned above, the GIS services of SuperMap iServer are co-interacted results by the corresponding modules on the three levels, service interfaces, service providers as well as GIS service components. The following image represents a structure of GIS application.

In the following image, Changchun data management service provided by GIS service component-CP1 is published as REST-style data management service through service interface-REST Servlet. Changchun infrastructure map service provided by GIS service component-CP2 and WMS Servlet are published separately as REST-style and WMS-type Changchun map service.

In the following image, all services of CP1 and CP2 provided by GIS service component set-CPS1 are published separately as REST-style Changchun map service and Changchun data management service, and WMS-type Changchun map service through service interface-REST Servlet and WMS Servlet.

The service interface will select services from valid service components or service component set to publish. REST Servlet service interface enables all types of GIS service components to published as REST-style service. WMS Servlet is a service interface adhere to WMS norms, which only supports publishing GIS service components of map service type to WMS service. In the following image, publish CP2 of Map type and CP2 in CP1 as WMS services.

GIS service components can only call the service provider that has the same service type to implement GIS features. For example, CP1 is the GIS service component with data management type which offers data management service, therefore, CP1 should call service provider P1 which provides data management features to implement GIS features required by CP1.

The implementation of Chuangchun data management service provided by GIS service component CP1 are implemented by service provider P1.

The implementation of Changchun map service provided by GIS service component CP2 is responsible by service provider set PS1, which means that service providers P2 and P3 in PS1 collection implement CP2 map service features together.

GIS service components, GIS service component set, GIS service interfaces, service providers as well as service provider collection can be configured in the configuration file. SuperMap iServer will build and publish GIS application and GIS service through the relations between dependency injection and modules about configuration files. The table below is a content of configuration file on GIS application. With configuration information, GIS application includes:

  1. World map service and Beijing map service with REST style: (GIS service component map is associated with service provider set providerset1 that contains two service providers which separately process world map basic operation and Beijing map basic operation.)

  2. Map service of world map and map service of Beijing map on WMS1.3;

  3. World map of data-world REST-style for data management service: (GIS service component data-world is associated with service provider ugcDataProvider1, and service provider enables to process data management operation of world map.)

  4. Map service of world map and Beijing map with REST sytle in CPS1 collection as well as data management service of world map;

  5. Map service of world map and map service of Beijing map for WMS 1.3 in CPS1 collection;

<application>

    <componentSets>

        <componentSet name="CPS1" interfaceNames="rest">

            <component-reference name="map-world"></component-reference>

            <component-reference name="data-world"></component-reference>

        </componentSet>

    </componentSets>

    <components>

        <component name="map-world"

            class="com.supermap.services.components.impl.MapImpl" providers="providerset1" interfaceNames="rest,wms130">

            <config class="com.supermap.services.components.MapConfig">

                <outputPath>../webapps/output</outputPath>

                <outputSite>http://{ip}:8090/output/</outputSite>

            </config>

        </component>

          

        <component name="data-world"

            class="com.supermap.services.components.impl.DataImpl" providers="ugcDataProvider1" interfaceNames="rest">

            config class="com.supermap.services.components.DataConfig">

            </config>

        </component>

    </components>

    <providerSets>

        <providerSet name="providerset1">

            <provider-reference name="ugcMapProvider1"

                enabled="true"></provider-reference>

            <provider-reference name="ugcMapProvider2"

                enabled="true"></provider-reference>

        </providerSet>

    </providerSets>

    <providers>

        <provider name="ugcMapProvider1"

            class="com.supermap.services.providers.UGCMapProvider">

            <config class="com.supermap.services.providers.UGCMapProviderSetting">

                <outputPath>../webapps/output</outputPath>

                <outputSite>http://{ip}:8090/output/</outputSite>

                <name>default</name>

                <workspacePath>../samples/data/World/World.sxwu</workspacePath>

            </config>

        </provider>

        <provider name="ugcMapProvider2"

            class="com.supermap.services.providers.UGCMapProvider">

            <config class="com.supermap.services.providers.UGCMapProviderSetting">

                <outputPath>../webapps/output</outputPath>

                <outputSite>http://{ip}:8090/output/</outputSite>

                <name>default</name>

                <workspacePath>../samples/data/City/beijing.sxwu</workspacePath>

            </config>

        </provider>

        <provider name="ugcDataProvider1"

            class="com.supermap.services.providers.UGCDataProvider">

            <config class="com.supermap.services.providers.UGCDataProviderSetting">

                <workspacePath>../samples/data/World/World.sxwu</workspacePath>

            </config>

        </provider>

    </providers>

    <interfaces>

        <interface name="wms130" class="com.supermap.services.wms.WMSServlet">

            <config class="com.supermap.services.wms.WMSConfig">

                <version>1.3.0</version>

                <mapName>WorldMap</mapName>

            </config>

        </interface>

        <interface name="rest" class="com.supermap.services.rest.RestServlet">

        </interface>

    </interfaces>

</application>

In conclusion, SuperMap iServer service is characterized by open and agile architecture. GIS service components and service providers are not directly bonding relations, but technical dynamic creation relations through dependency injection. This open architecture benefits users to extend modules on layers and this customized created module can seamlessly join to SuperMap iServer service system, and create custom service through configuration files with other modules. For more information about customized service, see domain service extension.