Merging of TOSCA Cloud Topology Templates - IAAS
Merging of TOSCA Cloud Topology Templates - IAAS
Merging of TOSCA Cloud Topology Templates - IAAS
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