16.01.2014 Views

Merging of TOSCA Cloud Topology Templates - IAAS

Merging of TOSCA Cloud Topology Templates - IAAS

Merging of TOSCA Cloud Topology Templates - IAAS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2 Fundamentals<br />

Node Type<br />

As already mentioned above Node Types are an important part <strong>of</strong> a Service Template. They<br />

describe the properties <strong>of</strong> one or more Node <strong>Templates</strong>. The following paragraph discusses<br />

the properties <strong>of</strong> a NodeType element which are important in the scope <strong>of</strong> this thesis.<br />

NodeTypeProperties are the observable properties such as configuration and state <strong>of</strong> a Node-<br />

Type element. They are defined in the Types element <strong>of</strong> a Service Template or in an external<br />

XML Schema file.<br />

<strong>TOSCA</strong> <strong>of</strong>fers an inheritance/derivation mechanism via the DerivedFrom element. It contains<br />

a reference to another Node Type acting as a basis for derivation. The properties and<br />

operations <strong>of</strong> the base Node Type either form a union with the newly defined properties and<br />

operations or are overridden by the new Node Type in case <strong>of</strong> conflict.<br />

The optional InstanceStates element represents the states a NodeType element can occupy<br />

once it has been instantiated. Possible states are e.g. started or stopped.<br />

The Interface element contains the description <strong>of</strong> the functions that belong to a certain Node<br />

Type. These functions are invoked by operations which are in turn implemented by so<br />

called ImplementationArtifacts. The Operation element can either define a Web Service call<br />

and its WSDL port type and operation or a REST call with its HTTP methods and headers as<br />

well as optional parameters. The third kind <strong>of</strong> operation that can be defined is the script via<br />

the ScriptOperation element and its input and output parameters. The optional ImplementationArtifact<br />

element names the concrete artifacts that are needed to implement the abstract<br />

operations <strong>of</strong> the Interface element. The artifacts could be Python scripts or WSDL files that<br />

can be provided in place or referenced from an external location. The RequiredContainerCapability<br />

element and its attribute capability indicate if there exist particular dependencies<br />

to the execution environment <strong>of</strong> the operation implementation, e.g. the need for environment<br />

provided interfaces to manipulate images or EJBs.<br />

The optional Policies element is a container for Policy elements describing the kind <strong>of</strong> policies<br />

a Node Type instance supports. These policies apply to management aspects such as<br />

billing or monitoring.<br />

The last important element <strong>of</strong> a Node Type is the optional DeploymentArtifacts element. It<br />

specifies all the concrete deployment artifacts that are required to instantiate a particular<br />

Node Type. These could be EAR files for a Java EE application or a virtual image for installing<br />

a Java EE Application Server.<br />

Relationship Type<br />

Relationship Types specify the type <strong>of</strong> one or more Relationship <strong>Templates</strong> which serve as<br />

edges between the Node <strong>Templates</strong> in a <strong>Topology</strong> Template graph. Similar to the Node<br />

Types the Relationship Types define properties and potential states during runtime but no<br />

operations are specified. An important attribute <strong>of</strong> a RelationshipType element is semantics<br />

which denotes the expected behavior <strong>of</strong> the RelationshipType under definition.<br />

11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!