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.
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.
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).
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.
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.
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.
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.
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
- 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.
- Topic created by: DanielNuest
- Topic created on: 2013-03-20