Difference between revisions of "Interface Registry"
(Created page with ' The model defines a number of interfaces that standardize properties common to broad classes of managed resources. Interfaces may be classified according to their ''kind'': * …') |
Luca.frosini (Talk | contribs) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:TO BE REMOVED]] | ||
− | The model defines a | + | The gCube [[Resource Model (2nd generation)|Resource Model]] model defines a small set of primitives for the modular and incremental description of computational resources managed within the system. [[Resource Model (2nd generation)#Facets|Facets]] in particular are collections of resource properties which serve as units for modular resource descriptions. |
− | + | While many facets are defined ''privately'' by and for a group of related producers and consumers, many others have public definitions within the system. Public facets are known as [[Resource Model (2nd generation)#Interfaces|interfaces]]. | |
− | + | This document reports all the interfaces that are known within the system, and in this sense acts as a registry for them. In it, interfaces are classified according to their ''kind'': | |
− | + | ||
− | For convenience of reference, the definitions of | + | * ''class interfaces'': describe the prototypical resource of a given class, independently of how its resources managed within the system; |
+ | * ''function interfaces'': describe resources across two or more classes in support of one or more management functions; | ||
+ | |||
+ | For convenience of reference, the definitions of class and function interfaces are grouped below per resource class. | ||
Function interfaces that describes resources in two more classes are grouped separately, as ''common interfaces''. | Function interfaces that describes resources in two more classes are grouped separately, as ''common interfaces''. | ||
Line 26: | Line 29: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <schema targetNamespace="http://gcube-system.org/namespaces/resource/function | + | <schema targetNamespace="http://gcube-system.org/namespaces/resource/function/lifetime" |
elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> | elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> | ||
Line 47: | Line 50: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <l:lifetime xmlns:l="http://gcube-system.org/namespaces/resource/function | + | <l:lifetime xmlns:l="http://gcube-system.org/namespaces/resource/function/lifetime" > |
<l:status>certified</l:status> | <l:status>certified</l:status> | ||
<l:activationTime>2012-06-10T21:29:05+02:00</l:activationTime> | <l:activationTime>2012-06-10T21:29:05+02:00</l:activationTime> | ||
Line 59: | Line 62: | ||
:'''kind''':function | :'''kind''':function | ||
− | :'''name''': <code>{http://gcube-system.org/namespaces/resource | + | :'''name''': <code>{http://gcube-system.org/namespaces/resource/certificate}certificate</code> |
:'''role''': report information on the credentials associated to the resource through an X.509 certificate | :'''role''': report information on the credentials associated to the resource through an X.509 certificate | ||
Line 71: | Line 74: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <schema targetNamespace="http://gcube-system.org/namespaces/resource/function | + | <schema targetNamespace="http://gcube-system.org/namespaces/resource/function/certificate" |
elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> | elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> | ||
Line 90: | Line 93: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <s:certificate xmlns:s="http://gcube-system.org/namespaces/resource/function | + | <s:certificate xmlns:s="http://gcube-system.org/namespaces/resource/function/certificate"> |
<s:ca>/C=IT/O=INFN/CN=INFN CA</s:ca> | <s:ca>/C=IT/O=INFN/CN=INFN CA</s:ca> | ||
<s:dn>/C=IT/O=INFN/OU=Host/L=NMIS-ISTI/CN=node2.tsec.d4science.research-infrastructures.eu</s:dn> | <s:dn>/C=IT/O=INFN/OU=Host/L=NMIS-ISTI/CN=node2.tsec.d4science.research-infrastructures.eu</s:dn> | ||
Line 100: | Line 103: | ||
:'''kind''':function | :'''kind''':function | ||
− | :'''name''': <code>{http://gcube-system.org/namespaces/resource/ | + | :'''name''': <code>{http://gcube-system.org/namespaces/resource/function/label}labels</code> |
:'''role''': list of labels characterizing the resource | :'''role''': list of labels characterizing the resource | ||
Line 110: | Line 113: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <schema targetNamespace="http://gcube-system.org/namespaces/resource/function/ | + | <schema targetNamespace="http://gcube-system.org/namespaces/resource/function/function/label" |
elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> | elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> | ||
Line 135: | Line 138: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <l:labels xmlns:l="http://gcube-system.org/namespaces/resource/function | + | <l:labels xmlns:l="http://gcube-system.org/namespaces/resource/function/label"> |
<l:label name="java">...any...</l:label> | <l:label name="java">...any...</l:label> | ||
<l:label name="gcore">...any...</l:label> | <l:label name="gcore">...any...</l:label> |
Latest revision as of 13:36, 19 October 2016
The gCube Resource Model model defines a small set of primitives for the modular and incremental description of computational resources managed within the system. Facets in particular are collections of resource properties which serve as units for modular resource descriptions.
While many facets are defined privately by and for a group of related producers and consumers, many others have public definitions within the system. Public facets are known as interfaces.
This document reports all the interfaces that are known within the system, and in this sense acts as a registry for them. In it, interfaces are classified according to their kind:
- class interfaces: describe the prototypical resource of a given class, independently of how its resources managed within the system;
- function interfaces: describe resources across two or more classes in support of one or more management functions;
For convenience of reference, the definitions of class and function interfaces are grouped below per resource class. Function interfaces that describes resources in two more classes are grouped separately, as common interfaces.
Contents
Common Interfaces
<lifetime>
- kind:function
- name:
{http://gcube-system.org/namespaces/resource/common/lifetime}lifetime
- role: describe the lifetime of the resource
The interface defines the following properties:
- @TODO
- @TODO
The interface is bound to the XML representation defined by the following XML Schema:
<schema targetNamespace="http://gcube-system.org/namespaces/resource/function/lifetime" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="lifetime"> <complexType> <sequence> <element name="status" type="string"/> <element name="activationTime" type="dateTime"/> <element name="deactivationTime" type="dateTime" use="optional"/> <element name="lastUpdate" type="dateTime"/> <element name="nextUpdate" type="dateTime"/> </sequence> </complexType> </element> </schema>
A sample serialisation is the following:
<l:lifetime xmlns:l="http://gcube-system.org/namespaces/resource/function/lifetime" > <l:status>certified</l:status> <l:activationTime>2012-06-10T21:29:05+02:00</l:activationTime> <l:deactivationTime>2012-07-23T21:29:05+02:00</l:deactivationTime> <l:lastUpdate>2012-06-29T06:36:50+01:00</l:lastUpdate> <l:nextUpdate>2012-06-29T06:37:50+01:00</l:nextUpdate> </l:lifetime>
<certificate>
- kind:function
- name:
{http://gcube-system.org/namespaces/resource/certificate}certificate
- role: report information on the credentials associated to the resource through an X.509 certificate
The interface defines the following properties:
- ca: the Certification Authority that issued the certificate
- dn: the Distinguished Name of the certificate
- expireOn: the expiration date and time of the certificate
The interface is bound to the XML representation defined by the following XML Schema:
<schema targetNamespace="http://gcube-system.org/namespaces/resource/function/certificate" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="certificate"> <complexType> <sequence> <element name="ca" type="string"/> <element name="dn" type="string"/> <element name="expireOn" type="dateTime"/> </sequence> </complexType> </element> </schema>
A sample serialisation is the following:
<s:certificate xmlns:s="http://gcube-system.org/namespaces/resource/function/certificate"> <s:ca>/C=IT/O=INFN/CN=INFN CA</s:ca> <s:dn>/C=IT/O=INFN/OU=Host/L=NMIS-ISTI/CN=node2.tsec.d4science.research-infrastructures.eu</s:dn> <s:expireOn>2012-06-06T14:55:49+02:00</s:expireOn> </s:certificate>
<labels>
- kind:function
- name:
{http://gcube-system.org/namespaces/resource/function/label}labels
- role: list of labels characterizing the resource
The interface defines the following properties:
- @TODO
The interface is bound to the XML representation defined by the following XML Schema:
<schema targetNamespace="http://gcube-system.org/namespaces/resource/function/function/label" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="labels"> <complexType> <sequence> <element name="label" maxOccurs="unbounded"> <complexType> <simpleContent> <extension base="string"> <attribute name="name" type="string" use="required"/> </extension> </simpleContent> </complexType> </element> </sequence> </complexType> </element> </schema>
A sample serialisation is the following:
<l:labels xmlns:l="http://gcube-system.org/namespaces/resource/function/label"> <l:label name="java">...any...</l:label> <l:label name="gcore">...any...</l:label> <l:label name="ghn">...any...</l:label> </l:labels>
Hardware
<hardware>
- kind: class
- name:
{http://gcube-system.org/namespaces/resource/class}hardware
- role: describe any hardware exploited in the infrastructure
The interface defines the following properties:
- @TODO
- @TODO
The interface is bound to the XML representation defined by the following XML Schema:
<schema targetNamespace="http://gcube-system.org/namespaces/resource/class" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="hardware"> <complexType> <sequence> <element name="architecture"> <complexType> <simpleContent> <extension base="string"> <attribute name="platformType" type="string"/> <attribute name="SMPSize" type="string" use="optional"/> <attribute name="SMTSize" type="string" use="optional"/> </extension> </simpleContent> </complexType> </element> <element name="operatingSystem"> <complexType> <simpleContent> <extension base="string"> <attribute name="name" type="string"/> <attribute name="release" type="string" use="optional"/> <attribute name="version" type="string" use="optional"/> </extension> </simpleContent> </complexType> </element> <element name="processor" maxOccurs="unbounded"> <complexType> <simpleContent> <extension base="string"> <attribute name="vendor" type="string"/> <attribute name="model" type="string"/> <attribute name="family" type="string"/> <attribute name="modelName" type="string"/> <attribute name="ClockSpeedMhz" type="string"/> <attribute name="Bogomips" type="string"/> <attribute name="CacheL1" type="string"/> <attribute name="CacheL2" type="string"/> </extension> </simpleContent> </complexType> </element> </sequence> </complexType> </element> </schema>
A sample serialisation is the following:
<h:hardware xmlns:h="http://gcube-system.org/namespaces/resource/class"> <h:architecture platformType="amd64" SMPSize="0" SMTSize="0"/><!-- 1 --> <h:operatingSystem name="Linux" release="" version="2.6.32-5-xen-amd64"/> <h:processor vendor="GenuineIntel" model="44" modelName="Intel(R) Xeon(R) CPU E5630 @ 2.53GHz" family="6" ClockSpeedMhz="2533.468" Bogomips="5066.93" CacheL1="12288" CacheL2="0"/> <h:processor vendor="GenuineIntel" model="44" modelName="Intel(R) Xeon(R) CPU E5630 @ 2.53GHz" family="6" ClockSpeedMhz="2533.468" Bogomips="5066.93" CacheL1="12288" CacheL2="0"/> </h:hardware>
<coordinates>
- kind: function
- name:
{http://gcube-system.org/namespaces/resource/function/hardware/coordinate}coordinates
- role: give information on the geographical location of the hardware
The interface defines the following properties:
- @TODO
- @TODO
The interface is bound to the XML representation defined by the following XML Schema:
<schema targetNamespace="http://gcube-system.org/namespaces/resource/function/hardware/coordinate" elementFormDefault="qualified" xmlns:co="http://gcube-system.org/namespaces/resource/function/hardware/coordinate" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="coordinates"> <complexType> <sequence> <element name="location" type="string"/> <element name="country" type="co:countryCode"/> <element name="latitude" type="double"/> <element name="longitude" type="double"/> <element name="domain" type="string"/> </sequence> </complexType> </element> <simpleType name="countryCode"> <restriction base="string"> <length value="2"/> </restriction> </simpleType> </schema>
A sample serialisation is the following:
<c:coordinates xmlns:c="http://gcube-system.org/namespaces/resource/function/hardware/coordinate"> <c:location>Pisa</c:location> <c:country>it</c:country> <c:latitude>43.719627</c:latitude> <c:longitude>10.421626</c:longitude> <c:domain>research-infrastructures.eu</c:domain> </c:coordinates>
<runtime>
- kind: function
- name:
{http://gcube-system.org/namespaces/resource/function/hardware/runtime}runtime
- role: report runtime information on the hardware status
The interface defines the following properties:
- @TODO
- @TODO
The interface is bound to the XML representation defined by the following XML Schema:
<schema targetNamespace="http://gcube-system.org/namespaces/resource/function/hardware/runtime" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="runtime"> <complexType> <sequence> <element name="load"> <complexType> <simpleContent> <extension base="string"> <attribute name="last1Min" type="decimal" use="required"/> <attribute name="last5Min" type="decimal" use="required"/> <attribute name="last15Min" type="decimal" use="required"/> </extension> </simpleContent> </complexType> </element> <element name="mainMemory"> <complexType> <simpleContent> <extension base="string"> <attribute name="RAMSize" type="integer" use="required"/> <attribute name="RAMAvailable" type="integer" use="required"/> <attribute name="virtualSize" type="integer" use="required"/> <attribute name="virtualAvailable" type="integer" use="required"/> </extension> </simpleContent> </complexType> </element> <element name="localAvailableSpaceInBytes" type="nonNegativeInteger"/> <element name="uptimeInDays" type="integer"/> </sequence> </complexType> </element> </schema>
A sample serialisation is the following:
<r:runtime xmlns:r="http://gcube-system.org/namespaces/resource/function/hardware/runtime"> <r:load last1Min="0.04" last5Min="0.05" last15Min="0.0"/> <r:mainMemory RAMSize="1995" virtualSize="1994" RAMAvailable="207" virtualAvailable="73"/> <r:localAvailableSpaceInBytes>21628452</r:localAvailableSpaceInBytes> <r:uptimeInDays>205</r:uptimeInDays> </r:runtime>
<addressing>
- kind: function
- name:
{http://gcube-system.org/namespaces/resource/function/hardware/addressing}addressing
- role: report access-related information on the hardware
The interface defines the following properties:
- @TODO
- @TODO
The interface is bound to the XML representation defined by the following XML Schema:
<schema targetNamespace="http://gcube-system.org/namespaces/resource/function/hardware/addressing" xmlns:a="http://gcube-system.org/namespaces/resource/function/hardware/addressing" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="addressing"> <complexType> <sequence> <element name="domainName" type="string" maxOccurs="unbounded"/> <element name="networkAdapter"> <complexType> <simpleContent> <extension base="string"> <attribute name="name" type="string" use="optional"/> <attribute name="ipAddress" type="a:ip" use="required"/> <attribute name="inboundIP" type="a:ip" use="optional"/> <attribute name="outboundIP" type="a:ip" use="optional"/> </extension> </simpleContent> </complexType> </element> </sequence> </complexType> </element> <simpleType name="ip"> <restriction base="string"> <pattern value="(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"/> </restriction> </simpleType> </schema>
A sample serialisation is the following:
<a:addressing xmlns:a="http://gcube-system.org/namespaces/resource/function/hardware/addressing"> <a:domainName>node4.tsec.d4science.research-infrastructures.eu</a:domainName> <a:networkAdapter inboundIP="146.48.122.108" outboundIP="146.48.122.108" name="local-adapter" ipAddress="146.48.122.108" /> </a:addressing>
Software
<software>
- kind: class
- name:
{http://gcube-system.org/namespaces/resource/class}software
The interface defines the following properties:
- @TODO
- @TODO
The interface is bound to the XML representation defined by the following XML Schema:
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://gcube-system.org/namespaces/resource/class" xmlns:tns="http://gcube-system.org/namespaces/resource/class" elementFormDefault="qualified"> <element name="software"> <complexType> <!-- TODO --> </complexType> </schema>
A sample serialisation is the following:
<!-- TODO -->
Software Deployment
@TODO definition and binding
A deployment of any software resource identified above.
Service Endpoints
@TODO definition and binding
- endpoint of system services (current and future);
- endpoint of external services (web-app, RDBMS, apps);
Service Instances
@TODO definition and binding
- mostly instances of stateful system services (current and future);
Data Sources
@TODO definition and binding