61
(Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services) Gerd Breiter Frank Leymann Simon Moser Thomas Spatzier

(Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

  • Upload
    vashon

  • View
    59

  • Download
    0

Embed Size (px)

DESCRIPTION

(Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services). Gerd Breiter Frank Leymann Simon Moser Thomas Spatzier. Terminology. Caution: Terminology. SOA and Systems Management… - PowerPoint PPT Presentation

Citation preview

Page 1: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

(Cloud) Services:An Introduction to TOSCA

(Topology and Orchestration Specification for Cloud Services)

Gerd BreiterFrank LeymannSimon Moser

Thomas Spatzier

Page 2: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Terminology

2

Page 3: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Caution: Terminology

SOA and Systems Management…

…use the terms “service”, “composition”, “orchestration”,… differently

…at least with different foci

3

Page 4: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Terminology: Service

“Service” means different things In SOA: Any kind of (reasonably coarse-grained)

application function Interesting discussion: what is an application? It depends on the

domain… In Systems Management: Any kind of resource and

appropriate actions required to support business with IT Interesting discussion: systems management is an application too.

Thus, the SOA notion of service applies too – but that might get confusing at this point in time

4

Page 5: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Terminology: Orchestration

“Orchestration” means different things In SOA: the aggregation of application functions into

higher level business functions In Systems Management: the proper sequencing of

individual management tasks to manage complex IT artifacts

YES: both can be done with the same underlying technology (BPMN, BPEL,…) but the focus is very different

5

Page 6: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Terminology: Composition

“Composition” means different things In SOA/SCA: the aggregation of application functions and

their relations for the purpose of proper deployment In Systems Management: the “parts tree” of complex IT

artifacts for the purpose of setting up the artifacts correctly, as well as the processes for ensuring the appropriate continuous management of the artifacts

6

Page 7: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Conceptual Overview

7

Page 8: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Imagine…

…that you have a nice application that you want to be able to be hosted in different clouds

Why do you want that? Because you don’t want to be locked into the platform of a

single cloud provider, or Because you start in your own private cloud and want to

be able to move it to public cloud or to some community cloud or to hybrid cloud

8

Page 9: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

CloudProvider A

CloudProvider B

3. Move (i.e. Provision)

1. Provision& Manage

4. Use

5. Manage

Thus, the Scenario is:Moving Cloud Applications

9

2. Use

Page 10: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

What are the Technical Problems?

No interoperable description exists of what your application is and what it requires Virtual images do not suffice at all

They are “just” snapshots of the actual state of your application Another provider might not have a clue how to install,

deploy, run & manage your application Deep detailed skills about the application and its

underlying stack is needed that “arbitrary” providers typically don’t have

10

Page 11: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

What Is “(Cloud) Service Template” All About?

A new language (“metamodel”) to specify the building blocks of your application the management functions these

building blocks offer to be managed

the relations between these building blocks

Collection of node types and relationship types(for reuse purposes)

the procedures to follow in order to manage your application as a whole 11

NodeTypes

Rel.shipTypes

Plans

Topology(Template)

(Clo

ud) S

ervi

ce Te

mpl

ate

GroupTemplate

Page 12: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Graphical Representation

12

Prop

ertie

s Interfaces

NodeTemplate

Topology Template

type for

Node Type

Relationship Template

Service TemplateNode Types

Plans

type for

Prop

ertie

s Relationship TypeRelationship Types

GroupTemplate

Page 13: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

…and More Colorful…

13

Topology Plans

Page 14: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

…and With Angular Brackets…

14

<ServiceTemplate …> <Extensions/>? <Import />*

<Types/>?

( <TopologyTemplate/>

| <TopologyTemplateReference/>)?

<NodeTypes/>?

<RelationshipTypes/>?

<Plans/>? </ServiceTemplate>

Page 15: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: High Level View

15

WebSphereCell

DB2 Server

WebSphereProcessServer

BPEL Files

EJBs

WSDL Files

uses

implementedby

deployedOn

requires

requires

deployedOn

deployedOn…and this is a bit more clomplex…

Node Template

Relationship Template

Page 16: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: WebSphere Cell Refined

16

WebSphere Cell

IHSNode

WAS NDDeployMgr

Node

WAS NDManaged

Node

Application Server

Instance

Cluster

DB2 Server

DB2 Database Instance

"cluster""database"

1..*

1..*exists

Properties, e.g.:ports, servername, weight

Properties, e.g.:WAS install location, Profile name, Node name

WebSphereCell

DB2 Server

Page 17: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Overall Topology Template

17

WebSphere Cell

IHSNode

WAS NDDeployMgr

Node

WAS NDManaged Node

Application Server Instance

Cluster

DB2 Server

DB2 Database Instance

1..*

1..*

WebSphereProcessServer

BPEL Files

EJBs

WSDL Files

Page 18: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Amazon

18

WebSphereCell

DB2 Server

WebSphereProcessServer

BPEL Files

EJBs

WSDL Files

uses

implementedby

deployedOn

requires

requires

deployedOn

deployedOn

Amazon

Page 19: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

…Which is the “Interoperable Service Templates” Scenario (see later)

19

WebSphereCell

DB2 Server

WebSphereProcessServer

BPEL Files

EJBs

WSDL Files

Amazon

Page 20: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Amazon – Refined Scenario

20

WebSphereCell

DB2 Server(WAS Data)

WebSphereProcessServer

BPEL Files

EJBs

WSDL Filesuses

Implemented by deployedOn

requires

requires

Amazon

DB2 Server(Application

Data)

requires

WebSphereCell

deployedOn

On Premise

Page 21: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Amazon – Refined Scenario(Details)

21

WebSphereCell

DB2 Server(WAS Data)

WebSphereProcessServer

BPEL Files

EJBs

WSDL Filesuses

Implemented by deployedOn

requires

requires

Amazon

DB2 Server(Application

Data)

requires

WebSphereCell

deployedOn

On Premise

The Web Services required by the BPEL processes are hosted on premise

The EJBs (e.g.) implementing the Web Services are deployed on WebSphere hosted on premise

The application data of the WS/EJBs are stored in DB2 on premise

This ensures compliance with data privacy/confidentiality rules

Process Server etc is installed and managed at Amazon’s EC2

The corresponding middleware is provided as AMIs

The process models are deployed on Process Server

Process Server maintains state data in DB2 also running in EC2

Page 22: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Reusing Existing Services

22

Only the processes and required middleware is managed on a “known” cloud

The Web Services needed by the BPEL processes are reused “wherever” they are

The existing Web Services are bound to the BPEL process by the established mechanisms

Specifying binding details can be part of the build plan of the application’s Service Template (.ste)

WebSphereCell

DB2 Server

WebSphereProcessServer

BPEL Files

WSDL Files

uses

deployedOn

requires

requires

deployedOn

WS1

WS2

WSn

„somewhere1“

„somewhere2“

„somewheren“

boun

d to

Page 23: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: SAP

23

Netweaver

Oracle

SAP Workflow

BPEL Files

EJB

WSDL Files

uses

implementedby

deployedOn

requires

requires

deployedOn

deployedOn

SAP

Page 24: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Microsoft

24

.Net

SQL Server

BizTalk

BPEL Files

.NetAssemblies

WSDL Files

uses

implementedby

deployedOn

requires

requires

deployedOn

deployedOn

Azure

Page 25: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Different Hosters of a Particular Application

25

Netweaver

Oracle

SAP Workflow

BPEL Files

EJB

WSDL Files

uses

implementedby

deployedOn

requires

requires

deployedOn

deployedOn

IBM

AT&T

T-Systems

...

Page 26: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

…Which is the “Market for Cloud Applications” Scenario (see later)

26

Netweaver

Oracle

SAP Workflow

BPEL Files

EJB

WSDL Files

uses

implementedby

deployedOn

requires

requires

deployedOn

deployedOn

IBM

AT&T

T-Systems

...

Page 27: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Sample:Websphere Management Plans

27

Provision Dmgr

Enable Admin

Security

Start Dmgr

Create Cluster

Provision Managed Node

Federate Node

DeployMon. Agent

Create Cluster

Members

Provision IHS Node

Deploy Mon. Agent

(IHS)Start IHS Configure

WebserverStart

Cluster

Deploy Monitoring

Agent (Dmgr)

Provision Managed Node

Federate Node

DeployMon. Agent

Create Cluster

Members

Start Cluster

Unfederate Node Reconfigure

Webserver

RemoveMon. Agent

Deprovision Managed Node

InitialProvisioning

Add Nodes

Remove Nodes

Page 28: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

How Plans and Nodes Fit Together

Task of a plan refers to interface of a topology node

Topology node specifies all interfaces offered to manage it

Interface is bound to a concrete implementation

Implementation already available at providers side, or Implementation is copied from somewhere, or A standardized Cloud Interface (Iaas, PaaS, SaaS) is used,

or ...

28

WebSphere Cell …

Create Cluster

… …

Script- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

…refers to…

…bound to…

Page 29: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

A Caveat!

The “(Cloud) Service Template” spec is not (!) about standardizing topologies and plans for a series of concrete products

The “(Cloud) Service Template” spec is (!) about standardizing the language that can be used to precisely describe topologies and plans for concrete products

Various products (i.e. their topologies and plans) can be standardized base on that at a later time By various domain experts, vendors,…

29

Page 30: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Baseline

TOSCA is modular and composable

It does not reinvent the wheel, i.e. it uses existing standards wherever possible E.g. WSDL, BPMN, OVF,…

30

Page 31: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Motivation

31

Page 32: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

CloudProvider A

CloudProvider B

4. Move

Service Template

Service InstanceService Instance

Service Template

1. Build

2. Use 3. Want Use

5. Build

6. Use

Scenario 1:Mobility of Cloud Applications

32

Page 33: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Important Note

TOSCA deals with interoperability of Service Templates here

I.e. portability of the ingredients of an IT Service (especially the code artifacts) is not addressed by TOSCA

Similarly, mobility of data used by a corresponding service instance is not in the scope of TOSCA

33

Page 34: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

ServiceCatalog

1. Create

2. Publish

3. Browseand Select

4. Provision

5. Use

Service Template

Service Instance

Scenario 2: Creating a Market For Cloud Applications

34

Page 35: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

CloudProvider A

Realized By

Implemented As

CloudProvider C

CloudProvider B

Scenario 3:Interoperable Service Compositions

35

Page 36: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Scenario 4:Using OVF Packages

36

Note: only subtree of servicedefinition relates to OVF, othersubtrees/nodes can point toshared resources (e.g. DB2,…)

<ovf:Envelope ... > <ovf:VirtualSystemCollection...>

<ovf:VirtualSystem ... > ... <ovf:ProductSection ... > ... </ovf:ProductSection ... > ... </ovf:VirtualSystem>

<ovf:VirtualSystem ... > ... </ovf:VirtualSystem>

...

</ovf:VirtualSystemCollection></ovf:Envelope>

Page 37: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Refined View

37

How ...

------------

------------

------------

OVF OV

FOVF

With ...Scripts WorkflowsEAR (EJBs,…)BPEL

The images of the middleware (DB2, Websphere,…) required to run the application

The business logic of the application, e.g. EJBs, JSPs, JPEG,…

The business processes of the application (BPEL, BPMN, Human Tasks,…)

(Existing) scripts used by task of plans to manage the cloud application

(Existing) workflows used by subprocess-tasks of plans

Page 38: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Service

Cloud Management & Orchestration

38

SaaS

Server Server Storage

AppSrv DB

Application

PaaS

IaaS is maturing. Evolution of standards like OVF or defacto standards like EC2 or S3 enable growth of ecosystems.

PaaS offerings exist (e.g. MicroSoft Azure), but are restricted solely to the PaaS layer.

SaaS offerings exist (e.g Google Apps), but as standalone offerings restricted to the SaaS layer.

Interfaces between PaaS and IaaS starting to evolve.

Components in a composite service can come from one Cloud, multiple Clouds, or can be non-Cloud resources (e.g. existing company LDAP or private DBs).

Man

agem

ent

Scop

e

Management Functionality

Deploy, Decommission

Start, Stop, Resize

Management Plans covering the complete service life cylce.

IaaS

CloudManagement & Orchestration

Page 39: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Service Template: Specification Overview

39

Page 40: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Ingredients of a Service Template

40

Prop

ertie

s Interfaces

NodeTemplate

Topology Template

type for

Node Type

Relationship Template

Service TemplateNode Types

Plans

type for

Prop

ertie

s Relationship TypeRelationship Types

GroupTemplate

Page 41: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Structure of .ste Document

41

<ServiceTemplate id="ID" name="string" targetNamespace="anyURI"> <Extensions/>? <Import />* <Types/>? ( <TopologyTemplate/>| <TopologyTemplateReference/>)? <NodeTypes/>? <RelationshipTypes/>?

<Plans/>? </ServiceTemplate>

Topology Template

Node Types

Relationship Types

Plans

Page 42: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Node Types: Overall Structure

42

<NodeTypes>? <NodeType id="ID" name="string">+ <NodeTypeProperties element="Qname"? type="QName"?/>? <DerivedFrom nodeTypeRef="QName"/>?

<InstanceStates/>? <Interfaces/>? <DeploymentArtifacts/>? <Policies/>? </NodeType> </NodeTypes>

Prop

ertie

s Interface

Node TypeNode Types

Page 43: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Interfaces of Node Types

43

<Interfaces>? <Interface>+ ( <WSDL portType="QName“ operation="NCName">+ | <REST method="GET | PUT | POST | DELETE" requestURI="anyURI" requestPayload="QName"? responsePayload="QName"?>+ | <Operation name="NCame">+ <InputParameters>? <InputParamter name="string" type="string" required="yes|no">+ </InputParameters> <OutputParameters>? <OutputParamter name="string" type="string">+ </OutputParameters> <Implementations> <Implementation implementationID="anyURI"? language="anyURI"?>+ ( <ImplementationProper>? code </ImplementationProper> | <ImplementationReference ref="anyURI"/>? ) <Implementation> </Implementations> </Operation> ) </Interface> </Interfaces>

Interfaces

Page 44: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Deployment Artfactsof Node Types

44

<DeploymentArtifacts>? <DeploymentArtifact name="string" type="anyURI">+ artifact specific content </DeploymentArtifact></DeploymentArtifacts>

Page 45: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Policies of Node Types

45

<Policies>? <Policy name="string" type="anyURI">+ policy specific content </Policy> </Policies>

Page 46: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Node Types

<ServiceTemplate name="myService" targetNamespace="http://www.ibm.com/sample"> <NodeTypes> <NodeType name="Project"> <documentation xml:lang="EN"> A reusable definition of a node type supporting the creation of new projects. </documentation> <NodeTypeProperties element="ProjectProperties"/>

<InstanceStates> <InstanceState state="www.my.com/active"/> <InstanceState state="www.my.com/onHalt"/> </InstanceStates>

...

...<Interfaces> <Interface> <Operation name="CreateProject"> <InputParameters> <InputParamter name="ProjectName" type="string"/> <InputParamter name="Owner" type="string"/> <InputParamter name="AccountID" type="string"/> </InputParameters> <Implementations> <Implementation> ... </Implementation> </Implementations> </Operation> </Interface> </Interfaces> </NodeType> </NodeTypes> </ServiceTemplate>>

Page 47: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Relationship Types

47

<RelationshipTypes> <RelationshipType id="ID" name="string" semantics="anyURI" cascadingDeletion="yes|no">+ <RelationshipTypeProperties element="QName"? type="QName"?/>?

<InstanceStates>? <InstanceState state="anyURI">+ </InstanceStates> </RelationshipType> </RelationshipTypes>

Prop

ertie

s Relationship TypeRelationship Types

Page 48: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Relationship Types

<RelationshipTypes> <RelationshipType name="processDeployedOn" semantics="www.my.com/RelSemantics/procDeployedOn" cascadingDeletion="yes"> <RelationshipTypeProperties element="ProcessDeployedOnProperties"/> <InstanceStates> <InstanceState state="www.my.com/successfullyDeployed"/> <InstanceState state="www.my.com/failed"/> </InstanceStates>

</RelationshipType> </RelationshipTypes>

Page 49: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

<TopologyTemplate id="ID" name="string"?> ( <NodeTemplate/> | <RelationshipTemplate/> | <GroupTemplate/> )+ </TopologyTemplate>^

Topology Template

49

Node Template

…type for…

Relationship Template

…type for…

GroupTemplate

Page 50: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Topology Template (cont.)

50

<TopologyTemplate id="ID" name="NCName"> ( <NodeTemplate id="ID" name="string" nodeType="QName" minInstances="int"? maxInstances="int|string"?>+ <PropertyDefaults>? XMLDocument </PropertyDefaults> <PropertyConstraints>? <PropertyConstraint property="string" constraintType="anyURI">+ constraint? </PropertyConstraint> </PropertyConstraints> <Policies/>? <EnvironmentConstraints>? <EnvironmentConstraint constraintType="anyURI">+ constraint type specific content? </EnvironmentConstraint> </EnvironmentConstraints> <DeploymentArtifacts/>? </NodeTemplate> | <RelationshipTemplate/> | <GroupTemplate/> )+ </TopologyTemplate>

Node Template

…type for…

Relationship Template

…type for…

GroupTemplate

Page 51: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Topology Template (cont.)

51

<TopologyTemplate id="ID" name="NCName"> ( <NodeTemplate/> | <RelationshipTemplate id="ID" name="string" relationshipType="QName">+ <SourceNodeElement id="IDREF"/> ( <TargetNodeElement id="IDREF"/> | <TargetNodeTemplateReference name="QName"/> ) <PropertyDefaults/>? <RelationshipConstraints>? <RelationshipConstraint constraintType="anyURI">+ constraint? </RelationshipConstraint> </RelationshipConstraints> </RelationshipTemplate> | <GroupTemplate/> )+ </TopologyTemplate>

Node Template

…type for…

Relationship Template

…type for…

GroupTemplate

Page 52: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Topology Template (cont.)

52

<TopologyTemplate id="ID" name="NCName"> ( <NodeTemplate/> | <RelationshipTemplate/> | <GroupTemplate id="ID" name="string"? minInstances="int"? maxInstances="int|string"?> ( <NodeTemplate ... /> | <RelationshipTemplate ... /> | <GroupTemplate ... /> )+ <Policies/> </GroupTemplate> )+ </TopologyTemplate>

Node Template

…type for…

Relationship Template

…type for…

GroupTemplate

Page 53: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Service Topology Template

<ServiceTemplate name="myService" targetNamespace="http://www.ibm.com/sample" xmlns:abc="http://www.ibm.com/sample"> <Import namespace="http://www.ibm.com/sample" importType=" http://www.example.org/STE"/> <TopologyTemplate name="VirtualServerProject"> <NodeTemplate id="myProject" nodeType="abc:Project"> <PropertyDefaults> <ProjectProperties> <Owner>Frank</Owner> <ProjectName>Thomas’ favorite project</ProjectName> </ProjectProperties> </PropertyDefaults> <NodeTemplate/>

<NodeTemplate id="myVirtualServer" nodeType="abc:VirtualServer" minInstances="0" maxInstances="unbounded"/> ...

<RelationshipTemplates> <RelationshipTemplate name="myRelationship" relationshipType="contains"> <SourceNodeElement id="myProject"/> <TargetNodeElement id="myVirtualServer"/> </RelationshipTemplate> </RelationshipTemplates> </TopologyTemplate> </ServiceTemplate>

53

Page 54: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Plans

54

<Plans> <Plan id="ID" name="string"? planType="anyURI" languageUsed="anyURI">+ <PreCondition expressionLanguage="anyURI">? condition </PreCondition> ( <PlanModel> actual plan </PlanModel> | <PlanModelReference reference="anyURI"/> ) </Plan> </Plans>

Plans

Page 55: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Example: Plans

...

<Plan id="RemoveApplication" planType= "http://www.example.org/STE/PlanTypes/TerminatioPlan" languageUsed= "http://docs.oasis-open.org/wsbpel/…/executable"> <PlanModelReference reference="prj:RemoveApp"/> </Plan> </Plans>

<Plans> <Plan id="DeployApplication" name="Sample Application Build Plan" planType= "http://www.example.org/STE/PlanTypes/BuildPlan" languageUsed="http://www.omg.org/spec/BPMN/2.0/"> <PreCondition expressionLanguage="www.my.com/text">? Run only if funding is available </PreCondition> <PlanModel> <process name="DeployNewApplication" id="p1"> <task id="t1" name="CreateAccount"/> <task id="t2" name="AcquireNetworkAddresses" isSequential="false" loopDataInput="t2Input.LoopCounter"/> <sequenceFlow id="s1" targetRef="t2" sourceRef="t1"/> ... </process> </PlanModel>

...

Page 56: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Scenario

56

Page 57: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Sample Node Type: SuperStorage

<xs:element name="StorageProperties"> <xs:complexType> <xs:sequence> <xs:element name="TotalStorageAmount" type="xs:string"/> <xs:element name="IPAddress" type="xs:string"/> … </xs:sequence> </xs:complexType> </xs:element>

<NodeType name="SuperStorage"> <NodeTypeProperties element="StorageProperties"/> <Interface> <Operation name="CreateStorageContainer"> <REST method="POST" … <Operation name="AddFile"> <REST method="PUT" … … </Interface> </NodeType>

Page 58: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Vendor „BestStorageVendor“ Sells ist Devices with Corresponding Node Template

BestStorageVendor defines Node Template to specify its BestStorageDevice based on former Node Type

Vendor sets Properties that are known from the outset TotalStorageAmount is known IPAddress is set during installation/deployment

Implementation of interface is referenced from Node Template

<NodeTemplate name="BestStorageDevice" nodeType="SuperStorage"> <PropertyDefaults> <TotalStorageAmount>1000TB</TotalStorageAmount> </PropertyDefaults>

<DeploymentArtifacts> <DeploymentArtifact name="InterfaceImplementation" type="WARref">

... </DeploymentArtifact> </DeploymentArtifacts>

</NodeTemplate>

Page 59: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Customer Deploys New Device

.......

.....

Service Template Deployment Artifacts

StorageAPI.war

TOSCAContainer

TOSCADatabase

1

2

3

StorageAPI.war

1. IPAddress-Property of Device is set2. StorageAPI.war is deployed

• IP address of Servlet Container is set3. IP-Address of Servlet Container becomes HOST header for REST API

Page 60: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

Tasks of Plans are Deployed

BestStorageDevice

CreateStorage

… …

1. refers to…

3. values from…

TOSCADatabase

<NodeTemplate name="BestStorageDevice" nodeType="SuperStorage"> <PropertyDefaults> <TotalStorageAmount>1000TB</TotalStorageAmount> </PropertyDefaults> <NodeType name="SuperStorage"> <Interface> <Operation name="CreateStorageContainer"> <REST method="POST" …

CreateStorageContainer

StorageAPI.war

2. requires data…

4. locates code…

Page 61: (Cloud) Services: An Introduction to TOSCA (Topology and Orchestration Specification for Cloud Services)

End of Document

61