Difference between revisions of "SDI Library"
(→Design) |
|||
Line 8: | Line 8: | ||
To external users, the main component of interest is '''sdi-library''', built on top of the ''sdi-interface'' which contains common classes definition. | To external users, the main component of interest is '''sdi-library''', built on top of the ''sdi-interface'' which contains common classes definition. | ||
− | ''SDI Library'' exposes basic gCube clients towards | + | '''SDI Library''' exposes basic gCube clients towards [[SDI-Service]] REST interfaces. |
− | ''SDI Library'' also exposes means to dynamically load and instantiate client implementations for specific SDI subsystems (e.g. GeoServer, GeoNetwork). | + | '''SDI Library''' also exposes means to dynamically load and instantiate client implementations for specific SDI subsystems (e.g. GeoServer, GeoNetwork). |
Each client imeplementation exposes : | Each client imeplementation exposes : | ||
* Information on internal implementation | * Information on internal implementation | ||
* Information on the ''target engine'' | * Information on the ''target engine'' | ||
− | * ''Range'' of supported version for the declared target engine. | + | * '''Range''' of supported version for the declared target engine. |
=== Philosophy=== | === Philosophy=== | ||
The library has been designed to maximize isolation of dependencies : common complex logic is supported on services and client implementations are discovered at runtime. | The library has been designed to maximize isolation of dependencies : common complex logic is supported on services and client implementations are discovered at runtime. | ||
− | The main library ''sdi-ibrary'' offers ways to obtain specific client implementation based on : | + | The main library '''sdi-ibrary''' offers ways to obtain specific client implementation based on : |
* Information System Configuration : accessible third-parties services, configuration and version | * Information System Configuration : accessible third-parties services, configuration and version | ||
Line 26: | Line 26: | ||
== Static Clients == | == Static Clients == | ||
Static clients are directly defined in '''sdi-library''', so no dynamic loading is needed. | Static clients are directly defined in '''sdi-library''', so no dynamic loading is needed. | ||
− | They are implemented as gCube-fw-clients towards | + | They are implemented as gCube-fw-clients towards [[SDI Sevice]] REST interfaces and cover most common use cases such as : |
* Manage SDI configuration (instances, credentials, IS Resources) | * Manage SDI configuration (instances, credentials, IS Resources) |
Revision as of 17:08, 22 February 2021
SDI Library is a java library designed to help developers interact with gCube SDI. It is the main entry point for developpers wanting to exploits client implementations towards the SDI subsystems (i.e. SDI-Service, GeoNetwork, GeoServer ). It offers static gCube-fw-clients that communicate with SDI-Service for the management of gCube SDI and common publication features. It also manages client implementation for third-parties SDI technologies, allowing for direct communication with these subsystems.
Contents
Design
Following diagram illustrate the relations between the various clients components in gcube-sdi-suite.
To external users, the main component of interest is sdi-library, built on top of the sdi-interface which contains common classes definition. SDI Library exposes basic gCube clients towards SDI-Service REST interfaces. SDI Library also exposes means to dynamically load and instantiate client implementations for specific SDI subsystems (e.g. GeoServer, GeoNetwork).
Each client imeplementation exposes :
- Information on internal implementation
- Information on the target engine
- Range of supported version for the declared target engine.
Philosophy
The library has been designed to maximize isolation of dependencies : common complex logic is supported on services and client implementations are discovered at runtime.
The main library sdi-ibrary offers ways to obtain specific client implementation based on :
- Information System Configuration : accessible third-parties services, configuration and version
- Available implementations at runtime
Static Clients
Static clients are directly defined in sdi-library, so no dynamic loading is needed. They are implemented as gCube-fw-clients towards SDI Sevice REST interfaces and cover most common use cases such as :
- Manage SDI configuration (instances, credentials, IS Resources)
- Manage Application Profiles
- Instantiate Dynamic clients
- Common basic publish logic
SDI Management
Instantiate specific client
SDI Management should be used to dynamically instantiate client implementations against runtime configuration. It deals with