GEOSS Service Factory

Geospatial applications have changed from isolated solutions to open infrastructures based on Web Services to deal with data representing the status of our environment. International organizations and initiatives promote standards for data encodings and service interfaces that allow establishing Geospatial Information Infrastructures (GIIs). These GIIs provide services to address most of the steps in the geospatial user workflow, such as discovery, access, visualization and invocation. However, they do not provide services to assist users in the publication of content. The lack of this functionality challenges the implementation and maintenance of GIIs since publication of content remains a complex task turning GIIs into top-down infrastructures without user participation. GEOSS Service Factory (GSF) is a publication service that aims at extending classical GII architectures to provide this publication capacity. Initiatives, to increase interoperability like Infrastructure for Spatial Information in Europe (INSPIRE) or Global Earth Observation System of Systems (GEOSS), describe the overall architecture and best practices to design and implement GIIs. Content is managed by means of regulated and standardized service types. This imposes a distinct life cycle of geospatial content in distributed environments, which can be described in four steps as illustrated in Figure 1. First, content must be made available to a distributed system, i.e., content must be published in standard services like discovery and access services. Second, users need to discover content, which will be finally accessed by using these services (third step). Finally, users process the content and generate new content, which should be integrated and published in the distributed system closing this cycle.

figure1resized.png

Figure 1: Content life cycle in GII

GIIs lack mechanisms to assist users and experts in the publication step. Such mechanisms should assist in making content persistent in a distributed and standard manner rather than storing content locally and isolating it from other users.

figure2resized.png

Figure 2: Geospatial users workflow

The Publication Service GEOSS Service Factory (GSF) addresses these issues bottom-up. It considers user participation to complement the traditional top-down implementations of GIIs. GSF assists users in the publication of content in existing standard service instances. It prepares a channel that hides complexity and facilitates content sharing, while remaining loyal to the geospatial initiatives agreements and standards to reach the required level of interoperability.

GEOSS Service Factory Anatomy

Publication capacity is provided as an additional web service type deployed in the GII (Figure 3).

figure3resized.png

Figure 3: Proposed extended GII architecture.

Following the trend in providing users with data discovery, visualization, downloads and other functionality as services, the GSF extend GII with Publication as a Service (green deployed service). GSF is an standard and scalable publication service. It acts as a mediator to facilitate the publication of new content in GII as standard services compliant with INSPIRE and therefore with GEOSS. The term ‘GEOSS’ describe its intention on comprehend all the content types and services considered by GEOSS since they are more numerous, diverse and flexible than INSPIRE. The term ‘service’ describes its nature since it is a service and its main function is to update and provide new service content. The term ‘factory’ defines its behavior, it is designed to be a unique entry point to publish and modify different types of content.

GEOSS Service Factory components

The basic idea is that the GSF will publish content creating new entries in existing Services. We have model its behavior with the design pattern Abstract factory to make it more scalable, therefore It is composed by different factories each of them dealing with the publication of content in a different service type. Besides the Factories the GSF contains two other modules, the transformation module which deals with data format transformation to overcome the problem of spatial formats not being supported by existing services. The MD generator is able to generate a small discovery purpose metadata of the published content, this metadata can be automatically published to Discovery Services via the DiscoveryFactory. As shown in figure 4, when the GSF is invoked, the content to be published is sent as an input parameter. The GSF settings are stored in the PublicationProfile, which reflects the publication policy of the GII. It says in which service type is going to be published this content which is the service interface and where is the instance running. Then the GSF delegates the content to the corresponding factory depending on the content type. The factory will communicate with the existing services via the services APIs, most of them implement OGC interfaces, but other standards or service specifications can be added.

figure4resized.png

Figure 4: GSF components (i)

After the content is published, the GSF can delegate on the discovery factory to register it as we can see in figure 5. In this case the DiscoveryFactory through the MDGenerator queries the updated services to extract discovery metadata information. The metadata will be published in a Catalogue for further discovery.

The output of the publish process can be a set of links or a link to the metadata entry containing the links to the content and some description.

figure5resized.png

Figure 5: GSF components (ii)

GSF internal design

