Difference between revisions of "GCube-SDI-Suite"
(Created page with "Category:gCube Features '''gCube-SDI-Suite''' is a set of gCube java components that allows for the management of GIS resources (i.e. GeoSpatial DataSets, Metadata, Servic...") |
(→Legacy Components) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:gCube Features]] | + | [[Category:gCube Features]][[Category: gCube Spatial Data Infrastructure]][[Category: SDI components]] |
'''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. | '''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 provides Java implementations of both client-side and service-side features, and it is built on top of OGC standards implementations. | ||
Line 25: | Line 25: | ||
* Isolating complexity of GIS resources management and infrastructure integration | * Isolating complexity of GIS resources management and infrastructure integration | ||
* Allowing for easy extension of behaviour | * 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=== | ===Components=== | ||
Line 30: | Line 33: | ||
* [[SDI-Service]] the main service managing the SDI resources; | * [[SDI-Service]] the main service managing the SDI resources; | ||
− | * [[ | + | * [[SDI_Library]] the main library for clients; |
Following components are also part of the suite : | Following components are also part of the suite : | ||
Line 36: | Line 39: | ||
* '''SDI-Interface''' java library with common classes definition; | * '''SDI-Interface''' java library with common classes definition; | ||
* '''SDI-Test-Commons''' common library for test purposes; | * '''SDI-Test-Commons''' common library for test purposes; | ||
− | * '''SDI-Generic-Client''' common library for [[ | + | * '''SDI-Generic-Client''' common library for [[SDI_Library#Dynamic Clients | Dynamic Clients]]; |
− | * '''gCube-GeoServer-Client''' [[ | + | * '''gCube-GeoServer-Client''' [[SDI_Library#Dynamic Clients | Dynamic Clients]] towards '''GeoServer REST API'''; |
− | * '''gCube-GeoNetwork-Client''' [[ | + | * '''gCube-GeoNetwork-Client''' [[SDI_Library#Dynamic Clients | Dynamic Clients]] towards '''GeoNetwork REST API'''; |
* '''gcube-GeoServer-Connector''' internal library used to authenticate gCube calls towards Geoserver; | * '''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 [[GIS_Interface | wiki]] and [https://code-repo.d4science.org/gCubeSystem/gis-interface code]. | ||
+ | * '''GeoNetwork''' : library for the interaction with GeoNetwork service, dealing with both credentials management and metadata publication. See [[GeoNetwork_library | wiki]] and [https://code-repo.d4science.org/gCubeSystem/geonetwork code] | ||
==Use cases== | ==Use cases== | ||
Common use cases can be achieved as described in this section. | Common use cases can be achieved as described in this section. | ||
===Using java clients=== | ===Using java clients=== | ||
− | The best way to interact with the SDI is by using a provided java client described [[ | + | 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 : | ||
+ | |||
+ | * [[SDI_Library#Metadata Interface| Metadata ]] client: allows for common '''ISO Metadata publication''' use cases in the gCube SDI; | ||
+ | * [[SDI_Library#gcube GeoNetwork Cilent| gCube GeoNetwork]] client: offers a java client towards '''GeoNetwork REST API''', fully integrated with gCube Infrastructure; | ||
+ | * [[SDI_Library#Datasets Interface| Datasets]] client: allows for common '''GIS Dataset publication''' use cases in the gCube SDI; | ||
+ | * [[SDI_Library#gcube GeoServer Cilent| gCube GeoServer]] client : offers a java client towards '''GeoServer REST API''', fully integrated with gCube Infrastructure; | ||
+ | |||
+ | Furthermore, the [[SDI_Library#SDI Management| 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=== | ===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 [[SDI_Library#SDI Management| 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 [[Interaction_with_SDI-Service#REST_Interface| 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 [[Interaction_with_SDI-Service#REST_Interface| REST interface]]. Moreover, their interface is usually managed by '''gCube Features''' offering gCube authentication support. |
Latest revision as of 15:30, 2 February 2023
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.
Contents
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 :
- SDI-Service the main service managing the SDI resources;
- SDI_Library the main library for clients;
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.