gcube-model/docs/gcube-model-resource.rst

697 lines
102 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. _Resource:
Resource
========
.. _GCubeResource:
GCubeResource
-------------
Marker type for any gCube Resource extended in the gCube model.
.. table:: **GCubeResource** ``extends`` **Resource**
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+========================================+==============+======================+==============================================================================================+
| **Facets** |
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| :ref:`GCubeResource <GCubeResource>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`Facet <Facet>` | Any Resource has at least one Facet which in some way allow to identify the Resource per se. |
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
The **GCubeResource** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Actor:
Actor
^^^^^
Actor (Abstract) is any entity (human or machine) playing an active role in the infrastructure. Actor has two specialisations, :ref:`LegalBody <LegalBody>` which represent any legal entity, and :ref:`Person <Person>` which is any human playing the role of Actor. An Actor can belong to a :ref:`LegalBody <LegalBody>` and this is expressed using the defined :ref:`BelongsTo <BelongsTo>` relation.
.. table:: **Actor** ``extends`` **GCubeResource**
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================+========================================+==============+======================================================+====================================================================================+
| **Facets** |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :ref:`Actor <Actor>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`ContactReferenceFacet <ContactReferenceFacet>` | |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :ref:`Actor <Actor>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`ContactFacet <ContactFacet>` | An Actor has at least a Contact Facet which permit to identify the Actor per se. |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| **Resource Relations** |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`Involves <Involves>` | 0..n | :ref:`Actor <Actor>` | |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :ref:`Site <Site>` | :ref:`IsOwnedBy <IsOwnedBy>` | 0..n | :ref:`Actor <Actor>` | |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
The **Actor** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _LegalBody:
LegalBody
"""""""""
LegalBody represents any legal entity playing the role of an Actor.
.. table:: **LegalBody** ``extends`` **Actor**
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+==============================+==============+==============================+=============+
| **Facets** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| **Resource Relations** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| :ref:`Person <Person>` | :ref:`BelongsTo <BelongsTo>` | 0..n | :ref:`LegalBody <LegalBody>` | |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
The **LegalBody** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Person:
Person
""""""
Person represents any human playing the role of Actor.
.. table:: **Person** ``extends`` **Actor**
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+==============================+==============+==============================+=============+
| **Facets** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| **Resource Relations** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| :ref:`Person <Person>` | :ref:`BelongsTo <BelongsTo>` | 0..n | :ref:`LegalBody <LegalBody>` | |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
The **Person** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _ConfigurationTemplate:
ConfigurationTemplate
^^^^^^^^^^^^^^^^^^^^^
Configuration Template represents a template for a configuration. It describes how a configuration has to be realised, e.g. used to define the catalogue configuration parameters template.
.. table:: **ConfigurationTemplate** ``extends`` **GCubeResource**
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+======================================================+========================================+==============+======================================================+========================================================================+
| **Facets** |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`ConfigurationTemplate <ConfigurationTemplate>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`TemplateFacet <TemplateFacet>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`ConfigurationTemplate <ConfigurationTemplate>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Configuration <Configuration>` | :ref:`IsDerivationOf <IsDerivationOf>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | A reference to any configuration characterising the Service behaviour. |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`IsConfiguredBy <IsConfiguredBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
The **ConfigurationTemplate** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Configuration:
Configuration
"""""""""""""
Configuration is a specialisation of :ref:`ConfigurationTemplate <ConfigurationTemplate>` and is an instance of a configuration template characterising the behaviour and shape of the resource it is attached to. The Configuration can be related to the template it derives using :ref:`IsDerivationOf <IsDerivationOf>`.
.. table:: **Configuration** ``extends`` **ConfigurationTemplate**
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+========================================+==============+======================================================+=============+
| **Facets** |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| **Resource Relations** |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| :ref:`Configuration <Configuration>` | :ref:`IsDerivationOf <IsDerivationOf>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
The **Configuration** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Dataset:
Dataset
^^^^^^^
A Dataset is a set of digital objects representing data and treated collectively as a unit. It is the key resource of a HDI, even more, it is the reason the HDI exists. A Dataset can be correlated to another Dataset by using :ref:`IsCorrelatedTo <IsCorrelatedTo>` relation.
.. table:: **Dataset** ``extends`` **GCubeResource**
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================================+==================================================+==============+============================================================+=========================================================================================================================================================+
| **Facets** |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`AccessPointFacet <AccessPointFacet>` | The access point to use for having access to the dataset. The embargoState can be modeled through the access policy defined in the consistsOf relation. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | Any descriptive information associated with the dataset, e.g. for discovery purposes. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`EventFacet <EventFacet>` | Any 'event' characterising the lifecycle of the dataset, e.g. collection date, last collection date. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`LicenseFacet <LicenseFacet>` | The licence governing dataset exploitation. The duration of license (if any) is captured by the expiry date defined in the consistsOf relation. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`ProvenanceFacet <ProvenanceFacet>` | Any provenance record associated with the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | Any subject/tag associated with the dataset for descriptive and discovery purposes. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasContributor <HasContributor>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information on contributors supporting the creation and development of the Dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasCoverage <HasCoverage>` | 1..n | :ref:`CoverageFacet <CoverageFacet>` | Any coverage related information (e.g. topic, species) characterising the content of the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasCreator <HasCreator>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the creator of the Dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasCurator <HasCurator>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the curation of the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasMaintainer <HasMaintainer>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the maintenance of the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasOwner <HasOwner>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity having the ownership of the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasSpatialCoverage <HasSpatialCoverage>` | 0..n | :ref:`CoverageFacet <CoverageFacet>` | Any geo-spatial coverage information characterising the content of the dataset, e.g. the area covered by the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasTemporalCoverage <HasTemporalCoverage>` | 0..n | :ref:`CoverageFacet <CoverageFacet>` | Any temporal coverage information characterising the content of the dataset, e.g. the time-span covered by the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | The set of Identifiers associated with the Dataset instance. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`IsPartOf <IsPartOf>` | 0..n | :ref:`Dataset <Dataset>` | The reference to the 'incarnations'/'manifestations' contributing to a dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`Involves <Involves>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`IsCompliantWith <IsCompliantWith>` | 0..n | :ref:`Schema <Schema>` | Any schema characterising the content of the dataset, e.g. the schema describing the 'columns' of a CSV-based dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`IsCorrelatedTo <IsCorrelatedTo>` | 0..n | :ref:`Dataset <Dataset>` | |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | A reference to any Dataset resource managed by the Service instance. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | The link between the service that 'manages' the dataset and the dataset, e.g. the service that hosts the dataset and give access to it. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
The **Dataset** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _ConcreteDataset:
ConcreteDataset
"""""""""""""""
ConcreteDataset is any incarnation/manifestation of a dataset or part of it. The relation :ref:`IsPartOf <IsPartOf>` is used when a ConcreteDataset is part of a :ref:`Dataset <Dataset>`.
.. table:: **ConcreteDataset** ``extends`` **Dataset**
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================================+======================================+==============+============================================+==================================================================================================================================================================+
| **Facets** |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`AccessPointFacet <AccessPointFacet>` | The access point to use for having access to the concrete dataset. The embargoState can be modeled through the access policy defined in the consistsOf relation. |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`HasMaintainer <HasMaintainer>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the maintenance of the concrete dataset |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`IsPartOf <IsPartOf>` | 0..n | :ref:`Dataset <Dataset>` | The reference to the 'incarnations'/'manifestations' contributing to a dataset. |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **ConcreteDataset** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Schema:
Schema
^^^^^^
Schema is any reference schema used to specify compliant values. Examples include controlled vocabularies, ontologies, and others. This resource is mainly used by :ref:`Dataset <Dataset>` to evidence that is compliant with a Schema by using :ref:`IsCompliantWith <IsCompliantWith>` relation.
.. table:: **Schema** ``extends`` **GCubeResource**
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================+==========================================+==============+============================================================+========================================================================================================================+
| **Facets** |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SchemaFacet <SchemaFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`IsCompliantWith <IsCompliantWith>` | 0..n | :ref:`Schema <Schema>` | Any schema characterising the content of the dataset, e.g. the schema describing the 'columns' of a CSV-based dataset. |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
The **Schema** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Service:
Service
^^^^^^^
Service (Abstract) represents any typology of service worth registering in the infrastructure. Service has relations with quite all other resources. If on one side, an Hybrid Data Infrastructure (HDI) is created to manage datasets, on the other side the HDI born to manage such datasets digitally. We could affirm that datasets and services are the two pillar resources around which revolves the entire infrastructure. It is important to highlight that Service has a general meaning and must not be intended as a network-callable service which is represented instead by one of its specialisation called :ref:`EService <EService>`.Giving that Service is abstract no :ref:`IsIdentifiedBy <IsIdentifiedBy>` association with a facet is provided which in turns is responsibility of the specialisation.
.. table:: **Service** ``extends`` **GCubeResource**
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+============================+========================================+==============+============================================================+==================================================================================================================================================================================================================================================================+
| **Facets** |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`CapabilityFacet <CapabilityFacet>` | Any facility supported/offered by the Service. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | Any descriptive information associated with the service, e.g. for discovery purposes. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | Any subject/tag associated with the service for descriptive, cataloguing and discovery purposes. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Activates <Activates>` | 0..n | :ref:`Service <Service>` | The source Service enables the target Service to be running. Examples are an Hosting Node which enables an EService; A VirtualMachine enabling an EService or an HostingNode; An EService enabling a RunningPlugin; A VirtualMachine enabling an HostingNode etc |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`CallsFor <CallsFor>` | 0..n | :ref:`Service <Service>` | A reference to the Services needed by the target instance to work. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Enables <Enables>` | 0..n | :ref:`Software <Software>` | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService). |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | A reference to any configuration characterising the Service behaviour. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | A reference to any Dataset resource managed by the Service instance. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | The link between the service that 'manages' the dataset and the dataset, e.g. the service that hosts the dataset and give access to it. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Requires <Requires>` | 0..n | :ref:`Service <Service>` | A reference to any Service needed by a Software to properly operate, e.g. this can be used to capture a sort of run-time requirements between a software component and the Service it needs. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Site <Site>` | :ref:`Hosts <Hosts>` | 0..n | :ref:`Service <Service>` | |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`Requires <Requires>` | 0..n | :ref:`Service <Service>` | To capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database instance. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **Service** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _EService:
EService
""""""""
EService is any running service that is registered in the infrastructure and made available by an access point.
.. table:: **EService** ``extends`` **Service**
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+============================+========================================+==============+============================================+=============================================================================================================+
| **Facets** |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`AccessPointFacet <AccessPointFacet>` | Identify the endpoints of the EService. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`EventFacet <EventFacet>` | Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`LicenseFacet <LicenseFacet>` | The specific terms of use governing the exploitation of the EService. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SoftwareFacet <SoftwareFacet>` | Software available in the EService environment that characterizes the specific EService instance. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current status of the EService, e.g. STARTED, ready, down, failed. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SoftwareFacet <SoftwareFacet>` | The main software enabling the EService capabilities. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`Discovers <Discovers>` | 0..n | :ref:`EService <EService>` | A reference to any other EService, the EService instance is discovering through query on IS. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`Uses <Uses>` | 0..n | :ref:`EService <EService>` | A reference to any other EService, the EService instance is invoking. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
The **EService** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _RunningPlugin:
RunningPlugin
"""""""""""""
RunningPlugin allows differentiating which is the primary service and which is an additional capability of a such a service. Keeping the two concepts separated enables to share a service across VREs with a subset of its capabilities.
.. table:: **RunningPlugin** ``extends`` **EService**
+-------------------------------------------------------+----------+--------------+--------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+==========+==============+========+=============+
| **Facets** |
+-------------------------------------------------------+----------+--------------+--------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------------+----------+--------------+--------+-------------+
| **Resource Relations** |
+-------------------------------------------------------+----------+--------------+--------+-------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+----------+--------------+--------+-------------+
The **RunningPlugin** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _HostingNode:
HostingNode
"""""""""""
The HostingNode represent a container capable of managing the lifecycle of an electronic service, i.e., being capable to host and operate an :ref:`EService <EService>`. Examples are docker, tomcat. A container is a service which is conceived to enable any services respecting the container rules to be operative. The container does not typically provide any functionality rather than allowing the hosted service to operate. The HostingNode characterisation in terms of facets reflects the one presented for :ref:`VirtualMachine <VirtualMachine>`. In particular, facets representing memory, CPU and networking interface are used to describe the HostingNode when the :ref:`VirtualMachine <VirtualMachine>` enabling the HostingNode is not represented. Federated systems can provide virtual machines as resource or containers as resources. In some cases, the description of a container includes (virtual) hardware information. It is important to highlight that HostingNode is not a subclass of :ref:`VirtualMachine <VirtualMachine>`.
.. table:: **HostingNode** ``extends`` **Service**
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+==================================================+==============+==================================================+==================================================================================================================================================================================+
| **Facets** |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`CPUFacet <CPUFacet>` | The CPU equipping the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`EventFacet <EventFacet>` | Every event characterizing the life cycle of the Hosting Node, e.g. the activation time. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SimplePropertyFacet <SimplePropertyFacet>` | Any <key,value> pair property worth associating with the Hosting Node, e.g. Environment Variables |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SoftwareFacet <SoftwareFacet>` | Any Software characterising the Hosting Node. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current state of the Hosting Node, e.g. started, ready, certified, down, failed. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`HasPersistentMemory <HasPersistentMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The Disk Space Capacity of the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`HasVolatileMemory <HasVolatileMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The RAM Capacity of the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`NetworkingFacet <NetworkingFacet>` | The Network ID characterising the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **HostingNode** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _VirtualMachine:
VirtualMachine
""""""""""""""
VirtualMachine (VM) is the typical resource represented in a cloud infrastructure. It is an emulation of a physical computer which appears to the running operative system as real hardware. A VM provides operative system functionality and potentially allows to install any software designed for the running operative system.
.. table:: **VirtualMachine** ``extends`` **Service**
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+==================================================+==============+==========================================+=====================================================================================================================================================================================+
| **Facets** |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`CPUFacet <CPUFacet>` | The CPU equipping the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`EventFacet <EventFacet>` | Every event characterizing the life cycle of the Virtual Machine, e.g. the activation time. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SoftwareFacet <SoftwareFacet>` | Any Software characterising the Virtual Machine. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current state of the Virtual Machine, e.g. started, ready, down, unreachable. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`HasPersistentMemory <HasPersistentMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The Disk Space Capacity of the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`HasVolatileMemory <HasVolatileMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The RAM Capacity of the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`NetworkingFacet <NetworkingFacet>` | The Network ID characterising the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **VirtualMachine** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _VirtualService:
VirtualService
""""""""""""""
VirtualService is an abstract service (non-physically existing service) worth being represented as an existing Service for management purposes. Examples of usage include cases where classes or set of services have to be managed like an existing unit. This resource is essential from infrastructure management point of view because it allows easily share a pool of services across VREs as a single unit. VirtualService mainly consist of a service definition which uses relations to :ref:`ConfigurationTemplate <ConfigurationTemplate>`, :ref:`EService <EService>`, :ref:`Software <Software>` (using :ref:`Demands <Demands>` relation) to properly support the sharing across VREs. The correct sharing is feasible thanks to the :ref:`PropagationConstraint <PropagationConstraint>` of the model. The IS provides only the support for resource sharing as a bundle. Instead, the actions required to deploy a :ref:`Software <Software>` are a responsibility of the service invoking the sharing operation. This resource emerged thank to the experience maturated with gCube IS V.1 (gCore Based IS) where this resource was represented as a Generic Resource containing the list of the resources id forming the bundle which often lead to inconsistency.
.. table:: **VirtualService** ``extends`` **Service**
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+========================================+========================================+==============+======================================+=============+
| **Facets** |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| :ref:`VirtualService <VirtualService>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..n | :ref:`SoftwareFacet <SoftwareFacet>` | |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| **Resource Relations** |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| :ref:`VirtualService <VirtualService>` | :ref:`Demands <Demands>` | 0..n | :ref:`Software <Software>` | |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
The **VirtualService** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Site:
Site
^^^^
Site is a resource representing the location (physical or virtual) hosting the resources associated. Site allows to identify all the services that will be affected by downtime due to a scheduled maintenance, as well as the impact on the infrastructure that an accidentalloss of connectivity could cause. This resource allows to study and define the replication scenarios or to provide an adequate redundancy level to a VRE.
.. table:: **Site** ``extends`` **GCubeResource**
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+========================================+==============+==========================================+====================================================+
| **Facets** |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`LocationFacet <LocationFacet>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`NetworkingFacet <NetworkingFacet>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The main contact for the Site. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`HasMaintainer <HasMaintainer>` | 1..n | :ref:`ContactFacet <ContactFacet>` | Contact information of the maintainer of the Site. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`HasManager <HasManager>` | 1..n | :ref:`ContactFacet <ContactFacet>` | Contact information of the Site Manager. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | The Site Identifier. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| **Resource Relations** |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`Hosts <Hosts>` | 0..n | :ref:`Service <Service>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`IsOwnedBy <IsOwnedBy>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
The **Site** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Software:
Software
^^^^^^^^
Software is an entity worth being represented for management purposes. The relation :ref:`DependsOn <DependsOn>` indicates dependencies between two Software captured for management purposes.
.. table:: **Software** ``extends`` **GCubeResource**
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================================+========================================+==============+======================================================+====================================================================================================================================================+
| **Facets** |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`CapabilityFacet <CapabilityFacet>` | |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`SoftwareFacet <SoftwareFacet>` | Apart the one connected by the IsIdentifiedBy relation (gCube coordinates) the others identify the software in other way e.g. (Maven coordinates). |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SoftwareFacet <SoftwareFacet>` | Software coordinates which identify the Software per se. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | A reference to the Software this Plugin is conceived to extend the capabilities. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | To capture the relation between a Software and its Plugins. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Enables <Enables>` | 0..n | :ref:`Software <Software>` | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService). |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`DependsOn <DependsOn>` | 0..n | :ref:`Software <Software>` | To capture any dependency between two software artifacts. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`IsConfiguredBy <IsConfiguredBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`Requires <Requires>` | 0..n | :ref:`Service <Service>` | To capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database instance. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualService <VirtualService>` | :ref:`Demands <Demands>` | 0..n | :ref:`Software <Software>` | |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
The **Software** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.
.. _Plugin:
Plugin
""""""
Collect Plugin information through the list of its facets.
.. table:: **Plugin** ``extends`` **Software**
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+================================+==============+============================+==================================================================================+
| **Facets** |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | A reference to the Software this Plugin is conceived to extend the capabilities. |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | To capture the relation between a Software and its Plugins. |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
The **Plugin** current version is 1.0.0.
Changelog:
* **1.0.0**: First Version.