GSF behavior is modeled with the Abstract Factory design pattern to make it more scalable, and to extend the content types to a broader range. Furthermore, it provides the publication capacity with an standard OGC Service interface, the OGC WPS specification.

The Abstract Factory design pattern from software engineering (Gamma et al, 1995) is defined as a creational pattern used to instantiate new entities. It encapsulates a group of individual factories that have a common theme. In our case, the GFS holds a group of factories providing operations to publish new entries in Geospatial Services.

Figure 6 shows the Abstract Factory diagram adapted to our scenario. We use inheritance to derive the most specific OGC standards from the more general service types defined by INSPIRE and GEOSS. View and Download Services are some of the INSPIRE Service Types adopted in our approach to generate GEOSS Services and to deploy them in a certain GII. The individual services implement a particular OGC standard specification following INSPIRE guidelines to implement INSPIRE service types. For example, a WMS is used to implement a View Service, a WFS to implement a Download Service.

figure6.jpg

Figure 6: Abstract Factory pattern applied to (GEOSS) Service Factory

GSF Interface: OGC WPS for Publication process

The GSF is implemented as a service component with a standard interface to be re-used in different scenarios. Since the OGC WPS is used to reach processing interoperability, it is our standard of choice to implement the GSF as a service. Figure 7 shows the UML class diagram with a simplification of the GSF interface and the signature of the publish process regarding input and output parameters.

figure7resized.jpg

Figure 7: GSF WPS interface description. This figure shows the input and output parameters of the Publish process

We offer a single process, called Publish. The Publish process considers the following parameters:

  • Content: Only this input parameter is mandatory. This content can be passed by value or by reference, where a Uniform Resource Locator (URL) to the content can be used. It can vary from a vector or raster data set, or a metadata document.
  • ServicePublicationProfile: XML encoded parameter that describes the publication policy. This parameter includes information regarding where each data type should be published within this GII.
  • MD_URL: This parameter indicates that this content is already published in the GII and there are available metadata that should be reused when updating it.
  • Keywords: The optional ‘keywords’ parameter provides an initial capability for metadata creation.
  • DiscoveryLink: This is the only output parameter. This parameter contains the information needed to discover the content published in the system. In the case of the GII, where content is registered in Catalogue services, this parameter contains the end point to the metadata available in the Catalogue Service that contains the description of the content just being published.

GSF Set-Up: The Service Publication Profile

Each application deployed in a GII can have its own publication policy. This policy establish rules, for example, which content type is published in each service type that implement a particular specification where it is located. At technical level we describe this policy as a Service Publication Profile (SPP). SPP is set for a GSF deployed in a GII and it will configure the GSF to decide where each factory publishes the content. For example, the SPP determines which content types are published for visualization and download and whether it also publishes their metadata for discovery purposes. Next we can see an example of SPP:

