Facet Based Resource Model

From Gcube Wiki
Revision as of 15:15, 18 December 2020 by Luca.frosini (Talk | contribs) (Header)

Jump to: navigation, search

Contents

Disclaimer

This Model is part of research conducted in the context of a PhD. This wiki page represents just a partial view of the full rationale of the research. To have a complete overview of the rationale of the model, please refer to the PhD thesis which is publicly available at:

https://etd.adm.unipi.it/t/etd-05102019-114151/

https://openportal.isti.cnr.it/doc?id=people______::470484e51fcb9e307a418c800efc44c8


If you need to refer to such work you can cite the PhD Thesis.

BibText:

@phdthesis{frosini2019transactional,
  title={Transactional REST Information System for Federated Research Infrastructures enabling Virtual Research Environments},
  author={Frosini, Luca},
  year={2019},
  school={UNIVERSIT{\`A} DI PISA}
}

An previous paper about this work is:

BibText:

@article{frosini2018facet,
  title={A Facet-based Open and Extensible Resource Model for Research Data Infrastructures.},
  author={Frosini, Luca and Pagano, Pasquale},
  journal={Grey Journal (TGJ)},
  volume={14},
  number={2},
  year={2018}
}

IS Model

The Information System Model (henceforth IS Model) is a graph model with Entities as nodes and Relations as edges.

IS Model is used by Information System Resource Registry

  • Two typologies of entities are envisaged:
    • Resources, i.e. entities representing a description of "thing" to be managed;
      • Every Resource is described by a number of Facets.
    • Facets, i.e. entities contributing to "build" a description of a Resource. Every facet, once attached to a Resource profile captures a certain aspect / characterization of the resource;
      • Every facet is characterised by a number of properties;
  • Each entity and relation
    • has an header automatically generated for the sake of identification and provenance of the specific information;
    • can be specialized
      • A number of specializations are identified below. Such specializations are managed by the gCube Core services, i.e. Core services builds upon these specializations to realize its management tasks;
      • Other specializations can be defined by clients, the system make it possible to store these additional typologies of relations and facets and to discover them.
  • Facet and Relation instances can have additional properties which are not defined in the schema (henceforth schema-mixed mode).
  • On relations:
    • Any relation has a direction, i.e. a "source" (out bound of the relation) and a "target" (in bound of the relation). Anyway, the relation can be also navigated in the opposite direction;
    • It is not permitted to define a Relation having a Facet as "source". In other words:
      • It is not permitted to define a Relation connecting a Facet with another one;
      • It is not permitted to define a Relation connecting a Facet with a Resource (as target);
    • A Facet instance can be linked (by consistsOf or any specialization of it) from different Resources.

We derived the term Facet directly from the dictionary definition. Merriam Webster Dictionary defines facet as “any of the definable aspects that make up a subject (as of contemplation) or an object (as of consideration)”[1]. The Free Dictionary defines a facet as “One of numerous aspects, as of a subject” [2].

Is-model.png

Is-model-er.png

Properties

Any Property defined in the schema is characterised by:

  • Name : Property Name
  • Type : The Type of the Property (e.g. String, Integer, ...). It can be a Basic Type or a Derived Type or a Complex Type
  • Description : The description of the Property. default=null.
  • Mandatory (M): Indicate if the Property is mandatory. default=false.
  • ReadOnly (RO): The Property cannot change its value. default=false.
  • NotNull (NN): Whether the property must assume a value diverse from 'null' or not. default=false
  • Max (Max): default=null
  • Min (Min): default=null
  • Regex (Reg)): A Regular Expression to validate the property value, default=null. A good online tool for regex is avalable at https://regex101.com/

Basic Types

Type Java type Description
Boolean java.lang.Boolean or boolean Handles only the values True or False.
Integer java.lang.Integer or int or java.math.BigInteger 32-bit signed Integers.
Short java.lang.Short or short Small 16-bit signed integers.
Long java.lang.Long or long Big 64-bit signed integers.
Float java.lang.Float or float Decimal numbers.
Double java.lang.Double or double Decimal numbers with high precision.
Date java.util.Date Any date with the precision up to milliseconds.
String java.lang.String Any string as alphanumeric sequence of chars.
Property ? extends org.gcube.informationsystem.model.reference.properties.Property This is an Object contained inside the owner Entity and has no Header. It is reachable only by navigating the owner Entity.
Property list List<? extends org.gcube.informationsystem.model.reference.properties.Property> List of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity.
Property set Set<? org.gcube.informationsystem.model.reference.properties.Property> Set (no duplicates) of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity.
Property map Map<String, ? extends org.gcube.informationsystem.model.reference.properties.Propertyd> Map of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity.
Byte java.lang.Byte or byte Single byte. useful to store small 8-bit signed integers.
Binary java.lang.Byte[] or byte[] Can contain any value as byte array.

Derived Types

The following are obtained using a String as real type and adding a validation regex.

Type Java type Description
Enum java.lang.Enum or enum by default it is represented using the String representation of the Enum. So that the primitive type used will be String. The enumeration is checked by setting Regexpr property. The Regular Expression is auto-generated and it will be something like ^(FIRST-ENUM-STRING_REPRESENTATION|SECOND-ENUM-STRING_REPRESENTATION|...|LAST_ENUM_STRING_REPRESENTATION)$.

Otherwise (if indicated using an annotation), it can be represented using the Integer value of the Enum. So that the primitive type used will be Integer. The enumeration is checked using Max and Min properties.

UUID java.util.UUID String representation of the UUID. The check is obtained using the regular expression ^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}$
URL java.net.URL String representation of the URL. No check actually.
URI java.net.URI String representation of the URI. No check actually.
TypeVersion org.gcube.informationsystem.utils.TypeVersion A type representing and validating a version in the following format X.X.X Major(Integer).Minor(Integer).Revision(Integer) (e.g 1.0.0, 2.3.0, 2.0.1). The check is obtained using the regular expression ^[1-9][0-9]{0,}\.(0|([1-9][0-9]{0,}))\.(0|([1-9][0-9]{0,}))$.

Complex Types

Any property defined by composing basic types derives from Property type.

Property

It does not define any field. It is just used as a base class.

Header

Every Entity and Relation has an Header automatically created/updated by the System.

Header extends Property
Name Type Attributes Description
uuid UUID Mandatory=true
NotNull=true
ReadOnly=true
This UUID is be used to identify the Entity or the Relation univocally.
creator String Mandatory=true
NotNull=true
ReadOnly=true
The user that created the Entity or the Relation. It is initialized at creation time.
modifiedBy String Mandatory=true
NotNull=true
The user that made the last update to the Entity or the Relation. At creation time, it assumes the same value of creator.
creationTime Date Mandatory=true
NotNull=true
ReadOnly=true
Creation time. It represents the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970, UTC.
lastUpdateTime Date Mandatory=true
NotNull=true
Last Update time. At creation time it assumes the same value of creationTime. It represents the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970, UTC.


The Java Interface declaration for such a type is available at:

https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/properties/Header.java

PropagationConstraint

At any time entities and relations can be added or removed to/from a context or deleted. The PropagationConstraint property contained in each relation is a predefined Property type which indicates the behaviour to be held on a target entity when an event related to a context occurs in the source resource or directly to the relation.

PropagationConstraint extends Property
Name Type Attributes Description
remove Enum Regex=(cascadeWhenOrphan|cascade|keep) It indicates the behaviour to implement for the target Entity when a 'remove' action is performed on the source Resource. Remove actions are: (i) the operation of removing an instance from a context; (ii) the operation of deleting an instance (it has an impact on all contexts).
add Enum Regex=(propagate|unpropagate) It indicates the behaviour to implement for the target Entity when an 'add' action is performed on the source Resource. Add action is the operation of adding an instance to a context.


Remove values;

  • cascadeWhenOrphan: When a remove action is performed on the source Entity of the relation, or directly on the relation, then the same remove action apart on the relation is performed to the target entity if it has no other incoming relations.
  • cascade: When a remove action is performed on the source Entity of the relation, or directly on the relation, then the same remove action is performed on the relation and its target entity.
  • keep: When a remove action is performed on the source Entity of the relation, or directly on the relation, then the same remove action is performed on relation but never to the target entity.


Add values;

  • propagate: When an 'add' action is performed on the source Entity of the relation, or directly on the relation, then the same add action is performed on the relation and its target Entity.
  • unpropagate: When an 'add' action is performed on the source Entity of the relation, is performed on source relation only. Trying to perform an 'add' action on the relation has no effects.


Any Relation contains such a property. If the values are not specified at creation time the system initialize it with the following rules:


The Java Interface declaration for such a type is available at:

Encrypted
Encrypted extends Property
Name Type Attributes Description
value String The encrypted value. The resource registry store safely the value. When received the value is decrypted using the key of current context and store the value safely. When the value is read, the resource-registry retrieve the value and encrypt it with the key of current context.

The Java Interface declaration for such a type is available at:

Entity

Resource

Abstract Resource
Scope: This entity is conceived to describe every "main thing" to be registered and discovered by the Information System.
Source Relation Multiplicity Target Description
Facets
Resource isIdentifiedBy 1..n Facet Any Resource has at least one Facet which in some way allow to identify the Resource per se.
Resource consistsOf 0..n Facet Any Resource consist of zero or more Facets which describes the different aspects of the facet.
Relations
Resource isRelatedTo 0..n Resource Any Resource can be related to any other resource.

Facet

Facets are collections of attributes conceived to capture a certain feature / aspect of the Resource they are associated with.

Every Facet has:

  • An Header automatically generated to capture identification- and provenace-related aspects of the facet once it is instantiated;
  • Zero or more properties. Besides the per-facet envisaged properties, clients can add new ones.

Relation

Every relation has:

isRelatedTo

isRelatedTo
Source Relation Multiplicity Target Description
Resource isRelatedTo 0..n Resource A relation linking any two Resources.

consistsOf

isIdentifiedBy
Source Relation Multiplicity Target Description
Resource consistsOf 1..n Facet A relation connecting each Resource with one of the Facet characterizing it.

Internal Entity and Relation

For internal use only are defined the following entity and relation:

Context

Model a Context (aka scope) in the same Application Domain.

Context
Goal: Models a Context (aka scope).
Properties
Name Type Attributes Description
name String Mandatory=true
NotNull=true
The name of the context. Two Context with the same name can exist but they cannot have the same parent. In other words, a Context cannot have two children with the same name.
Known Usage
Source Relation Multiplicity Target Description
Context isParentOf 0..n Context ...

isParentOf

This relation has no propagation constraint.

Source Relation Multiplicity Target Description
Context isParentOf 0..n Context ...

Best practices and guidelines

  • On Facet instances "reuse" across Resource Profiles:
    • This can be guaranteed automatically by the system, if and just in the case the system wants to avoid duplication of information. It is based on a configuration policy;
    • This MUST be done only when a change in a facet instance MUST affect a change in all Resources connected to such a Facet.

gCube Model

gCube Model is a resource model built on top of IS Model which captures the different aspects of the resources and their relations playing significant roles in a research infrastructure empowered by gCube.


Overview of gCube Model Resources and (isRelatedTo) Relations

Gcube-reources-and-isrelatedto-relations.png

gCube Model Properties

GCubeProperty

GCubeProperty extends Property
Goal: Marker type for any properties extended in the gCube Model.
Name Type Attributes Description
This type does not define any additional attributes.

The Java Interface declaration for such a type is available at:

https://code-repo.d4science.org/gCubeSystem/gcube-model/src/branch/master/src/main/java/org/gcube/resourcemanagement/model/reference/properties/GCubeProperty.java

ValueSchema

This type aims at exposing a value which can be automatically managed by any client with no knowledge of its format.

ValueSchema extends GCubeProperty
Name Type Attributes Description
value String Mandatory=true
NotNull=true
The value which schema is available at the URI provided in the schema property
schema URI Mandatory=true
NotNull=true
An URI containing a schema used to validate/interpret the content of the value. It is only an informative field. The validation is charge of the client.

The client can retrieve the schema at the provided URI, i.e., schema property, and use its content to understand/validate/manipulate the information contained in the value property. The client must have the capability to understand the semantics of content retrieved at the URI endpoint. Examples of application of such type are eXtensible Markup Language (XML) values which can be validated by a Document Type Definition (DTD) or XML Schema Definition (XSD).

The Java Interface declaration for such a type is available at:

https://code-repo.d4science.org/gCubeSystem/gcube-model/src/branch/master/src/main/java/org/gcube/resourcemanagement/model/reference/properties/ValueSchema.java

AccessPolicy

AccessPolicy extends Property
Name Type Attributes Description
policy Property (i.e. ValueSchema)
note String

Facets

Early ideas and thinking on facets were documented at 2nd Generation Resource Model : Facets


Access Point Facet

Access Point Facet extends Facet
Goal: This facet captures information on an 'access point' of a resource, i.e., any web-based endpoint to programmatically interact with the resource via a known protocol. For example, it is used to define the network endpoint to contact the service. The endpoint can expose a well-known high-level protocol. For example, it is used to define the network endpoint to contact the service. The endpoint can expose a well-known high-level protocol.
Properties
Name Type Attributes Description
entryName String A distinguishing string to be used by clients to identify the access point of interest.
endpoint URI Mandatory=true
ReadOnly=true
NotNull=true
The URI which characterises the specific endpoint instance.
protocol String The high-level protocol used by the access point. The String could contain the version if needed. e.g., Web Map Service (WMS) and not HyperText Transfer Protocol (HTTP) which is already contained in the URI.
description String A human oriented text accompanying the access point.
authorization Property Contains authorisation information. e.g., a token, the couple username:password, etc.
Known Usage
Source Relation Multiplicity Target Description
Dataset consistsOf 0..n Access Point Facet Each access point captures a possible web-based method for accessing the dataset. Any embargo-related information can be captured by the access policy property of the consistsOf.
Concrete Dataset consistsOf 1..n Access Point Facet Each access point captures a possible web-based method for accessing the dataset. Any embargo-related information can be captured by the access policy property of the consistsOf.
EService consistsOf 1..n Access Point Facet Each access point captures a possible web-based method for accessing the service.
Software consistsOf 1..n Access Point Facet Each access point captures a possible web-based method for accessing a software manifestation. Examples are links to maven artifact on nexus, javadoc, wiki, svn, etc.

Capability Facet

Capability Facet extends Facet
Goal: This facet captures a defined facility for performing a specified task supported by a given Service or Software;
Properties
Name Type Attributes Description
name String Mandatory=true
ReadOnly=true
NotNull=true
The distinguishing name of the capability.
description String A human oriented description of the capability.
qualifier String A string used to specialize the capability.
Known Usage
Source Relation Multiplicity Target Description
Service hasCapability 0..n Capability Facet To capture one of the facilities supported by the Service.
Software hasCapability 0..n Capability Facet To capture one of the facilities supported by the Software.

Contact Facet

Contact Facet extends Facet
Goal: This facet captures information on a point of contact for the resource, i.e. a person or a department serving as the coordinator or focal point of information concerning the resource. As you can see in the known usages part, there are diverse points of contact that can be associated to a given resource and the role of the association is captured by using a specific relation.
Properties
Name Type Attributes Description
title String Mandatory=false A name describing the profession or marital status of the point of contact. E.g. Dr, Mrs, Mr.
name String Mandatory=true
NotNull=true
First Name
middleName String Mandatory=false Middle Name
surname String Mandatory=true
NotNull=true
Surname
eMail String Mandatory=true
NotNull=true
Regex=^[a-z0-9._%+-]{1,128}@[a-z0-9.-]{1,128}
A restricted range of RFC‑822 compliant email address. Please note that just domain based email address are accepted (not IP based). Please also note that new TLD are also accepted (e.g luca@google without .com which is a valid email address). You can test here the provided regular expression with your input email address https://regex101.com/ before open a ticket.
Known Usage
Source Relation Multiplicity Target Description
Actor isIdentifiedBy 1..n Contact Facet An Actor must have at least a primary point of contact which will be used for identification purposes.
Actor hasContact 0..n Contact Facet An Actor can have an arbitrary number of points of contact which provide secondary contact information.
Legal Body isIdentifiedBy 1..n Contact Facet A Legal Body must have at least a point of contact which permit to identify the Legal Body per se.
Person isIdentifiedBy 1..n Contact Facet A Person must have at least a point of contact which permit to identify the Person per se.
Dataset hasContact 1..n Contact Facet A Dataset must have at least a point of contact to be used to acquire information on it.
Dataset hasContributor 0..n Contact Facet One of the dataset contributors.
Dataset hasCreator 0..n Contact Facet One of the dataset creators.
Dataset hasCurator 0..n Contact Facet One of the dataset curators.
Dataset hasMaintainer 0..n Contact Facet One of the dataset maintainers.
Dataset hasOwner 0..n Contact Facet One of the dataset owners.
Concrete Dataset hasMaintainer 1..n Contact Facet A Concrete Dataset must have at least a Maintainer.
Schema hasContact 1..n Contact Facet A Site must have at least a point of contact to be used to acquire information on it.
Site hasContact 1..n Contact Facet A Site must have at least a point of contact to be used to acquire information on it.
Site hasMaintainer 1..n Contact Facet A Site must have at least a Maintainer.
Site hasManager 1..n Contact Facet A Site must have at least a Manager.

Contact Reference Facet

Contact Reference Facet extends Facet
Goal: This facet captures information on the primary and authoritative contact for the resource it is associated with.
Properties
Name Type Attributes Description.
website URL The main website.
address String A physical address.
phoneNumber String A phone number.
Known Usage
Source Relation Multiplicity Target Description
Actor consistsOf 0..n Contact Reference Facet The primary contact information for the Actor it is attached to.
Legal Body consistsOf 0..n Contact Reference Facet The primary contact information for the Legal Body it is attached to.
Person consistsOf 0..n Contact Reference Facet The primary contact information for the Person it is attached to.

Coverage Facet

Coverage Facet extends Facet
Goal: This facet captures information on the extent of the Resource, i.e. any aspect aiming at capturing an indicator of the amount/area the resource covers be it a geospatial area, a temporal area, or any other "area".
Properties
Name Type Attributes Description
value String Mandatory=true
NotNull=true
The amount indicating the "area" covered by the dataset according to the reference schema.
schema URI Mandatory=true
NotNull=true
The reference schema to be used to interpret the value.
Known Usage
Source Relation Multiplicity Target Description
Dataset hasCoverage 1..n Coverage Facet ...
Dataset hasTemporalCoverage 0..n Coverage Facet Any temporal coverage characterising the dataset content.
Dataset hasSpatialCoverage 0..n Coverage Facet Any spatial coverage characterising the dataset content.

CPU Facet

CPU Facet extends Facet
Goal: This facet captures information on the Central Processing Unit of the resource it is associated.
Properties
Name Type Attributes Description
model String Mandatory=true
NotNull=true
CPU Model.
vendor String Mandatory=true
NotNull=true
CPU Vendor.
clockSpeed String Mandatory=true
NotNull=true
Clock Speed with the unit.
Known Usage
Source Relation Multiplicity Target Description
Hosting Node consistsOf 1..n CPU Facet ...

Descriptive Metadata Facet

Descriptive Metadata Facet extends Facet
Goal: This facet captures information on descriptive metadata to be associated with the resource.
Properties
Name Type Attributes Description
value String Mandatory=true
NotNull=true
A metadata record representing the descriptive metadata and encoded according to the reference schema;
schema URI Mandatory=true
NotNull=true
The reference schema to be used to interpret the value attribute;
Known Usage
Source Relation Multiplicity Target Description
Dataset consistsOf 0..n Descriptive Metadata Facet ...
Schema consistsOf 0..n Descriptive Metadata Facet ...

Event Facet

Event Facet extends Facet
Goal: This facet captures information on a certain event / happening characterising the life cycle of the resource.
Properties
Name Type Attributes Description
date Calendar Mandatory=true
NotNull=true
The time the event took place / occurred.
value String Mandatory=true
NotNull=true
The typology of event according to the reference schema.
schema URI The reference schema to be used to interpret the value describing the event.
Known Usage
Source Relation Multiplicity Target Description
Dataset consistsOf 0..n Event Facet ...
EService consistsOf 1..n Event Facet E.g. ActivationTime, DeploymentTime.
Hosting Node consistsOf 1..n Event Facet ...

Identifier Facet

Identifier Facet extends Facet
Goal: This facet captures information on Identifiers (other than the ones automatically generated by the system) that can be attached to a resource.
Properties
Name Type Attributes Description
value String Mandatory=true
NotNull=true
The identifier. E.g. http://fr.dbpedia.org/resource/Thunnus de305d54-75b4-431b-adb2-eb6b9e546014
type Enumeration Mandatory=true
NotNull=true
The typology of identifier. I.e. URI, DOI, IRI, URL, URN, UUID.
isPersistent boolean Mandatory=true
NotNull=true
To indicate whether the Identifier is persistent or not.
Known Usage
Source Relation Multiplicity Target Description
Configuration Template isIdentifiedBy 1..n Identifier Facet ...
Configuration isIdentifiedBy 1..n Identifier Facet ...
Dataset isIdentifiedBy 1..n Identifier Facet ...
Concrete Dataset isIdentifiedBy 1..n Identifier Facet ...
Site isIdentifiedBy 1..n Identifier Facet ...

License Facet

License Facet extends Facet
Goal: This facet captures information on any license associated with the resource to capture the policies governing its exploitation and use.
Properties
Name Type Attributes Description
name String Mandatory=true
NotNull=true
The common name of the license. E.g. EUPL 1.1, GPLv2, BSD.
textURL URL Mandatory=true
NotNull=true
The URL to the actual text of the license.
Known Usage
Source Relation Multiplicity Target Description
Dataset consistsOf 0..n License Facet The duration of license - if any - can be captured by the expiry date defined in the consistsOf relation.
EService consistsOf 0..n License Facet ...
Software consistsOf 1..n License Facet ...

Location Facet

The goal of this facet is to collect information about Location

Location Facet extends Facet
Goal: This facet captures information on a physical area characterising the resource it is associated with. This should not be confused with Coverage Facet.
Properties
Name Type Attributes Description
country String The English name of the country. See [1].
location String The City name.
latitude String Latitude.
longitude String Longitude.
Known Usage
Source Relation Multiplicity Target Description
Site consistsOf 1..n Location Facet The base where the site is operated.

Memory Facet

Memory Facet extends Facet
Goal: This facet captures information on computer memory equipping the resource and its usage.
Properties
Name Type Attributes Description
size Long Mandatory=true NotNull=true Total amount of memory.
used Long Mandatory=true NotNull=true Used amount of memory.
unit Enum Mandatory=true NotNull=true The unit of measure used to report size and used attributes. Allowed values are Byte, kB (kilobyte 10^3), MB (megabyte 10^6), GB (gigabyte 10^9), TB (terabyte 10^12), PB (petabyte 10^15), EB (exabyte 10^18), ZB (zettabyte 10^21), YB (yottabyte 10^24).
Known Usage
Source Relation Multiplicity Target Description
Hosting Node hasPersistentMemory 1..n Memory Facet The Disk Space allocated to the hosting node.
Hosting Node hasVolatileMemory 1..n Memory Facet The RAM allocated to the hosting node.

Networking Facet

Networking Facet extends Facet
Goal: This facet captures information on any (computer) network interface/access point associated with the resource.
Properties
Name Type Attributes Description
hostName String Host Name.
domainName String Domain Name.
IPAddress String Mandatory=true

NotNull=true
Regex='/^(?>(?>([a-f0-9]{1,4})(?>:(?1)){7}|(?!(?:.*[a-f0-9](?>:|$)){8,})((?1)(?>:(?1)){0,6})?::(?2)?)|(?>(?>(?1)(?>:(?1)){5}:|(?!(?:.*[a-f0-9]:){6,})(?3)?::(?>((?1)(?>:(?1)){0,4}):)?)?(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?>\.(?4)){3}))$/iD'

IP Address. Validation regular expression ca be foun at http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses#answer-1934546 (Michael Rushton solution).
mask String Network Mask.
broadcastAddress String Broadcast Address.
Known Usage
Source Relation Multiplicity Target Description
Hosting Node isIdentifiedBy 1..n Networking Facet ...
Site consistsOf 1..n Networking Facet ...

Provenance Facet

Provenance Facet extends Facet
Goal: This facet captures information on provenance/lineage of the entire resource.
Properties
Name Type Attributes Description
relationship Enum I.e. wasDerivedFrom, wasGeneratedBy
reference String resourceID (a reference to the "originator" Resource associated to the resource the facet is attached to by the relationship)
document String Provenance Document E.g. the xml format
documentSchema URI Document Schema E.g. a reference to the format
Known Usage
Source Relation Multiplicity Target Description
Dataset consistsOf 0..n Provenance Facet

Schema Facet

Abstract Schema Facet extends Facet
Goal: This facet captures information on any schema associated with a resource.
Properties
Name Type Attributes Description
name String Mandatory=true
NotNull=true
Schema Name
description String Mandatory=true
NotNull=true
Schema Description
schemaURL URL Schema definition URL (recommended)
Known Usage
Source Relation Multiplicity Target Description
Schema isIdentifiedBy 1..n Schema Facet
JSON Schema Facet

Even is still under standardization (seems stalled) IETF is promoting a de-facto standard for JSON http://json-schema.org/. https://tools.ietf.org/html/draft-zyp-json-schema-04 https://tools.ietf.org/html/draft-fge-json-schema-validation-00 https://tools.ietf.org/html/draft-luff-json-hyper-schema-00

JSON Schema Facet extends Schema Facet
Goal: This facet captures information on a JSON schema associated with a resource.
Properties
Name Type Attributes Description
content Property Mandatory=true
NotNull=true
JSON schema definition.
Known Usage
Source Relation Multiplicity Target Description
Schema isIdentifiedBy 0..n JSON Schema Facet ...
XSD Schema Facet
XSD Schema Facet extends Schema Facet
Goal: This facet captures information on any XML Schema Definition (XSD) associated with the resource.
Properties
Name Type Attributes Description
content String Mandatory=true
NotNull=true
XSD Schema Definition
Known Usage
Source Relation Multiplicity Target Description
Schema isIdentifiedBy 0..n XSD Schema Facet

Simple Facet

Please do not use this Facet. Create your own type.

Simple Property Facet extends Facet
Goal: This facet is used by IS-Exporter to export old GenericResource as Configuration
Properties
No property defined
Known Usage
Source Relation Multiplicity Target Description
Configuration consistsOf 1..n Simple Facet Used by IS-Exporter to export old GenericResource as Configuration

Simple Property Facet

Simple Property Facet extends Facet
Goal: This facet captures information on any property by a simple name-value pair.
Properties
Name Type Attributes Description
name String Mandatory=true
NotNull=true
Name
value String Mandatory=true
NotNull=true
Value
Known Usage
Source Relation Multiplicity Target Description
Configuration Template consistsOf 1..n Simple Property Facet
Hosting Node consistsOf 0..n Simple Property Facet E.g. to model Environment Variables

Software Facet

Software Facet extends Facet
Goal: This facet captures information on any software associated with the resource.
Properties
Name Type Attributes Description
name String Mandatory=true
NotNull=true
The name of the software artefact being described. E.g. artifactId in maven, Service Name in gCube software, the software name for retail software Microsoft Office 2013-SP2.
group String Mandatory=true
NotNull=true
The name of "group" the software artefact belongs to. E.g. groupId in Maven, ServiceClass in gCube software, company name for retail software Microsoft Office 2013-SP2.
version String Mandatory=true
NotNull=true
The particular release of the software artefact. E.g. maven version, Service Version in gCube software, artifactId in maven, the software version for retail software Microsoft Office 2013-SP2.
description String A human oriented description of the software artefact being described.
qualifier String E.g. packaging or scope in maven, scope level or sharable level in gCube software, target architecture for retail software x86 or amd64.
optional Boolean E.g. used to indicate an optional dependency both in maven as far as in gCube.
Known Usage
Source Relation Multiplicity Target Description
EService isIdentifiedBy 1..n Software Facet The software enabling the EService capabilities
EService consistsOf 0..n Software Facet Software available in the EService environment that characterizes the specific EService instance.
Running Plugin isIdentifiedBy 1..1 Software Facet The software enabling the Running Plugin.
Hosting Node consistsOf 0..n Software Facet E.g. to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System.
Virtual Service isIdentifiedBy 1..n Software Facet
Software isIdentifiedBy 1..n Software Facet Software coordinates which identify the Software per se.
Software consistsOf 1..n Software Facet Any other software apart from the one connected with isIdentifiedBy relation (gCube coordinates).
Plugin isIdentifiedBy 1..n Software Facet Software coordinates which identify the Plugin per se.

State Facet

The goal of this facet is to ...

Abstract State Facet extends Facet
Goal: This facet captures information on state to be associated with the resource. State is captured by any controlled vocabulary which is an integral part of the facet.
Properties
Name Type Attributes Description
value String Mandatory=true
NotNull=true
The value of the state expressed according to the schema below;
schema URI Mandatory=true
NotNull=true
The schema that have been used to assign the state value and that must be used to properly interpret it;
Known Usage
Source Relation Multiplicity Target Description
Software consistsOf 1..n State Facet E.g. Deprecated, Active, Obsolete
Container State Facet
Container State Facet extends Facet
Goal: This facet captures information on the operational status of the container, i.e. the
Properties
Name Type Attributes Description
value String Mandatory=true
NotNull=true
Regex=(started|ready|certified|down|failed)
The value of the state
Known Usage
Source Relation Multiplicity Target Description
Hosting Node consistsOf 1..1 Container State Facet An Hosting node can be started, ready, certified, down, failed.
Service State Facet
Service State Facet extends Facet
Goal: This facet captures information on the operational state of the service it is associated with.
Properties
Name Type Attributes Description
value String Mandatory=true
NotNull=true
Regex=(STARTED|ready|down|failed)
The value of the state
Known Usage
Source Relation Multiplicity Target Description
EService consistsOf 1..1 Service State Facet An EService can be STARTED, ready, down, failed.

Subject Facet

Subject Facet extends Facet
Goal: This facet captures information on subjects associated with the resource for description, classification and discovery purposes;
Properties
Name Type Attributes Description
value String Mandatory=true
NotNull=true
The value of the subject. Must be compliant with schema.
schema URI Mandatory=true
NotNull=true
The URI of the schema subject value comes from. It is only an informative field. It is not used for validation from IS part.
Known Usage
Source Relation Multiplicity Target Description
Dataset consistsOf 0..n Subject Facet
Schema consistsOf 0..n Subject Facet

Relations

isRelatedTo

activates
activates extends isRelatedTo
Source Relation Multiplicity Target Description
Service activates 0..n Service ...
belongsTo
belongsTo extends isRelatedTo
Source Relation Multiplicity Target Description
Person belongsTo 0..n Legal Body ...
callsFor
callsFor extends isRelatedTo
Source Relation Multiplicity Target Description
Service callsFor 0..n Service
discovers
discovers extends callsFor
Source Relation Multiplicity Target Description
EService discovers 0..n EService


uses
uses extends callsFor
Source Relation Multiplicity Target Description
EService uses 0..n EService
demands
demands extends isRelatedTo
Source Relation Multiplicity Target Description
Virtual Service demands 0..n Software
dependsOn
dependsOn extends isRelatedTo
Source Relation Multiplicity Target Description
Software dependsOn 0..n Software
isPluginOf
isPluginOf extends dependsOn
Source Relation Multiplicity Target Description
Plugin isPluginOf 1..n Software
enables
enables extends isRelatedTo
Source Relation Multiplicity Target Description
Service enables 0..n Software
hosts
hosts extends isRelatedTo
Source Relation Multiplicity Target Description
Site hosts 0..n Service
involves
involves extends isRelatedTo
Source Relation Multiplicity Target Description
Dataset involves 0..n Actor
isCompliantWith
isCompliantWith extends isRelatedTo
Source Relation Multiplicity Target Description
Dataset isCompliantWith 0..n Schema
isConfiguredBy
isConfiguredBy extends isRelatedTo
Source Relation Multiplicity Target Description
Software isConfiguredBy 0..n Configuration Template
isCorrelatedTo
isCorrelatedTo extends isRelatedTo
Source Relation Multiplicity Target Description
Dataset isCorrelatedTo 0..n Dataset
isPartOf
isPartOf extends isCorrelatedTo
Source Relation Multiplicity Target Description
Concrete Dataset isPartOf 0..n Dataset


isCustomizedBy
isCustomizedBy extends isRelatedTo
Source Relation Multiplicity Target Description
Service isCustomizedBy 0..n Configuration Template
isDerivationOf
isDerivationOf extends isRelatedTo
Source Relation Multiplicity Target Description
Configuration isDerivationOf 1..1 Configuration Template
isOwnedBy
isOwnedBy extends isRelatedTo
Source Relation Multiplicity Target Description
Site isOwnedBy 0..n Actor


manages
manages extends isRelatedTo
Source Relation Multiplicity Target Description
Service manages 0..n Dataset
requires
requires extends isRelatedTo
Source Relation Multiplicity Target Description
Software requires 0..n Service

consistsOf

isIdentifiedBy
isIdentifiedBy extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resource isIdentifiedBy 1..n Facet A relation connecting each Resource with one of the Facet which can be used to identify the Resource.
Source Relation Multiplicity Target Description
Definition
Resource isIdentifiedBy 1..n Facet
Known Usage
Actor isIdentifiedBy 1..n Contact Facet
Legal Body isIdentifiedBy 1..n Contact Facet
Person isIdentifiedBy 1..n Contact Facet
Configuration Template isIdentifiedBy 1..n Identifier Facet
Configuration isIdentifiedBy 1..n Identifier Facet
Dataset isIdentifiedBy 1..n Identifier Facet
Concrete Dataset isIdentifiedBy 1..n Identifier Facet
Service isIdentifiedBy 1..n Facet
EService isIdentifiedBy 1..1 Software Facet ...
Virtual Service isIdentifiedBy 1..n Software Facet ...
Virtual Machine isIdentifiedBy 1..n Software Facet ...
Schema isIdentifiedBy 1..n Identifier Facet ...
Site isIdentifiedBy 1..n Identifier Facet ...
Software isIdentifiedBy 1..n Software Facet Software coordinates which identify the Software per se.
Plugin isIdentifiedBy 1..n Software Facet Software coordinates which identify the Plugin per se.
hasCapability
Abstract hasCapability extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resource hasCapability 0..n Capability Facet
Known Usage
Service hasCapability 0..n Capability Facet
Software hasCapability 0..n Capability Facet
hasContact
Abstract hasContact extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resource hasContact 0..n Contact Facet
Known Usage
Dataset hasContact 1..n Contact Facet ...


hasContributor
hasContributor extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasContributor 0..n Contact Facet
Known Usage
Dataset hasContributor 0..n Contact Facet Is he the contributor
hasCreator
hasCreator extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasCreator 0..n Contact Facet
Known Usage
Dataset hasCreator 0..n Contact Facet Is he the creator
hasCurator
hasCurator extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasCurator 0..n Contact Facet
Known Usage
Dataset hasCurator 0..n Contact Facet Is he the curator
hasDeveloper
hasDeveloper extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasDeveloper 0..n Contact Facet
Known Usage
hasMaintainer
hasMaintainer extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasMaintainer 0..n Contact Facet
Known Usage
Dataset hasMaintainer 0..n Contact Facet Is he the maintainer
hasManager
hasManager extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasManager 0..n Contact Facet
Known Usage
hasOwner
hasOwner extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasOwner 0..n Contact Facet
Known Usage
Dataset hasOwner 0..n Contact Facet Is he the owner
hasCoverage
Abstract hasCoverage extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resources hasCoverage 0..n Coverage Facet ...
Known Usage
Dataset hasCoverage 1..n Coverage Facet ...
hasSpatialCoverage
hasSpatialCoverage extends hasCoverage
Source Relation Multiplicity Target Description
Definition
Resources hasSpatialCoverage 0..n Coverage Facet ...
Known Usage
Dataset hasSpatialCoverage 0..n Coverage Facet ...
hasTemporalCoverage
hasTemporalCoverage extends hasCoverage
Source Relation Multiplicity Target Description
Definition
Resources hasTemporalCoverage 0..n Coverage Facet ...
Known Usage
Dataset hasTemporalCoverage 0..n Coverage Facet ...
hasMemory
Abstract hasMemory extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resources hasMemory 0..n Memory Facet ...
hasPersistentMemory
hasPersistentMemory extends hasMemory
Source Relation Multiplicity Target Description
Definition
Resources hasPersistentMemory 0..n Memory Facet ...
Known Usage
Hosting Node hasPersistentMemory 1..n Memory Facet Disk Space
hasVolatileMemory
hasVolatileMemory extends hasMemory
Source Relation Multiplicity Target Description
Definition
Resources hasVolatileMemory 0..n Memory Facet ...
Known Usage
Hosting Node hasVolatileMemory 1..n Memory Facet RAM

Resources

Every Resource has:

A class can be identified as Abstract. This means that cannot be instantiated. It is expected that one of its specializations are instantiated. It is not required that an Abstract class establishes an isIdentifiedBy relation with a Facet.

Actor

Abstract Actor extends Resource
Scope: Any entity (human or machine) playing an active role.
Source Relation Multiplicity Target Description
Facets
Actor isIdentifiedBy 1..n Contact Facet An Actor has at least a Contact Facet which permit to identify the Actor per se.
Actor hasContact 0..n Contact Facet An Actor can have other Contact Facets which provide secondary contact information.
Actor consistsOf 0..n Contact Reference Facet ...
Relations
Dataset involves 0..n Actor ...
Site isOwnedBy 0..n Actor ...
Legal Body
Legal Body extends Actor
Scope: A legal entity playing the role of an Actor.
Source Relation Multiplicity Target Description
Facets
Legal Body isIdentifiedBy 1..n Contact Facet A Legal Body has at least a Contact Facet which permit to identify the Legal Body per se.
Legal Body consistsOf 0..n Contact Reference Facet ...
Relations
Person belongsTo 0..n Legal Body ...
Person
Person extends Actor
Scope: Any human playing the role of Actor.
Source Relation Multiplicity Target Description
Facets
Person isIdentifiedBy 1..n Contact Facet A Person has at least a Contact Facet which permit to identify the Person per se.
Person consistsOf 0..n Contact Reference Facet ...
Relations
Person belongsTo 0..n Legal Body ...

Configuration Template

Configuration Template extends Resource
Scope: It represents a template for a configuration. It describe how a configuration has to be realized. E.g. Used to define the accounting configuration parameters template.
Source Relation Multiplicity Target Description
Facets
Configuration Template isIdentifiedBy 1..n Identifier Facet ...
Configuration Template consistsOf 1..n Simple Property Facet ...
Relations
Configuration isDerivationOf 1..1 Configuration Template ...
Service isCustomizedBy 0..n Configuration Template ...
Software isConfiguredBy 0..n Configuration Template ...


Configuration
Configuration Profile extends Configuration Template
Scope: An instance of a configuration template characterising the behaviour and shape of the resource it is attached to.
Source Relation Multiplicity Target Description
Facets
Configuration isIdentifiedBy 1..n Identifier Facet ...
Configuration consistsOf 1..n Simple Facet Used by IS-Exporter to export old GenericResource as Configuration
Relations
Configuration isDerivationOf 1..1 Configuration Template ...

Dataset

Dataset extends Resource
Scope: Any set of digital objects representing data and treated collectively as a unit.
Source Relation Multiplicity Target Description
Facets
Dataset isIdentifiedBy 1..n Identifier Facet The set of Identifiers associated with the Dataset instance.
Dataset hasContact 1..n Contact Facet The contact information of the entity responsible for the dataset.
Dataset hasContributor 0..n Contact Facet The contact information on contributors supporting the creation and development of the Dataset.
Dataset hasCreator 0..n Contact Facet The contact information of the creator of the Dataset.
Dataset hasCurator 0..n Contact Facet The contact information of the entity responsible for the curation of the dataset.
Dataset hasMaintainer 0..n Contact Facet The contact information of the entity responsible for the maintenance of the dataset.
Dataset hasOwner 0..n Contact Facet The contact information of the entity having the ownership of the dataset.
Dataset consistsOf 0..n Access Point Facet 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 License Facet 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 Event Facet Any "event" characterising the lifecycle of the dataset, e.g. collection date, last collection date.
Dataset consistsOf 0..n Provenance Facet Any provenance record associated with the dataset.
Dataset hasCoverage 1..n Coverage Facet Any coverage related information (e.g. topic, species) characterising the content of the dataset.
Dataset hasTemporalCoverage 0..n Coverage Facet Any temporal coverage information characterising the content of the dataset, e.g. the time-span covered by the dataset.
Dataset hasSpatialCoverage 0..n Coverage Facet Any geo-spatial coverage information characterising the content of the dataset, e.g. the area covered by the dataset.
Dataset consistsOf 0..n Descriptive Metadata Facet Any descriptive information associated with the dataset, e.g. for discovery purposes.
Dataset consistsOf 0..n Subject Facet Any subject / tag associated with the dataset for descriptive and discovery purposes.
Relations
Dataset involves 0..n Actor ...
Dataset isCorrelatedTo 0..n Dataset ...
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.
Concrete Dataset isPartOf 0..n Dataset The reference to the 'incarnations' / 'manifestations' contributing to a dataset.
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.
Concrete Dataset
Concrete Dataset extends Dataset
Scope: Any incarnation / manifestation of a dataset or part of it.
Source Relation Multiplicity Target Description
Facets
Concrete Dataset isIdentifiedBy 1..n Identifier Facet The set of Identifiers associated with the Concrete Dataset instance.
Concrete Dataset hasMaintainer 1..n Contact Facet The contact information of the entity responsible for the maintenance of the concrete dataset.
Concrete Dataset consistsOf 1..n Access Point Facet 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.
Relations
Concrete Dataset isPartOf 0..n Dataset The reference to the Dataset the instance manifests / contribute to manifest.

Schema

Schema extends Resource
Scope: Any reference schema to be used to specify values compliant with it. Examples include controlled vocabularies, ontologies, etc.
Source Relation Multiplicity Target Description
Facets
Schema isIdentifiedBy 1..n Schema Facet ...
Schema isIdentifiedBy 0..n JSON Schema Facet ...
Schema isIdentifiedBy 0..n XSD Schema Facet ...
Schema hasContact 1..n Contact Facet ...
Schema consistsOf 0..n Descriptive Metadata Facet ...
Schema consistsOf 0..n Subject Facet ...
Relations
Dataset isCompliantWith 0..n Schema ...

Service

Abstract Service Profile
Scope: An abstract entity to represent any typology of Service worth registering in the infrastructure.
Source Relation Multiplicity Target Description
Facets
Service isIdentifiedBy 1..n Facet Any facet instance useful for identification purposes.
Service consistsOf 0..n Descriptive Metadata Facet Any descriptive information associated with the service, e.g. for discovery purposes.
Service consistsOf 0..n Subject Facet Any subject / tag associated with the service for descriptive, cataloguing and discovery purposes.
Service hasCapability 0..n Capability Facet Any facility supported/offered by the Service.
Relations
Service callsFor 0..n Service A reference to the Services needed by the target instance to work.
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 Virtual Machine enabling an EService or an Hosting Node; An EService enabling a Running Plugin etc.
Service isCustomizedBy 0..n Configuration Template 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 enables 0..n Software A reference to any Software the Service is enabling (i.e. the Software is running throught the EService)
Software 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.
EService
EService extends Service
Scope: Any Electronic Service (aka Running Service) that is registered in the infrastructure and made available by an Access Point.
Source Relation Multiplicity Target Description
Facets
EService isIdentifiedBy 1..n Software Facet The main software enabling the EService capabilities.
EService consistsOf 0..n Software Facet Software available in the EService environment that characterizes the specific EService instance.
EService consistsOf 1..n Access Point Facet Identify the endpoints of the EService.
EService consistsOf 1..n Event Facet Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime.
EService consistsOf 1..1 Service State Facet The current status of the EService, e.g. STARTED, ready, down, failed.
EService consistsOf 0..n License Facet The specific terms of use governing the exploitation of the EService.
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.


Running Plugin
Running Plugin extends EService
Scope: Any instance of a Plugin deployed and running by an EService.
Source Relation Multiplicity Target Description
Facets
Running Plugin isIdentifiedBy 1..1 Software Facet The software enabling the Running Plugin.
Relations
Hosting Node
Hosting Node extends Service
Scope: The HostingNode represent a container capable of managing the lifecycle of an electronic service, i.e., being capable to host and operate an EService.
Source Relation Multiplicity Target Description
Facets
Hosting Node isIdentifiedBy 1..n Networking Facet The Network ID characterising the Hosting Node.
Hosting Node consistsOf 1..n CPU Facet The CPU equipping the Hosting Node.
Hosting Node hasPersistentMemory 1..n Memory Facet The Disk Space Capacity of the Hosting Node.
Hosting Node hasVolatileMemory 1..n Memory Facet The RAM Capacity of the Hosting Node.
Hosting Node consistsOf 1..n Event Facet Every event characterizing the life cycle of the Hosting Node, e.g. the activation time.
Hosting Node consistsOf 1..1 Container State Facet The current state of the Hosting Node, e.g. started, ready, certified, down, failed.
Hosting Node consistsOf 0..n Simple Property Facet Any <key, value> pair property worth associating with the Hosting Node, e.g. Environment Variables.
Hosting Node consistsOf 0..n Software Facet 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.
Relations
Virtual Machine
Virtual Machine Profile extends Service Profile
Scope: A Virtual Machine is an emulation of a physical computer which appears to the running operative system as real hardware.
Source Relation Multiplicity Target Description
Facets
Virtual Machine isIdentifiedBy 1..n Networking Facet The Network ID characterising the Virtual Machine.
Relations
Virtual Service
Virtual Service Profile extends Service Profile
Scope: 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 are to be managed like an existing unit.
Source Relation Multiplicity Target Description
Facets
Virtual Service isIdentifiedBy 1..n Software Facet  ???
Relations
Virtual Service demands 0..n Software ...

Site

Site Profile extends Resource
Scope: An entity representing the location (physical or virtual) hosting and providing the resources associated with it.
Source Relation Multiplicity Target Description
Facets
Site isIdentifiedBy 1..n Identifier Facet The Site Identifier.
Site hasContact 1..n Contact Facet The main contact for the Site.
Site hasMaintainer 1..n Contact Facet Contact information of the maintainer of the Site.
Site hasManager 1..n Contact Facet Contact information of the Site Manager.
Site consistsOf 1..n Location Facet ...
Site consistsOf 1..n Networking Facet ...
Relations
Site isOwnedBy 0..n Actor ...
Site hosts 0..n Service ...

Software

Software extends Resource
Scope: Any Software entity worth being represented for management purposes.
Source Relation Multiplicity Target Description
Facets
Software isIdentifiedBy 1..n Software Facet Software coordinates which identify the Software per se.
Software consistsOf 1..n Software Facet Apart the one connected by the isIdentifiedBy relation (gCube coordinates) the others identify the sw in other way e.g. (Maven coordinates).
Software consistsOf 1..n Access Point Facet Links to maven artifact on nexus, javadoc, wiki, svn ...
Software consistsOf 1..n License Facet The Software License characterizing its possible exploitation and use.
Software consistsOf 1..n State Facet The state characterising the software, e.g. Deprecated, Active, Obsolete.
Software hasCapability 0..n Capability Facet ...
Relations
Software dependsOn 0..n Software To capture any dependency between two software artifacts.
Software isConfiguredBy 0..n Configuration Template E.g. Accounting Sw uses it to discover the configuration.
Software requires 0..n Service to capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database.
Virtual Service demands 0..n Software ...
Plugin isPluginOf 0..n Software To capture the relation between a Software and its Plugins.
Plugin
Plugin extends Software
Scope: A piece of Software extending the capabilities of another Software (main) and requiring the main Software to be executed;
Source Relation Multiplicity Target Description
Facets
Plugin isIdentifiedBy 1..n Software Facet Software coordinates which identify the Plugin per se.
Relations
Plugin isPluginOf 1..n Software A reference to the Software this Plugin is conceived to extend the capabilities.

Extension Example

The gCube Resource Model supports extensions at runtime meaning that new facets, relations, and resources can be defined and registered at any time by authorized clients. Those extensions must necessarily specialize an existing gCube Entity. An example of those specializations is the following:

Functionality Related Facet

The goal of this facet is to capture what are the facilities supported by the Service Entity and it aims to model the service interface.

Functionality Related Facet extends Facet
Name Type Attributes Description
name String ...
description String ...
input String ...
output String ...
Known Usage
Source Relation Multiplicity Target Description
Service consistsOf 0..n Functionality Related Facet ...
  1. https://www.merriam-webster.com/dictionary/facet
  2. https://www.thefreedictionary.com/facet