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

81 KiB
Raw Blame History

Resource

GCubeResource

Marker type for any gCube Resource extended in the gCube model.

GCubeResource extends Resource
Source Relation Multiplicity Target Description
Facets
GCubeResource IsIdentifiedBy 1..1 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 (Abstract) is any entity (human or machine) playing an active role in the infrastructure. Actor has two specialisations, {@link LegalBody} which represent any legal entity, and {@link Person} which is any human playing the role of Actor. An Actor can belong to a {@link LegalBody} and this is expressed using the defined {@link BelongsTo} relation.

Actor extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Actor ConsistsOf 0..n ContactReferenceFacet
Actor HasContact 0..n ContactFacet

An Actor can have other Contact Facets which provide secondary contact information.

Actor IsIdentifiedBy 1..1 ContactFacet

An Actor has at least a Contact Facet which permit to identify the Actor per se.

Resource Relations
Dataset Involves 0..n Actor
Site IsOwnedBy 0..n Actor

The Actor current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

LegalBody

LegalBody represents any legal entity playing the role of an Actor.

LegalBody extends Actor
Source Relation Multiplicity Target Description
Facets
No specific facets usage defined for this type.
Resource Relations
Person BelongsTo 0..n LegalBody

The LegalBody current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

Person

Person represents any human playing the role of Actor.

Person extends Actor
Source Relation Multiplicity Target Description
Facets
No specific facets usage defined for this type.
Resource Relations
Person BelongsTo 0..n LegalBody

The Person current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

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.

ConfigurationTemplate extends GCubeResource
Source Relation Multiplicity Target Description
Facets
ConfigurationTemplate IsIdentifiedBy 1..1 IdentifierFacet
Resource Relations
Configuration IsDerivationOf 0..n ConfigurationTemplate
Service IsCustomizedBy 0..n ConfigurationTemplate
Service IsCustomizedBy 0..n ConfigurationTemplate A reference to any configuration characterising the Service behaviour.
Software IsConfiguredBy 0..n ConfigurationTemplate

The ConfigurationTemplate current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

Configuration

