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

102 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 <GCubeResource> IsIdentifiedBy <IsIdentifiedBy> 1..1 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 (Abstract) is any entity (human or machine) playing an active role in the infrastructure. Actor has two specialisations, LegalBody <LegalBody> which represent any legal entity, and Person <Person> which is any human playing the role of Actor. An Actor can belong to a LegalBody <LegalBody> and this is expressed using the defined BelongsTo <BelongsTo> relation.

Actor extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Actor <Actor> ConsistsOf <ConsistsOf> 0..n ContactReferenceFacet <ContactReferenceFacet>
Actor <Actor> IsIdentifiedBy <IsIdentifiedBy> 1..1 ContactFacet <ContactFacet>

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

Resource Relations
Dataset <Dataset> Involves <Involves> 0..n Actor <Actor>
Site <Site> IsOwnedBy <IsOwnedBy> 0..n Actor <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 <Person> BelongsTo <BelongsTo> 0..n LegalBody <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 <Person> BelongsTo <BelongsTo> 0..n LegalBody <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 <ConfigurationTemplate> ConsistsOf <ConsistsOf> 0..n TemplateFacet <TemplateFacet>
ConfigurationTemplate <ConfigurationTemplate> IsIdentifiedBy <IsIdentifiedBy> 1..1 IdentifierFacet <IdentifierFacet>
Resource Relations
Configuration <Configuration> IsDerivationOf <IsDerivationOf> 0..n ConfigurationTemplate <ConfigurationTemplate>
Service <Service> IsCustomizedBy <IsCustomizedBy> 0..n ConfigurationTemplate <ConfigurationTemplate>
Service <Service> IsCustomizedBy <IsCustomizedBy> 0..n ConfigurationTemplate <ConfigurationTemplate> A reference to any configuration characterising the Service behaviour.
Software <Software> IsConfiguredBy <IsConfiguredBy> 0..n ConfigurationTemplate <ConfigurationTemplate>

The ConfigurationTemplate current version is 1.0.0.

Changelog:

  • 1.0.0: First Version.

Configuration

Configuration is a specialisation of 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 IsDerivationOf <IsDerivationOf>.

Configuration extends ConfigurationTemplate
Source Relation Multiplicity Target Description
Facets
No specific facets usage defined for this type.
Resource Relations
Configuration <Configuration> IsDerivationOf <IsDerivationOf> 0..n ConfigurationTemplate <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 IsCorrelatedTo <IsCorrelatedTo> relation.

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

The contact information of the creator of the Dataset.

Dataset <Dataset> HasCurator <HasCurator> 0..n ContactFacet <ContactFacet>

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

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

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

