|
|
Line 208: |
Line 208: |
| | URI | | | URI |
| | The URI which characterizes the specific endpoint instance; | | | The URI which characterizes the specific endpoint instance; |
− | | <code>Mandatory=true</code> <code>ReadOnly=true</code> <code>NotNull=true</code> | + | | <code>Mandatory=true</code> <br/><code>ReadOnly=true</code> <br/><code>NotNull=true</code> |
| |- | | |- |
| | protocol | | | protocol |
Revision as of 16:54, 2 October 2016
Basic Concepts
- Two typologies of entities are envisaged:
- Resources, i.e. entities representing a description of "thing" to be managed;
- Every Resource is characterised 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 specialization 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.
- 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.
Property
Any Property can be enriched with the following attributes:
- Name : Property Name
- Type : The Type of the Property (e.g. String, Integer, ...). See Property 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
- Regexpr (Reg)): A Regular Expression to validate the property value.
default=null
. A goog online tool for regex is avalable at https://regex101.com/
Property Type
Basic Property Type
Type
|
Description
|
Java type
|
Boolean
|
Handles only the values True or False
|
java.lang.Boolean or boolean
|
Integer
|
32-bit signed Integers
|
java.lang.Integer or int or java.math.BigInteger
|
Short
|
Small 16-bit signed integers
|
java.lang.Short or short
|
Long
|
Big 64-bit signed integers
|
java.lang.Long or long
|
Float
|
Decimal numbers
|
java.lang.Float or float
|
Double
|
Decimal numbers with high precision
|
java.lang.Double or double
|
Date
|
Any date with the precision up to milliseconds.
|
java.util.Date
|
String
|
Any string as alphanumeric sequence of chars
|
java.lang.String
|
Embedded
|
This is an Object contained inside the owner Entity and has no Header. It is reachable only by navigating the owner Entity.
|
? extends org.gcube.informationsystem.model.embedded.Embedded
|
Embedded list
|
List of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity.
|
List<? extends org.gcube.informationsystem.model.embedded.Embedded>
|
Embedded set
|
Set (no duplicates) of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity.
|
Set<? extends org.gcube.informationsystem.model.embedded.Embedded>
|
Embedded map
|
Map of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity.
|
Map<String, ? extends org.gcube.informationsystem.model.embedded.Embedded>
|
Byte
|
Single byte. usesful to store small 8-bit signed integers
|
java.lang.Byte or byte
|
Binary
|
Can contain any value as byte array
|
java.lang.Byte[] or byte[]
|
Derived Property Type
The following are obtained using a String as real type and adding a validation regex.
Type
|
Description
|
Java type
|
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.
|
java.lang.Enum or enum
|
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}$
|
java.util.UUID
|
URL
|
String representation of the URL. No check actually.
|
java.net.URL
|
URI
|
String representation of the URI. No check actually.
|
java.net.URI
|
Every Entity and Relation has an Header automatically filled by the System. The Header has the following properties:
Name
|
Type
|
Description
|
Attributes
|
uuid
|
UUID
|
This uuid can be used to univocally identify the Entity or the Relation
|
Mandatory=true
NotNull=true
ReadOnly=true
|
creator
|
String
|
Filled at creation time. The creator is retrieved using the authorization token
|
Mandatory=true
NotNull=true
ReadOnly=true
|
creationTime
|
Date
|
Creation time in milliseconds. Represent the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970 UTC
|
Mandatory=true
NotNull=true
ReadOnly=true
|
lastUpdateTime
|
Date
|
Last Update time in milliseconds. Represent the difference, measured in milliseconds, between the last update time and midnight, January 1, 1970 UTC
|
Mandatory=true
NotNull=true
|
Resources and (isRelatedTo) Relations
Facets
Early ideas and thinking on facets were documented at 2nd Generation Resource Model : Facets
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.
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.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
entryName
|
String
|
A distinguishing string to be used by clients to identify the access point of interest;
|
|
endpoint*
|
URI
|
The URI which characterizes the specific endpoint instance;
|
Mandatory=true
ReadOnly=true
NotNull=true
|
protocol
|
String
|
The high-level protocol used by the access point. The String could contains the version if needed. E.g. WMS not http which is already contained in URI.
|
|
description
|
String
|
A human oriented text accompanying the access point.
|
|
authorization
|
String
|
Contains authorization information. E.g: a token, username:password. By relying on schema it should be sufficient to capture also whether the content is encrypted or not
|
|
authorizationSchema
|
URI
|
URI of the Schema to be used for a proper interpretation of the authorization value.
|
|
properties
|
String
|
This can be an arbitrarily complex element whose "structure" is defined by the associated schema
|
|
propertiesSchema
|
URI
|
URI of the Schema to be used for a proper interpretation of the properties value.
|
|
Known Usage
|
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.
|
E-Service 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.
|
Contact Facet
Contact Reference Facet
Contact Reference Facet extends
Facet
This facet captures information on the primary and authoritative contact for the resource it is associated with.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
website
|
URL
|
The main website
|
|
address
|
String
|
A physical address
|
|
phone
|
String
|
A phone number
|
|
Known Usage
|
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
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
|
Description
|
Attributes
|
value
|
String
|
The amount indicating the "area" covered by the dataset according to the reference schema;
|
Mandatory=true
NotNull=true
|
schema
|
URI
|
The reference schema to be used to interpret the value;
|
Mandatory=true NotNull=true
|
Known Usage
|
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
This facet captures information on the Central Processing Unit of the resource it is associated.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
model
|
String
|
CPU Model
|
Mandatory=true
NotNull=true
|
vendor
|
String
|
CPU Vendor
|
Mandatory=true
NotNull=true
|
clockSpeed
|
String
|
Clock Speed with the unit
|
Mandatory=true
NotNull=true
|
Known Usage
|
Hosting Node consistsOf 1..n CPU Facet:
|
Descriptive Metadata Facet
Descriptive Metadata Facet extends
Facet
This facet captures information on descriptive metadata to be associated with teh resource
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
value
|
String
|
A metadata record representing the descriptive metadata and encoded according to the reference schema;
|
Mandatory=true
NotNull=true
|
schema
|
URI
|
The reference schema to be used to interpret the value attribute;
|
Mandatory=true
NotNull=true
|
Known Usage
|
Dataset consistsOf 0..n Descriptive Metadata Facet:
|
Schema consistsOf 0..n Descriptive Metadata Facet:
|
Event Facet
Event Facet extends
Facet
This facet captures information on a certain event / happening characterising the life cycle of the resource.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
date
|
Calendar
|
The time the event took place / occurred;
|
Mandatory=true
NotNull=true
|
value
|
String
|
The typology of event according to the reference schema;
|
Mandatory=true
NotNull=true
|
schema
|
URI
|
The reference schema to be used to interpret the value describing the event;
|
|
Known Usage
|
Dataset consistsOf 0..n Event Facet:
|
E-Service consistsOf 1..n Event Facet: E.g. ActivationTime, DeploymentTime
|
Hosting Node consistsOf 1..n Event Facet:
|
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
|
Description
|
Attributes
|
name
|
String
|
The common name of the license. E.g. EUPL 1.1, GPLv2, BSD;
|
Mandatory=true
NotNull=true
|
textURL
|
URL
|
The URL to the actual text of the license.
|
Mandatory=true
NotNull=true
|
Known Usage
|
Dataset consistsOf 0..n License Facet: The duration of license - if any - can be captured by the expiry date defined in the consistsOf relation.
|
E-Service 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
|
Description
|
Attributes
|
country
|
String
|
The English name of the country. See http://data.okfn.org/data/core/country-list
|
|
location
|
String
|
The City name.
|
|
latitude
|
String
|
Latitude
|
|
longitude
|
String
|
Longitude
|
|
Known Usage
|
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
|
Description
|
Attributes
|
size
|
Long
|
Total amount of memory.
|
Mandatory=true NotNull=true
|
used
|
Long
|
used amount of memory.
|
Mandatory=true NotNull=true
|
unit
|
Enum
|
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)
|
Mandatory=true NotNull=true
|
Known Usage
|
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
Provenance Facet
Provenance Facet extends
Facet
Goal: This facet captures information on provenance/lineage of the entire resource.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
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
|
Dataset consistsOf 0..n Provenance Facet
|
Schema Facet
Abstract
Schema Facet extends
Facet
This facet captures information on any schema associated with a reosurce.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
name*
|
String
|
Schema Name
|
Mandatory=true NotNull=true
|
description
|
String
|
Schema Description
|
Mandatory=true NotNull=true
|
schemaURL
|
URL
|
Schema definition URL (recommended)
|
|
Known Usage
|
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
This facet captures information on a JSON schema associated with a resource.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
content
|
Embedded
|
JSON schema definition
|
Mandatory=true NotNull=true
|
Known Usage
|
Schema isIdentifiedBy 0..n JSON Schema Facet
|
XSD Schema Facet
XSD Schema Facet extends
Schema Facet
This facet captures information on any XML Schema Definition (XSD) associated with the resource.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
content
|
String
|
XSD Schema Definition
|
Mandatory=true NotNull=true
|
Known Usage
|
Schema isIdentifiedBy 0..n XSD Schema Facet
|
Simple Property Facet
Software Facet
Software Facet extends
Facet
Goal: This facet captures information on any software associated with the resource.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
name
|
String
|
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.
|
Mandatory=true NotNull=true
|
group
|
String
|
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.
|
Mandatory=true NotNull=true
|
version
|
String
|
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.
|
Mandatory=true
NotNull=true
|
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
|
E-Service isIdentifiedBy 1..n Software Facet: The software enabling the E-Service capabilities
|
E-Service consistsOf 0..n Software Facet: Software available in the E-Service environment that characterizes the specific E-Service 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
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
|
Description
|
Attributes
|
value
|
String
|
The value of the state expressed according to the schema below;
|
Mandatory=true NotNull=true
|
schema
|
URI
|
The schema that have been used to assign the state value and that must be used to properly interpret it;
|
Mandatory=true NotNull=true
|
Known Usage
|
Software consistsOf 1..n State Facet: E.g. Deprecated, Active, Obsolete
|
Container State Facet
Container State Facet extends
Facet
This facet captures information on the operational status of the container, i.e. the
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
value
|
String
|
The value of the state
|
Mandatory=true
NotNull=true
Regex=(started|ready|certified|down|failed)
|
Known Usage
|
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
This facet captures information on the operational state of the service it is associated with.
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
value
|
String
|
The value of the state
|
Mandatory=true
NotNull=true
Regex=(STARTED|ready|down|failed)
|
Known Usage
|
E-Service consistsOf (1..1) Service State Facet: An E-Service can be STARTED, ready, down, failed.
|
Subject Facet
Subject Facet extends
Facet
This facet captures information on subjects associated with the resource for description, classification and discovery purposes;
|
Properties
|
Name
|
Type
|
Description
|
Attributes
|
value
|
String
|
The value of the subject. Must be compliant with schema.
|
Mandatory=true
NotNull=true
|
schema
|
URI
|
The URI of the schema subject value comes from. It is only an informative field. It is not used for validation from IS part.
|
Mandatory=true
NotNull=true
|
Known Usage
|
Dataset consistsOf (0..n) Subject Facet
|
Schema consistsOf (0..n) Subject Facet
|
Relations
Every relation has:
Relation Property
Name
|
Type
|
Description
|
referentialIntegrity
|
Enum
|
I.e. onDeleteCascadeWhenOrphan, onDeleteCascade, onDeleteKeep. The meaning is related to the relation direction.
|
accessPolicy
|
Embedded (i.e. AccessPolicy)
|
A policy is characterized by a name, a description, and the period ([start], [end]) when the policies apply
|
expiryTime
|
Long
|
The expiry date can be used to model the time until the relationship is valid, Expiry time in milliseconds. Represent the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970 UTC
|
isRelatedTo
belongsTo
callsFor
demands
dependsOn
discovers
hosts
involves
isActivatedBy
isCompliantWith
isConfiguredBy
isCorrelatedTo
isPartOf
isCustomizedBy
isDerivationOf
isManagedBy
isOwnedBy
isPluginOf
isPoweredBy
manages
requires
runs
runsPlugin
uses
consistsOf
isIdentifiedBy
hasContact
hasContributor
hasCreator
hasCurator
hasDeveloper
hasMaintainer
hasManager
hasOwner
hasCoverage
hasSpatialCoverage
hasTemporalCoverage
hasMemory
hasPersistentMemory
hasVolatileMemory
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.
Resource
Abstract
Resource Profile
Scope: This entity is conceived to describe every "main thing" to be registered and discovered by the Information System.
|
Relation
|
Multiplicity
|
Target
|
Description
|
Facets
|
isIdentifiedBy
|
1..n
|
Facet
|
Any Resource has at least one Facet which in some way allow to identify the Resource per se.
|
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.
|
Actor
Legal Body
Person
Configuration Template
Configuration
Dataset
Concrete Dataset
Concrete Dataset Profile extends
Dataset Profile
Scope: Any incarnation / manifestation of a dataset or part of it;
|
Relation
|
Multiplicity
|
Target
|
Description
|
Facets
|
isIdentifiedBy
|
1..n
|
Identifier Facet
|
The set of Identifiers associated with the Concrete Dataset instance.
|
hasMaintainer
|
1..n
|
Contact Facet
|
The contact information of the entity responsible for the maintenance of the 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
Service
E-Service
Running Plugin
Hosting Node
Hosting Node Profile extends
Service Profile
Scope: Any server\machine playing the role of "Hosting Node", i.e., being capable to host and operate an E-Service;
|
Relation
|
Multiplicity
|
Target
|
Description
|
Facets
|
isIdentifiedBy
|
1..n
|
Networking Facet
|
The Network ID characterising the Hosting Node;
|
consistsOf
|
1..n
|
CPU Facet
|
The CPU equipping the Hosting Node;
|
hasPersistentMemory
|
1..n
|
Memory Facet
|
The Disk Space Capacity of the Hosting Node;
|
hasVolatileMemory
|
1..n
|
Memory Facet
|
The RAM Capacity of the Hosting Node;
|
consistsOf
|
1..n
|
Event Facet
|
Every event characterizing the life cycle of the Hosting Node, e.g. the activation time;
|
consistsOf
|
1..1
|
Container State Facet
|
The current state of the Hosting Node, e.g. started, ready, certified, down, failed
|
consistsOf
|
0..n
|
Simple Property Facet
|
Any <key, value> pair property worth associating with the Hosting Node, e.g. Environment Variables
|
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
|
Hosting Node hosts (0..n) E-Service: A reference to any E-Service instance, the Hosting Node instance is hosting.
|
Hosting Node isManagedBy (0..n) Site: The Site responsible for and contributing the Hosting Node;
|
Hosting Node isPoweredBy (0..n) Software
|
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.
|
Relation
|
Multiplicity
|
Target
|
Description
|
Facets
|
isIdentifiedBy
|
1..n
|
Software Facet
|
???
|
Relations
|
Virtual Service demands (0..n) Software Facet: THIS IS NOT OK / NOT SUFFICIENT
|
Virtual Service demands (1..n) Service
|
Site
Software
Plugin
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 want 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.
Suggested Extensions
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
|
Description
|
Attributes
|
|
name
|
String
|
...
|
|
|
description
|
String
|
...
|
|
|
input
|
String
|
...
|
|
|
output
|
String
|
...
|
|
Known Usage
|
Source
|
Relation
|
Multiplicity
|
Target
|
Description
|
Service
|
consistsOf
|
0..n
|
Functionality Related Facet
|
...
|
Internal Entity and Relation
For internal use only are defined the following entity and relation:
Context
Model a Context (aka scope)
isParentOf