Configuration is a specialisation of {@link 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 {@link IsDerivationOf}.

Configuration extends ConfigurationTemplate
Source Relation Multiplicity Target Description
Facets
No specific facets usage defined for this type.
Resource Relations
Configuration IsDerivationOf 0..n ConfigurationTemplate

The Configuration current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

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 {@link IsCorrelatedTo} relation.

Dataset extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Dataset ConsistsOf 0..n 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.
Dataset ConsistsOf 0..n DescriptiveMetadataFacet Any descriptive information associated with the dataset, e.g. for discovery purposes.
Dataset ConsistsOf 0..n EventFacet Any 'event' characterising the lifecycle of the dataset, e.g. collection date, last collection date.
Dataset ConsistsOf 0..n LicenseFacet The licence governing dataset exploitation. The duration of license (if any) is captured by the expiry date defined in the consistsOf relation.
Dataset ConsistsOf 0..n ProvenanceFacet Any provenance record associated with the dataset.
Dataset ConsistsOf 0..n SubjectFacet Any subject/tag associated with the dataset for descriptive and discovery purposes.
Dataset HasContact 1..n ContactFacet The contact information of the entity responsible for the dataset.
Dataset HasContributor 0..n ContactFacet The contact information on contributors supporting the creation and development of the Dataset.
Dataset HasCoverage 1..n CoverageFacet Any coverage related information (e.g. topic, species) characterising the content of the dataset.
Dataset HasCreator 0..n ContactFacet

The contact information of the creator of the Dataset.

Dataset HasCurator 0..n ContactFacet

The contact information of the entity responsible for the curation of the dataset.

Dataset HasMaintainer 0..n ContactFacet The contact information of the entity responsible for the maintenance of the dataset.
Dataset HasOwner 0..n ContactFacet The contact information of the entity having the ownership of the dataset.
Dataset HasSpatialCoverage 0..n CoverageFacet Any geo-spatial coverage information characterising the content of the dataset, e.g. the area covered by the dataset.
Dataset HasTemporalCoverage 0..n CoverageFacet Any temporal coverage information characterising the content of the dataset, e.g. the time-span covered by the dataset.
Dataset IsIdentifiedBy 1..1 IdentifierFacet The set of Identifiers associated with the Dataset instance.
Resource Relations
ConcreteDataset IsPartOf 0..n Dataset The reference to the 'incarnations'/'manifestations' contributing to a dataset.
Dataset Involves 0..n Actor
Dataset IsCompliantWith 0..n Schema Any schema characterising the content of the dataset, e.g. the schema describing the 'columns' of a CSV-based dataset.
Dataset IsCorrelatedTo 0..n Dataset
Service Manages 0..n Dataset A reference to any Dataset resource managed by the Service instance.
Service Manages 0..n 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 is any incarnation/manifestation of a dataset or part of it. The relation {@link IsPartOf} is used when a ConcreteDataset is part of a {@link Dataset}.

ConcreteDataset extends Dataset
Source Relation Multiplicity Target Description
Facets
ConcreteDataset ConsistsOf 1..n 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.
ConcreteDataset HasMaintainer 1..n ContactFacet The contact information of the entity responsible for the maintenance of the concrete dataset
Resource Relations
ConcreteDataset IsPartOf 0..n 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 is any reference schema used to specify compliant values. Examples include controlled vocabularies, ontologies, and others. This resource is mainly used by {@link Dataset} to evidence that is compliant with a Schema by using {@link IsCompliantWith} relation.

Schema extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Schema ConsistsOf 0..n DescriptiveMetadataFacet
Schema ConsistsOf 0..n SubjectFacet
Schema HasContact 1..n ContactFacet
Schema IsIdentifiedBy 1..1 SchemaFacet
Resource Relations
Dataset IsCompliantWith 0..n 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 (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 {@link EService}.Giving that Service is abstract no {@link IsIdentifiedBy} association with a facet is provided which in turns is responsibility of the specialisation.

Service extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Service ConsistsOf 0..n CapabilityFacet Any facility supported/offered by the Service.
Service ConsistsOf 0..n DescriptiveMetadataFacet Any descriptive information associated with the service, e.g. for discovery purposes.
Service ConsistsOf 0..n SubjectFacet Any subject/tag associated with the service for descriptive, cataloguing and discovery purposes.
Resource Relations
Service Activates 0..n 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
Service CallsFor 0..n Service A reference to the Services needed by the target instance to work.
Service Enables 0..n Software A reference to any Software the Service is enabling (i.e. the Software is running throught the EService).
Service IsCustomizedBy 0..n ConfigurationTemplate
Service IsCustomizedBy 0..n ConfigurationTemplate A reference to any configuration characterising the Service behaviour.
Service Manages 0..n Dataset A reference to any Dataset resource managed by the Service instance.
Service Manages 0..n 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.
Service Requires 0..n 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.
Site Hosts 0..n Service
Software Requires 0..n 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 is any running service that is registered in the infrastructure and made available by an access point.

EService extends Service
Source Relation Multiplicity Target Description
Facets
EService ConsistsOf 1..n AccessPointFacet Identify the endpoints of the EService.
EService ConsistsOf 1..n EventFacet Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime.
EService ConsistsOf 0..n LicenseFacet The specific terms of use governing the exploitation of the EService.
EService ConsistsOf 0..n SoftwareFacet Software available in the EService environment that characterizes the specific EService instance.
EService ConsistsOf 1..1 StateFacet The current status of the EService, e.g. STARTED, ready, down, failed.
EService IsIdentifiedBy 1..1 SoftwareFacet The main software enabling the EService capabilities.
Resource Relations
EService Discovers 0..n EService A reference to any other EService, the EService instance is discovering through query on IS.
EService Uses 0..n 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 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.

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

The HostingNode represent a container capable of managing the lifecycle of an electronic service, i.e., being capable to host and operate an {@link 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 {@link VirtualMachine}. In particular, facets representing memory, CPU and networking interface are used to describe the HostingNode when the {@link 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 {@link VirtualMachine}.

HostingNode extends Service
Source Relation Multiplicity Target Description
Facets
HostingNode ConsistsOf 1..n CPUFacet The CPU equipping the Hosting Node.
HostingNode ConsistsOf 1..n EventFacet Every event characterizing the life cycle of the Hosting Node, e.g. the activation time.
HostingNode ConsistsOf 0..n SimplePropertyFacet Any <key,value> pair property worth associating with the Hosting Node, e.g. Environment Variables
HostingNode ConsistsOf 0..n 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

HostingNode ConsistsOf 1..1 StateFacet The current state of the Hosting Node, e.g. started, ready, certified, down, failed.
HostingNode HasPersistentMemory 1..n MemoryFacet The Disk Space Capacity of the Hosting Node.
HostingNode HasVolatileMemory 1..n MemoryFacet The RAM Capacity of the Hosting Node.
HostingNode IsIdentifiedBy 1..1 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 (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.

VirtualMachine extends Service
Source Relation Multiplicity Target Description
Facets
VirtualMachine ConsistsOf 1..n CPUFacet The CPU equipping the Virtual Machine.
VirtualMachine ConsistsOf 1..n EventFacet Every event characterizing the life cycle of the Virtual Machine, e.g. the activation time.
VirtualMachine ConsistsOf 0..n 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

VirtualMachine ConsistsOf 1..1 StateFacet The current state of the Virtual Machine, e.g. started, ready, down, unreachable.
VirtualMachine HasPersistentMemory 1..n MemoryFacet The Disk Space Capacity of the Virtual Machine.
VirtualMachine HasVolatileMemory 1..n MemoryFacet The RAM Capacity of the Virtual Machine.
VirtualMachine IsIdentifiedBy 1..1 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 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 {@link ConfigurationTemplate}, {@link EService}, {@link Software} (using {@link Demands} relation) to properly support the sharing across VREs. The correct sharing is feasible thanks to the {@link PropagationConstraint} of the model. The IS provides only the support for resource sharing as a bundle. Instead, the actions required to deploy a {@link 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.

VirtualService extends Service
Source Relation Multiplicity Target Description
Facets
VirtualService IsIdentifiedBy 1..n SoftwareFacet
Resource Relations
VirtualService Demands 0..n Software

The VirtualService current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

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.

Site extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Site ConsistsOf 1..n LocationFacet
Site ConsistsOf 1..n NetworkingFacet
Site HasContact 1..n ContactFacet The main contact for the Site.
Site HasMaintainer 1..n ContactFacet Contact information of the maintainer of the Site.
Site HasManager 1..n ContactFacet Contact information of the Site Manager.
Site IsIdentifiedBy 1..1 IdentifierFacet The Site Identifier.
Resource Relations
Site Hosts 0..n Service
Site IsOwnedBy 0..n Actor

The Site current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

Software

Software is an entity worth being represented for management purposes. The relation {@link DependsOn} indicates dependencies between two Software captured for management purposes.

Software extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Software ConsistsOf 0..n CapabilityFacet
Software ConsistsOf 1..n SoftwareFacet Apart the one connected by the IsIdentifiedBy relation (gCube coordinates) the others identify the software in other way e.g. (Maven coordinates).
Software IsIdentifiedBy 1..1 SoftwareFacet Software coordinates which identify the Software per se.
Resource Relations
Plugin IsPluginOf 0..n Software A reference to the Software this Plugin is conceived to extend the capabilities.
Plugin IsPluginOf 0..n Software To capture the relation between a Software and its Plugins.
Service Enables 0..n Software A reference to any Software the Service is enabling (i.e. the Software is running throught the EService).
Software DependsOn 0..n Software To capture any dependency between two software artifacts.
Software IsConfiguredBy 0..n ConfigurationTemplate
Software Requires 0..n Service To capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database instance.
VirtualService Demands 0..n Software

The Software current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

Plugin

Collect Plugin information through the list of its facets.

Plugin extends Software
Source Relation Multiplicity Target Description
Facets
No specific facets usage defined for this type.
Resource Relations
Plugin IsPluginOf 0..n Software A reference to the Software this Plugin is conceived to extend the capabilities.
Plugin IsPluginOf 0..n 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.