Schema extends GCubeResource
Source Relation Multiplicity Target Description
Facets
Schema <Schema> ConsistsOf <ConsistsOf> 0..n DescriptiveMetadataFacet <DescriptiveMetadataFacet>
Schema <Schema> ConsistsOf <ConsistsOf> 0..n SubjectFacet <SubjectFacet>
Schema <Schema> HasContact <HasContact> 1..n ContactFacet <ContactFacet>
Schema <Schema> IsIdentifiedBy <IsIdentifiedBy> 1..1 SchemaFacet <SchemaFacet>
Resource Relations
Dataset <Dataset> IsCompliantWith <IsCompliantWith> 0..n 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 (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 EService <EService>.Giving that Service is abstract no IsIdentifiedBy <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 <Service> ConsistsOf <ConsistsOf> 0..n CapabilityFacet <CapabilityFacet> Any facility supported/offered by the Service.
Service <Service> ConsistsOf <ConsistsOf> 0..n DescriptiveMetadataFacet <DescriptiveMetadataFacet> Any descriptive information associated with the service, e.g. for discovery purposes.
Service <Service> ConsistsOf <ConsistsOf> 0..n SubjectFacet <SubjectFacet> Any subject/tag associated with the service for descriptive, cataloguing and discovery purposes.
Resource Relations
Service <Service> Activates <Activates> 0..n 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
Service <Service> CallsFor <CallsFor> 0..n Service <Service> A reference to the Services needed by the target instance to work.
Service <Service> Enables <Enables> 0..n Software <Software> A reference to any Software the Service is enabling (i.e. the Software is running throught the EService).
Service <Service> IsCustomizedBy <IsCustomizedBy> 0..n ConfigurationTemplate <ConfigurationTemplate>
Service <Service> IsCustomizedBy <IsCustomizedBy> 0..n ConfigurationTemplate <ConfigurationTemplate> A reference to any configuration characterising the Service behaviour.
Service <Service> Manages <Manages> 0..n Dataset <Dataset> A reference to any Dataset resource managed by the Service instance.
Service <Service> Manages <Manages> 0..n 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.
Service <Service> Requires <Requires> 0..n 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.
Site <Site> Hosts <Hosts> 0..n Service <Service>
Software <Software> Requires <Requires> 0..n 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 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 <EService> ConsistsOf <ConsistsOf> 1..n AccessPointFacet <AccessPointFacet> Identify the endpoints of the EService.
EService <EService> ConsistsOf <ConsistsOf> 1..n EventFacet <EventFacet> Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime.
EService <EService> ConsistsOf <ConsistsOf> 0..n LicenseFacet <LicenseFacet> The specific terms of use governing the exploitation of the EService.
EService <EService> ConsistsOf <ConsistsOf> 0..n SoftwareFacet <SoftwareFacet> Software available in the EService environment that characterizes the specific EService instance.
EService <EService> ConsistsOf <ConsistsOf> 1..1 StateFacet <StateFacet> The current status of the EService, e.g. STARTED, ready, down, failed.
EService <EService> IsIdentifiedBy <IsIdentifiedBy> 1..1 SoftwareFacet <SoftwareFacet> The main software enabling the EService capabilities.
Resource Relations
EService <EService> Discovers <Discovers> 0..n EService <EService> A reference to any other EService, the EService instance is discovering through query on IS.
EService <EService> Uses <Uses> 0..n 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 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 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 VirtualMachine <VirtualMachine>. In particular, facets representing memory, CPU and networking interface are used to describe the HostingNode when the 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 VirtualMachine <VirtualMachine>.

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

HostingNode <HostingNode> ConsistsOf <ConsistsOf> 1..1 StateFacet <StateFacet> The current state of the Hosting Node, e.g. started, ready, certified, down, failed.
HostingNode <HostingNode> HasPersistentMemory <HasPersistentMemory> 1..n MemoryFacet <MemoryFacet> The Disk Space Capacity of the Hosting Node.
HostingNode <HostingNode> HasVolatileMemory <HasVolatileMemory> 1..n MemoryFacet <MemoryFacet> The RAM Capacity of the Hosting Node.
HostingNode <HostingNode> IsIdentifiedBy <IsIdentifiedBy> 1..1 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 (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 <VirtualMachine> ConsistsOf <ConsistsOf> 1..n CPUFacet <CPUFacet> The CPU equipping the Virtual Machine.
VirtualMachine <VirtualMachine> ConsistsOf <ConsistsOf> 1..n EventFacet <EventFacet> Every event characterizing the life cycle of the Virtual Machine, e.g. the activation time.
VirtualMachine <VirtualMachine> ConsistsOf <ConsistsOf> 0..n 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

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

VirtualService extends Service
Source Relation Multiplicity Target Description
Facets
VirtualService <VirtualService> IsIdentifiedBy <IsIdentifiedBy> 1..n SoftwareFacet <SoftwareFacet>
Resource Relations
VirtualService <VirtualService> Demands <Demands> 0..n Software <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 <Site> ConsistsOf <ConsistsOf> 1..n LocationFacet <LocationFacet>
Site <Site> ConsistsOf <ConsistsOf> 1..n NetworkingFacet <NetworkingFacet>
Site <Site> HasContact <HasContact> 1..n ContactFacet <ContactFacet> The main contact for the Site.
Site <Site> HasMaintainer <HasMaintainer> 1..n ContactFacet <ContactFacet> Contact information of the maintainer of the Site.
Site <Site> HasManager <HasManager> 1..n ContactFacet <ContactFacet> Contact information of the Site Manager.
Site <Site> IsIdentifiedBy <IsIdentifiedBy> 1..1 IdentifierFacet <IdentifierFacet> The Site Identifier.
Resource Relations
Site <Site> Hosts <Hosts> 0..n Service <Service>
Site <Site> IsOwnedBy <IsOwnedBy> 0..n Actor <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 DependsOn <DependsOn> indicates dependencies between two Software captured for management purposes.

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