gcube-cms-suite/geoportal-service/docs/architecture.rst

135 lines
2.8 KiB
ReStructuredText
Raw Normal View History

2022-07-06 18:38:26 +02:00
.. _architecture:
###############
Architecture
###############
2022-11-16 11:24:38 +01:00
.. figure:: _static/imgs/architecture.png
:alt: CMS Suite overall concept
gCube CMS suite : General Architecture
The conceptual architecture behind gCube CMS Suite is schematized in the figure above.
Here we describe the rationale behind the architecture :
* Clients perform both CRUD and Query operations against the service both via using the client library or by directly interacting with the service REST interface.
* They interact with the service producing the custom metadata document (stored in a Document Store DB) and registering related Filesets (stored in gCube StorageHub).
* Clients sends steps (pre configured in the collection UCD) requests to the service, which in turn delegate Lifecycle operations to configured implementations.
* Clients may also directly consume materialized projects in ad hoc engines (e.g. SDI or DBMS). For this purpose, the service exposes information needed by the client in order to properly consume the project collection.
*******
Service
*******
gCube CMS Service is a gCube REST-like Application developped on top of gCube SmartGears.
It implements the core business logic of gCube CMS Suite, exposing methods for the management of Projects, Use Case Descriptors and available server plugins.
It is built on top of Jersey Framework, it uses a MongoDB Document Store for JSON archiving and Querying.
It exploits the infrastructure StorageHub for archiving FileSets and the Information System in order to discover available resources.
=========
Interface
=========
.. note:: The service interface is available for testing here.
.. alert:: You need gCube credentials in order to send requests to the service.
Projects
********
BASE PATH : ''../projects/{ucid}/''
Projects interface offers the following methods over a collection (see {ucid} in path)
* CRUD operations (create, deleteById, getById, updateById)
* FileSet Management
* Query operations (powered by Mongo DB capabiliteis) allowing for filtering, pagination, projection.
* STEP invocation
* Project configuration, reporting the generated resources for the collection and how to access them.
FileSet Management
==================
Querying
========
STEP Invocation
===============
Project configuration
=====================
UCDs
****
Capabilities
************
==============
UCD Management
==============
==================
Project Management
==================
Project archive
***************
Locking
=======
Fileset management
******************
STEP Execution
**************
****************
Plugin Framework
****************
===============
Engine Provider
===============
=================
Plugin Interfaces
=================
==========================
Plugin Development support
==========================
**************
Client Library
**************