GCube-SDI-Suite

From Gcube Wiki
Jump to: navigation, search

gCube-SDI-Suite is a set of gCube java components that allows for the management of GIS resources (i.e. GeoSpatial DataSets, Metadata, Services..) in D4Science Spatial Data e-Infrastructure. It provides Java implementations of both client-side and service-side features, and it is built on top of OGC standards implementations. It is powered by gCube Features, fully integrating with the infrastructure.

Design

gCube-SDI-Suite is designed as a modular set of components, each of which can be used as dependency by another application. It fully relies on gCube for infrastructure integration.

The suite code can be found at [[1]], and it is distributed as the following maven artifact in gCube repositories :

<dependency>
  <groupId>org.gcube.spatial.data</groupId>
  <artifactId>gcube-sdi-suite</artifactId>
  <type>pom</type>
</dependency>

Philosophy

gCube-SDI-Suite aim is to to simplify developpers' life in managing GIS resources by

  • Offering easy ways to perform common tasks
  • Encouraging reuse of code by modularization of feature and reduction of dependency tree
  • Isolating complexity of GIS resources management and infrastructure integration
  • Allowing for easy extension of behaviour

NB The suite has been recently developped and not yet integrated. Check [#Legacy Components] section to look for previous implementations.


Components

gCube-SDI-Suite main components are :

Following components are also part of the suite :

  • SDI-Interface java library with common classes definition;
  • SDI-Test-Commons common library for test purposes;
  • SDI-Generic-Client common library for Dynamic Clients;
  • gCube-GeoServer-Client Dynamic Clients towards GeoServer REST API;
  • gCube-GeoNetwork-Client Dynamic Clients towards GeoNetwork REST API;
  • gcube-GeoServer-Connector internal library used to authenticate gCube calls towards Geoserver;

Legacy Components

The suite aims to provide a common layer for the interaction with gCube SDI, presenting a generic behaviour where possible. Previous attempts to implement a wrapping layer over SDI has been done with the following components :

  • GIS-Interface : common publishing behaviour, dealing with both data and metadata. Built on top of GeoNetwork library. See wiki and code.
  • GeoNetwork : library for the interaction with GeoNetwork service, dealing with both credentials management and metadata publication. See wiki and code

Use cases

Common use cases can be achieved as described in this section.

Using java clients

The best way to interact with the SDI is by using a provided java client described from SDI_Library.

Following clients can be selectively used to support publication and access :

  • Metadata client: allows for common ISO Metadata publication use cases in the gCube SDI;
  • gCube GeoNetwork client: offers a java client towards GeoNetwork REST API, fully integrated with gCube Infrastructure;
  • Datasets client: allows for common GIS Dataset publication use cases in the gCube SDI;
  • gCube GeoServer client : offers a java client towards GeoServer REST API, fully integrated with gCube Infrastructure;

Furthermore, the gCube GeoNetwork can be used to :

  • Manage SDI subsystems in the VRE (i.e. GeoNetwork, GeoServer, Thredds..)
  • Manage metadata templates
  • Manage Application profiles
  • Manage Credentials and configurations

Managing configurations

Configuration are managed as resources in the SDI. The best way to achieve context configuration is to interact with SDI-Service either by exploiting its REST interface or the provided java client.

HTTP Interfaces

The SDI is composed by various instances of web servers, exposing various HTTP APIs.

  • SDI-Service exposes a REST api documented here;
  • Subsystems (i.e. GeoNetwork, GeoServer, Thredds..) exposed interfaces may vary by implementation and versions. Instances endpoints and connection parameters should be retrieved by exploiting SDI-Service's REST interface. Moreover, their interface is usually managed by gCube Features offering gCube authentication support.