Download GeoServer Application Schema Support: Complex Web Feature

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

IMDb wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Functional Database Model wikipedia , lookup

Database wikipedia , lookup

Clusterpoint wikipedia , lookup

Versant Object Database wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
GeoServer Application Schema Support:
Complex Web Feature Service for Geoscience Interoperability
Ben Caradoc-Davies and Rini Angreani
CSIRO Earth Science and Resource Engineering, Australia
GEOSERVER WEB FEATURE SERVICE
GeoServer [1] is an open source geospatial web service implementation with an established user base and an international
developer community. GeoServer is written in Java and is built on the GeoTools library [2], which is an Open Source
Geospatial Foundation (OSGeo) [3] project. GeoServer is the reference implementation of the Open Geospatial
Consortium (OGC) Web Feature Service (WFS) standard [4] and also supports other OGC standards such as Web Map
Service (WMS) [5]. WFS is of particular interest for data interoperability because, unlike a portrayal service such as
WMS, it allows direct querying of the underlying data.
SIMPLE AND COMPLEX FEATURES
“The „feature‟ is the fundamental unit of geospatial information” [6]. The Geography Markup Language (GML) [7]
simple feature profile (SF-0) [8] restricts feature types to those whose properties are a restricted list of basic data types
such as integers, measurements, dates, or basic geometry types. This profile does not permit a feature to have a property
that is another feature or similar complex type, and so is unable to represent complex information models which would be
represented in GML by deeply nested structures.
Geoscience information is typically stored by data custodians in spatially-enabled relational databases such as Oracle
Spatial or PostGIS. GeoServer can deliver the contents of a single database table or view as a simple feature by
representing that relation as GML where the GML schema (the WFS feature type) is created automatically from the
private database schema. This functionality enables web access to the underlying data but does not enable data
interoperability because the private database schema is exposed through its conversion to a GML schema: every service
with a different database schema will have a different WFS feature type. To achieve interoperable exchange of data a
common schema must be agreed, and because of the need to accommodate the use-cases of an extensive community that
will grow over time, the schema must necessarily be complex. Only a complex schema allows the modularity and
extensibility required for change over time.
Simple feature types cannot represent complex information structure. To achieve interoperable exchange of data
conforming to a complex information model, a community can agree on a GML application schema that defines new
complex feature types, each defined as a complex composition of or association with other (potentially complex) types,
and whose meaning is governed by community-agreed standards. GML application schemas can represent arbitrarily
complex information models. Examples of GML application schemas used to exchange complex geoscience information
include GeoSciML [9] and EarthResourceML [10].
GEOSERVER APPLICATION SCHEMA SUPPORT
GeoServer originally supported only simple features. Building on a prototype developed in 2005, support for GML
application schemas in GeoServer has been implemented in projects commencing in 2008 supported by AuScope Ltd, the
Australian National Data Service, and the Australian Research Collaboration Service [11].
The GeoServer application schema support (app-schema) plugin [12] adds support for WFS 1.1.0 delivery of
complex features conforming to a GML 3.1.1 application schema. GeoServer app-schema is now distributed as a
standard GeoServer plugin. As depicted in Figure 1, the app-schema plugin reuses the existing simple feature database
access layer by accessing database tables as simple features and then mapping them into complex features.
Figure 1: GeoServer application schema support converts simple features into complex features.
GeoServer app-schema deployments conforming to EarthResourceML at Australian geological surveys such as
Geoscience Victoria and Mineral Resources Tasmania enable a client such as the AuScope Portal [13] to issue WFS filter
queries to obtain only a desired subset of each organisation's data set. Because each service conforms to the same GML
application schema, the same query can be issued to each service, regardless of the relational database schema used to
store the data by the custodian, or the WFS implementation used to enable access. Interoperability is achieved.
Gold Coast, Australia
8-12 Nov 2010
4th eResearch Australasia Conference
GeoServer application schema support is not limited to geoscience data, and is applicable to any field using
spatially-located information that is represented in a complex-feature information model expressed as a GML 3.1.1
application schema.
OBJECT-RELATIONAL MAPPING
The GeoServer application schema support plugin builds on existing simple feature support and maps the private schema,
derived from the database schema, into a community-agreed GML application schema. This mapping is sufficiently
reversible to support complex WFS filter queries, so that complex features can be selected from a service based on their
properties, where selection can be performed in the underlying database query.
Complex structure can be implemented through “feature chaining”, in which feature types are configured
independently, with relationships specified in mapping files. This approach simplifies both configuration and
implementation, and allows relationships to be specified between features stored in different databases.
Polymorphism in the information model introduces a new challenge. The GeoServer application schema support
plugin now supports several types of data-driven polymorphism, in which the type of properties may vary across feature
instances for a single feature type. The type of each feature is determined by expression evaluation.
The problem of mapping a relational database schema to a polymorphic object-based GML application schema is an
instance of the Object-Relational Mapping (ORM) problem [14]. In the case of production deployments at statutory
agencies, the database schema is driven by business needs and often statutory requirements, so there is little scope for
modifying existing database schemas to better match the database schema to the complex information model,
exacerbating ORM difficulties. The flexibility of expression evaluation and polymorphism support in GeoServer appschema allows the deployment of working solutions even when the relational database information model differs from
the target application schema.
CHALLENGES
A key reason for the popularity of GeoServer for simple feature WFS is its ease-of-use, and in particular, its graphical
web user interface. However, the complex feature app-schema plugin is at this time configured by manually editing XML
files and lacks a graphical web user interface.
The use of feature chaining and polymorphism and consequent inefficient database queries results in performance
challenges. Deployers must judge the appropriate level of complexity for their users because there is a trade-off between
performance and complexity of structure. Performance can be dramatically improved through database optimisation
techniques including the use of materialised views.
GeoServer does not yet support GML 3.2.1, which will be required to deliver WFS responses conforming to the
European Commission INSPIRE GML application schemas [15].
REFERENCES
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
GeoServer: http://geoserver.org/
GeoTools: http://geotools.org/
Open Source Geospatial Foundation: http://osgeo.org/
Web Feature Service: http://www.opengeospatial.org/standards/wfs
Web Map Service: http://www.opengeospatial.org/standards/wms
Simon Cox, “Feature Model and Encoding”, accessed 2010-06-27:
https://www.seegrid.csiro.au/twiki/bin/view/AppSchemas/FeatureModel
Geography Markup Language: http://www.opengeospatial.org/standards/gml
Geography Markup Language simple features profile (1.0.0), OGC 06-049r1 (2006):
http://www.opengeospatial.org/standards/gml
Geoscience Markup Language: http://www.geosciml.org/
Earth Resource Markup Language: http://www.earthresourceml.org/
AuScope Ltd, the Australian National Data Service, and the Australian Research Collaboration Service are funded
under the National Collaborative Research Infrastructure Strategy (NCRIS), an Australian Commonwealth
Government Programme.
GeoServer User Manual: Application Schema Support:
http://docs.geoserver.org/latest/en/user/data/app-schema/index.html
AuScope Portal: http://portal.auscope.org/gmap.html
Wikipedia, “Object-relational impedance mismatch”, accessed 2010-06-27:
http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch
European Commission INSPIRE: http://inspire.jrc.ec.europa.eu/
Gold Coast, Australia
8-12 Nov 2010
4th eResearch Australasia Conference