<?xml version="1.0" encoding="UTF-8"?> <ServicePublicationProfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://geoinfo.uji.es/gsf http://elcano.dlsi.uji.es/ldiaz/schemas/ServicePublicationProfile.xsd"  xmlns="http://geoinfo.uji.es/gsf"> <ServiceType name="Download" standard="WFS" version="1.0.0" url="http://elcano.dlsi.uji.es:8080/geoserver/"> <Property name="supportedFormat">text/xml</Property> <Property name="supportedFormat">application/x-zipped-shp</Property> <Property name="supportedFormat">application/zip</Property> <Property name="supportedSchema">http://schemas.opengis.net/gml/3.0.0/base/feature.xsd</Property> <Property name="supportedSchema">http://schemas.opengis.net/gml/3.0.1/base/feature.xsd</Property> 
        <Property name="supportedSchema">http://schemas.opengis.net/gml/3.1.0/base/feature.xsd</Property> <Property name="supportedSchema">http://schemas.opengis.net/gml/3.1.1/base/feature.xsd</Property> <Property name="supportedSchema">http://schemas.opengis.net/gml/3.2.1/base/feature.xsd</Property> <Property name="supportedSchema">http://schemas.opengis.net/gml/2.0.0/feature.xsd</Property> <Property name="supportedSchema">http://schemas.opengis.net/gml/2.1.1/feature.xsd</Property> <Property name="supportedSchema">http://schemas.opengis.net/gml/2.1.2/feature.xsd</Property> 
        <Property name="supportedSchema">http://schemas.opengis.net/gml/2.1.2.1/feature.xsd</Property> <Property name="supportedEncoding">UTF-8</Property> <Property name="transactionalProtocol">Geoserver</Property> <Property name="user">user</Property> <Property name="password">pwd</Property> </ServiceType> <ServiceType name="Download" standard="SOS" url="http://urserver/sos"> <Property name="supportedSchema">http://schemas.opengis.net/om/1.0.0/om.xsd</Property> 
        <Property name="supportedFormat">text/xml</Property> <Property name="supportedEncoding">UTF-8</Property> <Property name="transactionalProtocol">SOS-T</Property> </ServiceType> <ServiceType name="View" standard="WMS" url="http://urserver/geoserver/"> <Property name="supportedFormat">application/x-zipped-shp</Property> <Property name="supportedFormat">application/zip</Property> 
        <Property name="supportedFormat">application/img</Property> <Property name="supportedFormat">application/geotiff</Property> <Property name="supportedFormat">application/dbase</Property> <Property name="supportedFormat">application/remap</Property> <Property name="supportedFormat">text/xml</Property> <Property name="transactionalProtocol">Geoserver</Property> <Property name="user">usr</Property> <Property name="password">pwd</Property> </ServiceType> 
    <ServiceType name="Discovery" standard="CSW" url="http://urserver:8080/geonetwork/srv/en/csw"> <Property name="supportedFormat">text/xml</Property> <Property name="supportedEncoding">UTF-8</Property> <Property name="transactionalProtocol">CSW-T</Property> <Property name="user">usr</Property> <Property name="password">pwd</Property> </ServiceType></ServicePublicationProfile>

Code management

Contributing developers

  • José Gil
  • Sergi Trilles

Related papers

  • Laura Díaz, Nicole Ostlaender and Sven Schade. Supporting content publication for INSPIRE INSPIRE Conference 2011. Edinburgh 27 June - 1 July.
  • Laura Díaz, Sven Schade. GEOSS Service Factory: Assisted Publication of Geospatial Content. Procedings 14th AGILE International Conference on Geographic Information Science (AGILE 2011). Utrecht, The Netherlands, April 2011
  • Laura Díaz, Carlos Granell, Michael Gould, Joaquín Huerta. Managing user generated information in geospatial cyberinfrastructures. Future Generation Computer Systems, 27(3): 304-314, 2011. ISSN: 0167-739X
  • José Gil, Laura Díaz, Carlos Granell, Joaquín Huerta. Open Source based Deployment of Environmental Data into Geospatial Information Infrastructures International Journal of Applied Geospatial Research.

Acknowledgments

This work has been partially supported by the European FP7 Project nr. 226487 called EuroGEOSS and by “España Virtual” project (ref. CENIT 2008-1030) through the Instituto Geográfico Nacional.

We would like to thank to Sven Schade and Nicole Ostlaender from SDI Unit of Institute for Environment and Sustainability of the Joint Research Centre for their valuable comments.

Metadata

  • Topic created by: DanielNuest
  • Topic created on: 2013-03-20
Topic attachments
I Attachment Action Size Date Who Comment
PNGpng figure1resized.png manage 37.0 K 2013-03-20 - 21:29 DanielNuest  
PNGpng figure2resized.png manage 130.5 K 2013-03-20 - 21:29 DanielNuest  
PNGpng figure3resized.png manage 35.9 K 2013-03-20 - 21:29 DanielNuest  
PNGpng figure4resized.png manage 77.1 K 2013-03-20 - 21:29 DanielNuest  
PNGpng figure5resized.png manage 93.5 K 2013-03-20 - 21:29 DanielNuest  
JPEGjpg figure6.jpg manage 41.1 K 2013-03-20 - 21:29 DanielNuest  
JPEGjpg figure7resized.jpg manage 48.5 K 2013-03-20 - 21:29 DanielNuest  
Tags:
create new tag
, view all tags
Topic revision: r2 - 2014-01-28 - 08:57:42 - EikeHinderkJuerrens

 
  • Search: 
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback