Interface Registry
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:
- class interfaces: describe the prototypical resource of a given class, independently of how it is managed within the system;
- function interfaces: describe resources in support of one or more management functions;
For convenience of reference, the definitions of prototype 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/common/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/common/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/common/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/common/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/common/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/common/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/common/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/common/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