Interface Registry

From Gcube Wiki
Jump to: navigation, search


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.

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