Interface Registry
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