Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in...

54
Instance Model for TOSCA Version 1.0 Working Draft 01 02 February 2017 Technical Committee: OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC Chairs: Paul Lipton ([email protected]), CA Technologies John Crandall ([email protected]), Brocade Communications Systems Editor: Derek Palma ([email protected]), Vnomic Additional artifacts: This prose specification is one component of a Work Product that also includes: XML schemas: (list file names or directory name) Other parts (list titles and/or file names) Related work: This specification is related to: Topology and Orchestration Specification for Cloud Applications Version 1.0. Edited by Derek Palma and Thomas Spatzier. 25 November 2013. OASIS Standard. http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/TOSCA-v1.0-os.html. Abstract: This specification defines the information model, behavioral semantics, and access methods for a dynamic object model representation of TOSCA Service Template deployments required to enable on-going automated management of TOSCA topologies. The Instance Model represents the current state of a deployment including all inputs, concrete node fulfillments, property settings, cardinalities, relationships, applied policies, and correlation with external resources and entities. Service template deployments can be queried, navigated, reasoned over and updated with imperative workflows, policy actions, and their evolution observed over time. The instance model is extensible allowing integration of information from other domains, across deployments and orchestrators. Status: This Working Draft (WD) has been produced by one or more TC Members; it has not yet been voted on by the TC or approved as a Committee Draft (Committee Specification Draft or a Committee Note Draft). The OASIS document Approval Process begins officially with a TC vote to approve a WD as a Committee Draft. A TC may approve a Working Draft, revise it, and re-approve it any number of times as a Committee Draft. TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 15 02 February July 2017 Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 1 of 54

Transcript of Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in...

Page 1: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Instance Model for TOSCA Version 1.0

Working Draft 01

02 February 2017

Technical Committee:OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC

Chairs:Paul Lipton ([email protected]), CA TechnologiesJohn Crandall ([email protected]), Brocade Communications Systems

Editor:Derek Palma ([email protected]), Vnomic

Additional artifacts:This prose specification is one component of a Work Product that also includes: XML schemas: (list file names or directory name) Other parts (list titles and/or file names)

Related work:This specification is related to: Topology and Orchestration Specification for Cloud Applications Version 1.0. Edited by Derek

Palma and Thomas Spatzier. 25 November 2013. OASIS Standard. http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/TOSCA-v1.0-os.html.

Abstract:This specification defines the information model, behavioral semantics, and access methods for a dynamic object model representation of TOSCA Service Template deployments required to enable on-going automated management of TOSCA topologies. The Instance Model represents the current state of a deployment including all inputs, concrete node fulfillments, property settings, cardinalities, relationships, applied policies, and correlation with external resources and entities. Service template deployments can be queried, navigated, reasoned over and updated with imperative workflows, policy actions, and their evolution observed over time. The instance model is extensible allowing integration of information from other domains, across deployments and orchestrators.

Status:This Working Draft (WD) has been produced by one or more TC Members; it has not yet been voted on by the TC or approved as a Committee Draft (Committee Specification Draft or a Committee Note Draft). The OASIS document Approval Process begins officially with a TC vote to approve a WD as a Committee Draft. A TC may approve a Working Draft, revise it, and re-approve it any number of times as a Committee Draft.Any machine-readable content (Computer Language Definitions) declared Normative for this Work Product must also be provided in separate plain text files. In the event of a discrepancy between such plain text file and display content in the Work Product's prose narrative document(s), the content in the separate plain text file prevails.

URI patterns:Initial publication URI:http://docs.oasis-open.org/tosca/TOSCA-Instance-Model/v1.0/csd01/TOSCA-Instance-Model-v1.0-csd01.docxPermanent “Latest version” URI:http://docs.oasis-open.org/tosca/TOSCA-Instance-Model/v1.0/TOSCA-Instance-Model-v1.0.docx(Managed by OASIS TC Administration; please don’t modify.)

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 1 of 49

Derek Palma, 02/05/17,
Rewrite as this was just used as placeholder when the template was generated
Page 2: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Copyright © OASIS Open 2017. All Rights Reserved.All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 2 of 49

Page 3: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Table of Contents1 Introduction ......................................................................................................................................... 6

1.1 Terminology ....................................................................................................................................... 61.2 Normative References ....................................................................................................................... 61.3 Non-Normative References ...............................................................................................................61.4 Glossary ............................................................................................................................................ 71.5 ........................................................................................................................................................... 8

2 Summary of key TOSCA concepts ......................................................................................................93 TOSCA Instance Model Conceptual Overview ..................................................................................10

3.1 What is an instance model? ............................................................................................................103.2 What problems does it address? .....................................................................................................10

4 Design Considerations ...................................................................................................................... 114.1 State-based Orchestration Paradigm ..............................................................................................114.2 Instance Model Consumers .............................................................................................................11

4.2.1 Declarative orchestration ..........................................................................................................114.2.2 Workflow execution .................................................................................................................. 114.2.3 External Clients ........................................................................................................................ 11

4.3 Orchestrator states vs real-world states ..........................................................................................124.4 Reflecting Node Status in the Instance Model .................................................................................124.5 Tracking State Changes .................................................................................................................. 124.6 Visibility of Nodes and Node Attributes ............................................................................................124.7 Orchestration Execution Status .......................................................................................................13

5 Model Structure ................................................................................................................................. 145.1 TOSCA Information Model ..............................................................................................................145.2 Meta Levels ..................................................................................................................................... 145.3 Deriving the Instance Model ............................................................................................................145.4 Sample Service Template ...............................................................................................................155.5 Deriving the Instance Model Graph .................................................................................................165.6 Instance Model Schema .................................................................................................................. 17

5.6.1 Schema Modeling Language ....................................................................................................175.6.2 Instance Model Schema ...........................................................................................................17

5.6.2.1 InstanceClass Definition .....................................................................................................................175.6.2.1.1 Data Types ..................................................................................................................................175.6.2.1.2 References ..................................................................................................................................17

5.6.2.1.2.1 InstanceReference ...........................................................................................................175.6.2.1.2.2 ExternalToscaReference .................................................................................................175.6.2.1.2.3 Reference scope and Semantics .....................................................................................18

5.6.3 InstanceObject Definition .........................................................................................................185.7 Instance Model Definition ................................................................................................................18

5.7.1 InstanceNode Definition ...........................................................................................................195.7.2 InstanceProperty Definition ......................................................................................................205.7.3 InstanceAttribute Definition ......................................................................................................205.7.4 InstanceCapability Definition ....................................................................................................205.7.5 InstanceRequirement Definition ...............................................................................................21

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 3 of 49

Page 4: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5.7.6 InstanceGroup Definition ..........................................................................................................215.7.7 InstanceMetadata Definition .....................................................................................................225.7.8 InstanceInput Definition ............................................................................................................225.7.9 InstancePolicy Definition ..........................................................................................................235.7.10 InstanceOutput Definition .......................................................................................................23

5.8 Complete Derivation to YAML syntax (textual) ................................................................................235.9 Specific derivations .......................................................................................................................... 24

5.9.1 Entities (Graph vertices) ...........................................................................................................245.9.1.1 Template (from node type) ..................................................................................................................245.9.1.2 Instance (from template) .....................................................................................................................245.9.1.3 Instance (from type) ............................................................................................................................24

5.9.2 Relationships (graph edges) ....................................................................................................245.9.2.1 Relation from between a pair of nodes ...............................................................................................245.9.2.2 Mapping M to N (by intension) ............................................................................................................245.9.2.3 Explicit M to N (by extension) .............................................................................................................24

5.10 Encoding of information .................................................................................................................245.11 Serialization Issues ........................................................................................................................255.12 Relationships between Node Instances .........................................................................................255.13 Recovering the Service Template .................................................................................................25

6 Tracking State Changes ....................................................................................................................266.1 Reflecting Node Status in the Instance Model .................................................................................266.2 Visibility of Nodes and Node Attributes ............................................................................................266.3 Orchestration Execution Status .......................................................................................................266.4 Update Concurrency ........................................................................................................................26

7 Query and Navigation ....................................................................................................................... 277.1 Imperative Workflow Use Case .......................................................................................................277.2 Imperative interaction with the Instance Model ................................................................................277.3 State tracking/synchronization .........................................................................................................277.4 Query ............................................................................................................................................... 277.5 Navigation ....................................................................................................................................... 27

8 Extensibility ....................................................................................................................................... 288.1 Resource Metadata ......................................................................................................................... 288.2 Event Triggered Updates ................................................................................................................. 28

9 Instance Model Access ..................................................................................................................... 299.1 YAML Dump .................................................................................................................................... 299.2 Instance Model Access via API .......................................................................................................29

10 Security Considerations .................................................................................................................... 3010.1 Access Control .............................................................................................................................. 3010.2 Authorization ................................................................................................................................. 3010.3 Obfuscation of Sensitive Information .............................................................................................30

11 Conformance ..................................................................................................................................... 3111.1 Conformance Clause 1: Deployment Orchestration Only ..............................................................3111.2 Conformance Clause 2: Post Orchestration Instance Model Snapshots .......................................3111.3 Conformance Clause 3: Dynamic and Extensible Instance Model Updates ..................................3111.4 Conformance Clause 4: Programmatic Read-Only Access ...........................................................3111.5 Conformance Clause 5: Programmatic Updates ...........................................................................31

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 4 of 49

Page 5: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Appendix A. Acknowledgments ................................................................................................................. 32Appendix B. Example Title .........................................................................................................................33

B.1 Subsidiary section ........................................................................................................................... 33B.1.1 Sub-subsidiary section .............................................................................................................33

B.1.1.1 Sub-sub-subsidiary section ................................................................................................................33B.1.1.1.1 Sub-sub-sub-subsidiary section ..................................................................................................33

12 TOSCA and Model Driven Engineering .............................................................................................3412.1 Model Driven Engineering as a Discipline .....................................................................................34

12.1.1 What is a Model? ................................................................................................................... 3412.1.2 What is not a Model? .............................................................................................................3412.1.3 Diagram .................................................................................................................................. 3412.1.4 Two-dimensionality of the modelled universe .........................................................................3512.1.5 Instance .................................................................................................................................. 3512.1.6 Metamodel, abstract syntax, and concrete syntax .................................................................3512.1.7 Typing and conformance ........................................................................................................3612.1.8 Models@run-time ................................................................................................................... 36

13 Schema Modeling Language ............................................................................................................3813.1 Collections ..................................................................................................................................... 3913.2 TOSCA DSL Entity References .....................................................................................................39

13.2.1 ToscaDslRef Definition ...........................................................................................................3913.3 Cross Instance Model Linking .......................................................................................................40

13.3.1 URIs and Entity Identity ..........................................................................................................4013.3.2 Local Model Linking ...............................................................................................................4013.3.3 Foreign Model Linking ............................................................................................................40

Appendix C. ............................................................................................................................................... 41Appendix D. Example Title ........................................................................................................................ 42

D.1 Subsidiary section ........................................................................................................................... 42D.1.1 Sub-subsidiary section ............................................................................................................42

D.1.1.1 Sub-sub-subsidiary section ................................................................................................................42D.1.1.1.1 Sub-sub-sub-subsidiary section .................................................................................................42

Appendix E. Revision History .................................................................................................................... 431 Introduction ......................................................................................................................................... 6

1.1 Terminology ....................................................................................................................................... 61.2 Normative References ....................................................................................................................... 61.3 Non-Normative References ...............................................................................................................61.4 Glossary ............................................................................................................................................ 71.5 ........................................................................................................................................................... 8

2 Summary of key TOSCA concepts ......................................................................................................93 TOSCA Instance Model Conceptual Overview ..................................................................................10

3.1 What is an instance model? ............................................................................................................103.2 What problems does it address? .....................................................................................................10

4 Design Considerations ...................................................................................................................... 114.1 State-based Orchestration Paradigm ..............................................................................................114.2 Instance Model Consumers .............................................................................................................11

4.2.1 Declarative orchestration ..........................................................................................................114.2.2 Workflow execution .................................................................................................................. 11

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 5 of 49

Page 6: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

4.2.3 External Clients ........................................................................................................................ 114.3 Orchestrator states vs real-world states ..........................................................................................124.4 Reflecting Node Status in the Instance Model .................................................................................124.5 Tracking State Changes .................................................................................................................. 124.6 Visibility of Nodes and Node Attributes ............................................................................................124.7 Orchestration Execution Status .......................................................................................................13

5 Model Structure ................................................................................................................................. 145.1 TOSCA Information Model ..............................................................................................................145.2 Meta Levels ..................................................................................................................................... 145.3 Deriving the Instance Model ............................................................................................................145.4 Sample Service Template ...............................................................................................................155.5 Deriving the Instance Model Graph .................................................................................................165.6 Instance Model Schema .................................................................................................................. 17

5.6.1 Schema Modeling Language ....................................................................................................175.6.2 Instance Model Schema ...........................................................................................................17

5.6.2.1 InstanceClass Definition .....................................................................................................................175.6.2.1.1 Data Types ..................................................................................................................................175.6.2.1.2 References ..................................................................................................................................17

5.6.3 InstanceObject Definition .........................................................................................................175.7 Instance Model Definition ................................................................................................................17

5.7.1 InstanceNode Definition ...........................................................................................................185.7.1.1 InstanceProperty Definition .................................................................................................................195.7.1.2 InstanceCapability Definition ...............................................................................................................195.7.1.3 InstanceRequirement Definition ..........................................................................................................19

5.7.2 InstanceMetadata Definition .....................................................................................................195.7.3 InstanceInput Definition ............................................................................................................195.7.4 InstancePolicy Definition ..........................................................................................................205.7.5 InstanceOutput Definition .........................................................................................................20

5.8 Complete Derivation to YAML syntax (textual) ................................................................................205.9 Specific derivations .......................................................................................................................... 20

5.9.1 Entities (Graph vertices) ...........................................................................................................215.9.1.1 Template (from node type) ..................................................................................................................215.9.1.2 Instance (from template) .....................................................................................................................215.9.1.3 Instance (from type) ............................................................................................................................21

5.9.2 Relationships (graph edges) ....................................................................................................215.9.2.1 Relation from between a pair of nodes ...............................................................................................215.9.2.2 Mapping M to N (by intension) ............................................................................................................215.9.2.3 Explicit M to N (by extension) .............................................................................................................21

5.10 Encoding of information .................................................................................................................215.11 Serialization Issues ........................................................................................................................215.12 Relationships between Node Instances .........................................................................................225.13 Recovering the Service Template .................................................................................................22

6 Tracking State Changes ....................................................................................................................236.1 Reflecting Node Status in the Instance Model .................................................................................236.2 Visibility of Nodes and Node Attributes ............................................................................................236.3 Orchestration Execution Status .......................................................................................................23

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 6 of 49

Page 7: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

6.4 Update Concurrency ........................................................................................................................237 Query and Navigation ....................................................................................................................... 24

7.1 Imperative Workflow Use Case .......................................................................................................247.2 Imperative interaction with the Instance Model ................................................................................247.3 State tracking/synchronization .........................................................................................................247.4 Query ............................................................................................................................................... 247.5 Navigation ....................................................................................................................................... 24

8 Extensibility ....................................................................................................................................... 258.1 Resource Metadata ......................................................................................................................... 258.2 Event Triggered Updates ................................................................................................................. 25

9 Instance Model Access ..................................................................................................................... 269.1 YAML Dump .................................................................................................................................... 269.2 Instance Model Access via API .......................................................................................................26

10 Security Considerations .................................................................................................................... 2710.1 Access Control .............................................................................................................................. 2710.2 Authorization ................................................................................................................................. 2710.3 Obfuscation of Sensitive Information .............................................................................................27

11 Conformance ..................................................................................................................................... 2811.1 Conformance Clause 1: Deployment Orchestration Only ..............................................................2811.2 Conformance Clause 2: Post Orchestration Instance Model Snapshots .......................................2811.3 Conformance Clause 3: Dynamic and Extensible Instance Model Updates ..................................2811.4 Conformance Clause 4: Programmatic Read-Only Access ...........................................................2811.5 Conformance Clause 5: Programmatic Updates ...........................................................................28

Appendix A. Acknowledgments ................................................................................................................. 29Appendix B. Example Title .........................................................................................................................30

B.1 Subsidiary section ........................................................................................................................... 30B.1.1 Sub-subsidiary section .............................................................................................................30

B.1.1.1 Sub-sub-subsidiary section ................................................................................................................30B.1.1.1.1 Sub-sub-sub-subsidiary section ..................................................................................................30

12 TOSCA and Model Driven Engineering .............................................................................................3112.1 Model Driven Engineering as a Discipline .....................................................................................31

12.1.1 What is a Model? ................................................................................................................... 3112.1.2 What is not a Model? .............................................................................................................3112.1.3 Diagram .................................................................................................................................. 3112.1.4 Two-dimensionality of the modelled universe .........................................................................3212.1.5 Instance .................................................................................................................................. 3212.1.6 Metamodel, abstract syntax, and concrete syntax .................................................................3212.1.7 Typing and conformance ........................................................................................................3312.1.8 Models@run-time ................................................................................................................... 33

13 Schema Modeling Language ............................................................................................................3513.1 Collections ..................................................................................................................................... 3613.2 TOSCA DSL Entity References .....................................................................................................36

13.2.1 ToscaDslRef Definition ...........................................................................................................3613.3 Cross Instance Model Linking .......................................................................................................37

13.3.1 URIs and Entity Identity ..........................................................................................................37

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 7 of 49

Page 8: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

13.3.2 Local Model Linking ...............................................................................................................3713.3.3 Foreign Model Linking ............................................................................................................37

Appendix C. ............................................................................................................................................... 38Appendix D. Example Title ........................................................................................................................ 39

D.1 Subsidiary section ........................................................................................................................... 39D.1.1 Sub-subsidiary section ............................................................................................................39

D.1.1.1 Sub-sub-subsidiary section ................................................................................................................39D.1.1.1.1 Sub-sub-sub-subsidiary section .................................................................................................39

Appendix E. Revision History .................................................................................................................... 40

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 8 of 49

Page 9: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

1 IntroductionThe TOSCA Domain Specific Language (DSL), expresses a topology of entities (service template), their lifecycles, management operations and constraints. Instantiation of a TOSCA service template involves an orchestrator processing a service template, fulfilling the requirements of each node template, and orchestrating a sequence of lifecycle operations across the entities of the topology to reach an end-state prescribed by the service template.The TOSCA Instance Model expresses the complete structure and state of an instantiated service template. The Instance Model has been implied when describing the behavior semantics of a TOSCA orchestrator as it executes a service template deployment. A complete and concise specification of the Instance Model required for the continued automated management of an instantiated service template and is motivated via the following use cases:

1. Expressing the end state reached of a TOSCA deployment by an orchestrator2. Expressing intermediate states as the deployment is changed by declarative or imperative

orchestration3. Comparing a pair of TOSCA deployments, possibly by different orchestrators, for similarities or

differences 4. Enabling imperative workflows to examine and synchronize its knowledge of the state of the

deployment 5. Enabling imperative workflows to execute side-effects on the deployment6. Enabling declarative actions to be triggered as the deployment changes7. Expressing the state of the deployment over time, as entities in the topology change state due

to their innate behaviors and external influences8. Correlating entities in the deployment to entities in the physical world

A set of Instance Model operations are defined and specified to support the creation and dynamic evolution:

1. Derivation the Instance Model from a service template2. Accessing the Instance Model3. Updating the Instance model4. Correlation of the Instance Model entities with external entities5. Synchronizing the Instance Model with external state

1.1 TerminologyThe key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC2119].

1.2 Normative References[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels”, BCP

14, RFC 2119, March 1997. http://www.ietf.org/rfc/rfc2119.txt.[Reference] [Full reference citation]

1.3 Non-Normative References[Reference] [Full reference citation]

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 9 of 49

Derek Palma, 02/05/17,
Add JSON schema references here
Page 10: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

(Remove Non-Normative References section if there are none. Remove this note and text below before submitting for publication.)

For all References – Normative and Non-Normative:Recommended approach: Set up [Reference] label elements as "Bookmarks", then create hyperlinks to them within the document. (Here’s how: Insert hyperlinkPlace in this documentscroll down to Bookmarks, select appropriate one.)Use the "Ref" paragraph style to format references.

The proper format for citation of technical work produced by an OASIS TC (whether Standards Track or Non-Standards Track) is:

[Citation Label] Work Product title (italicized). Edited by Albert Alston, Bob Ballston, and Calvin Carlson. Approval date (DD Month YYYY). OASIS Stage Identifier and Revision Number (e.g., OASIS Committee Specification Draft 01). Principal URI (version-specific URI, e.g., with stage component: somespec-v1.0-csd01.html). Latest version: (latest version URI, without stage identifiers).

For example:[OpenDoc-1.2] Open Document Format for Office Applications (OpenDocument) Version 1.2.

Edited by Patrick Durusau and Michael Brauer. 19 January 2011. OASIS Committee Specification Draft 07. http://docs.oasis-open.org/office/v1.2/csd07/OpenDocument-v1.2-csd07.html. Latest version: http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html.

Reference sources:For references to IETF RFCs, use the approved citation formats at:http://docs.oasis-open.org/templates/ietf-rfc-list/ietf-rfc-list.html.For references to W3C Recommendations, use the approved citation formats at:http://docs.oasis-open.org/templates/w3c-recommendations-list/w3c-recommendations-list.html.

1.4 GlossaryThe following terms are used throughout this specification and have the following definitions when used in context of this document.

Term DefinitionInstance Model A deployed service is a running instance of a Service Template. More precisely,

the instance is derived by instantiating the Topology Template of its Service Template, most often by running a special plan defined for the Service Template, often referred to as build plan.

Node Template A Node Template specifies the occurrence of a software component node as part of a Topology Template. Each Node Template refers to a Node Type that defines the semantics of the node (e.g., properties, attributes, requirements, capabilities, interfaces). Node Types are defined separately for reuse purposes.

Relationship Template

A Relationship Template specifies the occurrence of a relationship between nodes in a Topology Template. Each Relationship Template refers to a Relationship Type that defines the semantics relationship (e.g., properties, attributes, interfaces, etc.). Relationship Types are defined separately for reuse purposes.

Service Template A Service Template is typically used to specify the “topology” (or structure) and “orchestration” (or invocation of management

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 10 of 49

Derek Palma [2], 02/22/17,
This needs to be updated here and in other specs requiring this definition
Derek Palma [2], 02/22/17,
This was copied from Simple YAML spec and seems outdated.
Page 11: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

behavior) of IT services so that they can be provisioned and managed in accordance with constraints and policies.

Specifically, TOSCA Service Templates optionally allow definitions of a TOSCA Topology Template, TOSCA types (e.g., Node, Relationship, Capability, Artifact, etc.), groupings, policies and constraints along with any input or output declarations.

Topology Model The term Topology Model is often used synonymously with the term Topology Template with the use of “model” being prevalent when considering a Service Template’s topology definition as an abstract representation of an application or service to facilitate understanding of its functional components and by eliminating unnecessary details.

Topology Template

A Topology Template defines the structure of a service in the context of a Service Template. A Topology Template consists of a set of Node Template and Relationship Template definitions that together define the topology model of a service as a (not necessarily connected) directed graph.

The term Topology Template is often used synonymously with the term Topology Model. The distinction is that a topology template can be used to instantiate and orchestrate the model as a reusable pattern and includes all details necessary to accomplish it.

Abstract Node Template

An abstract node template is a node that doesn’t define an implementation artifact for the create operation of the TOSCA lifecycle.

The create operation can be delegated to the TOSCA Orchestrator.Being delegated an abstract node may not be able to execute user provided

implementation artifacts for operations post create (for example configure, start etc.).

No-Op Node Template

A No-Op node template is a specific abstract node template that does not specify any implementation for any operation.

1.5

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 11 of 49

Page 12: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

2 Summary of key TOSCA conceptsThe TOSCA metamodel uses the concept of service templates to describe cloud workloads as a topology template, which is a graph of node templates modeling the components a workload is made up of and as relationship templates modeling the relations between those components. TOSCA further provides a type system of node types to describe the possible building blocks for constructing a service template, as well as relationship type to describe possible kinds of relations. Both node and relationship types may define lifecycle operations to implement the behavior an orchestration engine can invoke when instantiating a service template. For example, a node type for some software product might provide a ‘create’ operation to handle the creation of an instance of a component at runtime, or a ‘start’ or ‘stop’ operation to handle a start or stop event triggered by an orchestration engine. Those lifecycle operations are backed by implementation artifacts such as scripts or Chef recipes that implement the actual behavior.An orchestration engine processing a TOSCA service template uses the mentioned lifecycle operations to instantiate single components at runtime, and it uses the relationship between components to derive the order of component instantiation. For example, during the instantiation of a two-tier application that includes a web application that depends on a database, an orchestration engine would first invoke the ‘create’ operation on the database component to install and configure the database, and it would then invoke the ‘create’ operation of the web application to install and configure the application (which includes configuration of the database connection).The TOSCA simple profile assumes a number of base types (node types and relationship types) to be supported by each compliant environment such as a ‘Compute’ node type, a ‘Network’ node type or a generic ‘Database’ node type. Furthermore, it is envisioned that a large number of additional types for use in service templates will be defined by a community over time. Therefore, template authors in many cases will not have to define types themselves but can simply start writing service templates that use existing types. In addition, the simple profile will provide means for easily customizing existing types, for example by providing a customized ‘create’ script for some software.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 12 of 49

Derek Palma [2], 03/08/17,
Mention the Instance Model and compare to the TOSCA DSL
Derek Palma, 02/01/17,
Followng save approach as NVF profile where this text was copied from YAML profile. Use unless we find something better
Page 13: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

3 TOSCA Instance Model Conceptual Overview3.1 What is an instance model?The Instance Model represents the current state of a deployment including all inputs, concrete node fulfillments, property settings, cardinalities, relationships, applied policies, and correlation with external resources and entities.

3.2 What problems does it address?Expressing the current state of a TOSCA deploymentCorrelating the nodes of an instance model with concepts, components, identities, resources and services outside of a TOSCA deploymentProvides a concise description how Service Templates are transformed into instances clearly delineating aspects that are invariant and independent of the specific orchestrator and hosting infratructure and the aspects which are variant or orchestrator specificExpressing intermediate states as the deployment is changed by declarative or imperative orchestrationComparing a pair of TOSCA deployments, possibly by different orchestrators, for similarities or differences Enabling imperative logic to examine and synchronize its knowledge of the state of the deployment Enabling imperative logic to execute side-effects on the deploymentEnabling declarative actions to be triggered as the deployment changesExpressing the state of the deployment over time, as entities in the topology change state due to their innate behaviors and external influencesCorrelating entities in the deployment to entities in the physical world

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 13 of 49

Page 14: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

4 Design Considerations4.1 State-based Orchestration ParadigmTOSCA uses a state-base orchestration paradigm where the orchestrator transitions the topology across a well-defined set of states to a set of final states.

4.2 Instance Model ConsumersThis sections describes the actors which consume the instance model to gain knowledge of or cause changes to the TOSCA deployment.

4.2.1 Declarative orchestrationThe TOSCA orchestrator updates and consumes the instance model as it is performing a declarative orchestration (an orchestration where it computes and executes all steps required to create a deployment topology which matches the topology template).

Constraints:

A. The TOSCA orchestrator is the only entity driving changing the to instance model during any (declarative or imperative) orchestration (changing means adding/removing node and relation instances)

4.2.2 Workflow executionWorkflows may be executed by the TOSCA orchestrator to:

1. Delegate a subset of the topology orchestration to workflow to enable control beyond what is possible with declarative orchestration

2. Handle a policy action via invocation of a specific workflow

Constraints:

B. The TOSCA orchestrator triggers the execution of the workflow, during which it delegates responsibility to the workflow for transitioning topology nodes through their lifecycle. The TOSCA orchestrator updates the instance model based on state transitions and performs operation invocations specified in the workflow.

4.2.3 External ClientsExternal clients are entities which exist outside the implementation of the TOSCA orchestrator to:

1. Obtain dynamic information about the deployment topology including structure, node states, and node attribute values

2. Obtain static information about the topology including access to inputs, policies, templates, and types which fully describe the topology in TOSCA semantics

Constraints:

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 14 of 49

Page 15: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

C. External clients can query the instance model directly but may see it changing across queries in terms of structure and state if an orchestration executes between queries

D. External clients may see a time lag regarding the consistency of the instance model with the deployment topology structure and state. The change log may be queried to understand instance model evolution over time.

E. External client execution of workflows is arbitrated by the TOSCA orchestrator to ensure that all the orchestration execution constraints A and B are satisfied.

4.3 Orchestrator states vs real-world statesTOSCA orchestrators manage the state of nodes and transitions them from state to state1. This notion of state is somewhat artificial in that the orchestrator assumes a stable state is reached after an operation executes on a node without an error (currently an error results in an undefined state because there is nothing that specifies an error should result in the node returning to its previous stable state). This is because states denote the completion of lifecycle operations and lifecycle operations are fulfilled by node operation. Hence, states orchestration states correlate to the invocation of lifecycle operations and not directly to the actual state of the node. Additionally, orchestration states are only valid during orchestration. Once orchestration completes we must assume the states of nodes can change in various ways (failure, interactions with other nodes, user actions). Upon beginning orchestration, the orchestrator or the imperative workflow must decide the current states of all nodes in the topology and be willing to transition them to other states. There is the case where a state transition is not necessary, such as changing an operational configuration parameter that does not impact service integrity.

4.4 Reflecting Node Status in the Instance ModelThe TOSCA instance model allows representing dynamic node information in node attributes. Best practices should be followed that focus on aggregating and summarizing information which is useful for managing the topology versus trying to create nodes which provide a very granular or timely representation of the state of physical nodes. It’s critical that TOSCA implementations be able to provide scalable automation across large topologies and diverse combinations of nodes types.

For example, it is not practical to implement node types which offer their specific metric values as attributes since this places timeliness and consistency requirements for such information across the topology which can only be satisfied by appropriately designed monitoring systems. However, it is practical and useful to provide node status information which allows the orchestrator, using (declarative and imperative) workflows and policies to efficiently automate the management of nodes in terms of their dynamic behaviors.

4.5 Tracking State ChangesAs orchestration progresses it is useful to fire events for each state transition across the topology. This event stream can be maintained for the life of a deployment. By maintaining a change log with events also denoting each orchestration beginning and end, clients can sync from a specific time without having to scan the entire topology.

4.6 Visibility of Nodes and Node AttributesAs nodes are transitioned through their states, a subset of attributes and relationships may be defined. For example, an automatically defined IP address may be defined after the server is provisioned as part of create but other attributes, such as additional interfaces and IPs, may not be defined until configured. Furthermore, this implies certain features of nodes may not be available until later lifecycle states (a

1 I use the term “stable state” to mean the lifecycle states a node can end in. This is to differentiate from the “transition states” such as creating, installing, etc.TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 15 of 49

Derek Palma, 03/23/16,
Maybe this is not the best example but hopefully my point is clear.
Page 16: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

primary use case which TOSCA is design to handle). This requires that in general TOSCA implies semantics that not all attributes would be available in a given state. We need to consider the following restrictions:

1. Nodes are only visible when they have a state defined (i.e. the orchestrator is dealing with their lifecycle)

2. Node attributes are only defined for the stable states3. Node relationships are always navigable when the source and target nodes exist. This is because

we don’t have any orchestration state in relationships. (Right?)4. Orchestration state is never updated outside an orchestration. This is not even possible since

TOSCA provides no way to propagate state changes from the node to the orchestrator and nodes don’t have a state attribute.

5. Nodes can update their attributes (in implementation specific ways) with no specific guarantees in terms of precision or accuracy (I.e. it’s a function of the node implementation). Of course, the attributes must be meaningful and timely to be of use.

6. As mentioned above, orchestration must somehow sync with the states of existing nodes regardless of declarative or imperative, although declarative can build the update sequence on the fly based on current states it can deduce.

4.7 Orchestration Execution StatusIt is useful for the client to know if there is an active orchestration. This could be gotten from the change log or just by some status indicator describing the state of the topology. Most orchestrators offer this via their client APIs. This is currently out of the scope of TOSCA but useful to be able to assume this exists.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 16 of 49

Page 17: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5 Model Structure5.1 TOSCA Information Model

5.2 Meta LevelsIn the diagram above:

Meta-meta-model == Type Schema

Meta-model == typesModel contains templates and instances.

Templates are a special instance constructor syntax. The select explicit domain values for properties.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 17 of 49

Derek Palma [2], 03/09/17,
Define meta schema for templates
Page 18: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Notes:

1. This is independent of the DSL and YAML (which encodes the DSL)2. The DSL can express type and templates. It be able to express specific instance using the

DSL, e.g. a set of instances for which the template intension syntax is not sufficient, i.e. supporting an extensional syntax.

5.3 Deriving the Instance Model• Service template instantiation

• Templates represent the entities that can be created• But cardinality may vary• Orchestrator will compute/know the cardinality at some point

• Processing the templates• Apply inputs• All aspects of the service template must be resolved (substitutable, sub-

topologies, …)• Policies matched and intantiated

• The context used from the runtime envronment should be reflected• Additional entities provided by environment might also appear

• Load balancer, Backup, Directory service, Monitoring, DNS, NTP endpoints …Location/placement of container entities and resources

5.4 Sample Service TemplateThe following simple service template will be used for the derivations. Most complex and sophisticated snippets will be incorporated as needed.

tosca_definitions_version: tosca_simple_yaml_1_0

description: Template for deploying a two-tier application on two servers. (section 2-6 of YAML spec)

topology_template: inputs: # omitted here for brevity

node_templates: wordpress: type: tosca.nodes.WebApplication.WordPress properties: # omitted here for brevity requirements: - host: apache - database_endpoint:

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 18 of 49

Page 19: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

node: wordpress_db relationship: my_custom_database_connection

wordpress_db: type: tosca.nodes.Database.MySQL properties: # omitted here for the brevity requirements: - host: mysql

relationship_templates: my_custom_database_connection: type: ConnectsTo interfaces: Configure: pre_configure_source: scripts/wp_db_configure.sh

# other resources not shown for this example ...

5.5 Deriving the Instance Model GraphThe orchestrator processes the service template, in dependency order, instantiating the correct number of instances for each node and transitioning the instances through their respective lifecycles. Node instances are created by the orchestrator using the instance from node template derivation, encoded in a local (orchestrator specific, not necessarily YAML or objects which directly represent YAML) representation. The result is a topology graph consisting of node instances as the nodes with the appropriate edges between pairs of node instances corresponding to the relationships defined in the service template. I.e. the instance model is explicit in terms of expressing relationships between.Node instances may be created by the orchestrator (or an API client via some external logic) without a node template using the instance from node type derivation. This supports the use case where fulfillment needs to pull other nodes into the topology to support the requirements of the service template without explicitly describing the nodes via a node template.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 19 of 49

Derek Palma [2], 04/06/17,
Refer to the spec (is this clear enough in the spec?)
Page 20: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

In general, (non-native TOSCA) orchestrators maintain their own proprietary (Ps) state representation of a service template deployment in their native data structures, which contain all the information required to derive the TOSCA instance model.The instance model is a self-contained (and standalone) object model with InstanceClasses derived from the TOSCA DSL schemas and InstanceObjects (IOs) derived from the proprietary orchestrator state.A TOSCA orchestrator must maintain enough information to be able to constitute the contents of an instance model.

5.6 Instance Model Schema

5.6.1 Schema Modeling LanguageWe define the language we will use to to express the instance model schema in Appendix C. This modeling language will be used throughout this document to encode the concepts in the instance model. Any analogous language can be used and and thus can be mapped to an implementations specific language. The primary objective here is to provide a concise method for expressing the instance model by leveraging a simple and concise schema modeling language.

5.6.2 Instance Model SchemaThis section defines the schema of the data in the instance model. This schema does not attempt to describe TOSCA DSL schema or replicate the TOSCA DSL meta- model. The instance model schema

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 20 of 49

Page 21: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

only needs to be able to represent a basic object model with containment hierarchies and cross references.

5.6.2.1 InstanceClass DefinitionInstance class is the common schema of all Instance Model objects.

5.6.2.1.1 Data TypesInstance model schema modeling language supports the data types defined in the TOSCA DSL.

5.6.2.1.2 ReferencesThis section describes the specific kinds of references used in the instance model schema.

5.6.2.1.2.1 InstanceReferenceInstanceReference relates a referencing instance entity to a target instance model entity. InstanceReferences use a path which navigates from a relative or root of the local instance model document. InstanceReference can reference instance model entities in other documents by prepending a URI which denotes the location of the document.

5.6.2.1.2.2 ExternalToscaReferenceExternalToscaReference enables instance model entities to reference entities in the TOSCA DSL. The first part of the URI denotes the specific TOSCA DSL document, which may be kept in an orchestrator specific location. ExternalToscaReference reference may reference parts of an entity such as a node type’s property.An XPATH-like path denotes the path from the root of the target TOSCA document to the target TOSCA DSL entity.Note that it may be desirable to reference invariant entities such as types without using a complete path, but using a logical name, such as the node type name. This will be explored and utilized to enabled TOSCA DSL references without having to know the specific document the orchestrator “thinks” the TOSCA DSL entity is defined in.

5.6.2.1.2.3 Reference scope and SemanticsContainmentCross-referenceLocal within instance modelOther documentsExternal to TOSCA DSL

5.6.3 InstanceObject DefinitionEvery object in the instance model extends from instanceObject. Instance Objects have attributes, references and operations. InstanceObject enables an object hierarchy representation of the instance model.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 21 of 49

Page 22: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5.7 Instance Model DefinitionName Type Cardinality Description

metadata InstanceMetadata 1..* Metadata describing the instance model. At least one entry describing the normal version of the schema the instance model complies with

nodes List of root Instance Node

0..N Contains the InstanceNode hierarchy

groups List of root Instance Groups

0..N Contains the InstanceGroup entities which define the InstanceNode membership of groups

inputs List of InstanceInput

0..N The values of all inputs used by the orchestrator

outputs List of InstanceOutput

0..N The values of all output resulting from the orchestration

policies List of InstancePolicy

0..N The policies applicable to entities in deployment

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 22 of 49

Page 23: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Figure 1 Overall structure of an instance model. They node instances, input and output instance and metadata instance.

Fig. XX Overview of the InstanceModel definition as a UML class diagram.Figure FX illustrates the relationships between the concepts introduced in Table. TX.

5.7.1 InstanceNode DefinitionThe InstanceNode represents an instance of a Node Type in the instance model. Because it represents singular unique entity, all properties and capabilities values are defined (i.e.all ranges, optional values, etc. are defined).

Name Type Cardinality Description

template Reference to templateExternalToscaReference

0..1mutually exclusive with type

Allows navigation to the template used to create the instance.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 23 of 49

Page 24: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Name Type Cardinality Description

type Reference to node typeExternalToscaReference

0..1mutually exclusive with template

Used when the node instance was not created with a template.

properties InstanceProperty 0..N Corresponds to the properties defined in the node type and desired values specified in the node template. Each property value indicates the final value used by the orchestrator for that property

attributes InstanceAttribute 0..N Corresponds to the attributes defined in the node type and holds the actual attribute values. Each attribute value indicates the value at the time the attribute was accessed. Attributes reflect the state of the underlying node and may change at any time.

properties InstanceProperty 0..N Corresponds to the properties defined in the node type and desired values specified in the node template. Each property value indicates the final value used by the orchestrator for that property

capabilities InstanceCapability 0..N Corresponds to the capabilities defined in the node type and desired values specified in the node template. Each capability property value indicates the final value used by the orchestrator for that property

requirements

InstanceRequirement 0..N Maps the source instances in a requirement relationship to the target instances. The mapping is M 1 to N and does not have to be 1-1 or onto with respect to all source and target instances..

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 24 of 49

Franck Chauvel, 07/31/17,
I think her, we point to entities that are outside the instance model, so I suggest a single type "ExternalEntityReference"
Page 25: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Figure 2 Structure of an InstanceNode, depicted as a UML class diagram

Note the use of colors: Blue identifies the concept of the M3-language, whereas yellow identifies the instance model concepts.

[5.7.2] InstanceProperty DefinitionFor each property in the respective node type, a property with the same name is present in the InstanceNode with value set to the value the orchestrator takes represents asto be the current value of the property.Each InstanceProperty is a <name, value> consisting of the name of the property in the respective TOSCA type and the value of the property encoded for the respective type of the property in the TOSCA type.

5.7.2 InstanceAttribute DefinitionFor each attribute in the respective node type, an attribute with the same name is present in the InstanceNode with value set to the value the orchestrator takes to be the current value of the attribute.Attributes reflect the state of the underlying node and may change at any time. TOSCA implementations may vary significantly in their ability to reflect attribute changes at the rate at which the actual node instances change their attributes. Attributes are best thought of as a view into the state of a node instance and not necessarily a direct representation.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 25 of 49

Franck Chauvel, 05/19/17,
Following the discussion we had on May 18, reaching out to the M3 concept of Class as a means to hook "anything" may not be the right choice anymore.
Page 26: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Each InstanceAttribute is a <name, value> consisting of the name of the attribute in the respective node type and the value of the attribute encoded for the respective type of the attribute in the node type.

5.7.3 InstanceCapability DefinitionFor each capability in the respective node type, a capability with this same name and schema as defined in the node type, where each property and attribute in this capability schema with the same name is present in the InstanceCapability with value set to the value the orchestrator takes to be the current value of the capability property.

Name Type Cardinality Description

name String 1 Indicates the name of the capability in the respective node type of the InstanceNode

properties InstanceProperty 0..N Corresponds to the properties defined in the node type and desired values specified in the node template. Each property value indicates the final value used by the orchestrator for that property

attributes InstanceAttribute 0..N Corresponds to the attributes defined in the node type and holds the actual attribute values. Each attribute value indicates the value at the time the attribute was accessed. Attributes reflect the state of the underlying node and may change at any time.

Figure 3 The structure of InstanceCapability, portrayed as a UML class diagram

5.7.4 InstanceRequirement DefinitionFor each requirement in the respective node type, a collection of references is created under the name of the requirement, each targeting the appropriate InstanceNodes in the topology graph.

Name Type Cardinality Description

name string 1 Indicates the name of the capability in the respective node type of the InstanceNode

targets InstanceReference 0..N Indicates the InstanceNodes fulfilling the requirement

Figure 4 The structure of InstanceRequirement, depicted as a UML class diagram

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 26 of 49

Franck Chauvel, 08/02/17,
Should we make it possible to navigate from InstanceCapabilities (just like the "target" property of InstanceRequirements). To my experience, it is pretty handy to directly access instances that use a given capability.
Page 27: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5.7.5 InstanceGroup DefinitionThe InstanceGroup represents an instance of a Group Type in the instance model.

Name Type Cardinality Description

template ExternalToscaReference

0..1mutually exclusive with type

Allows navigation to the template used to create the instance.

type ExternalToscaReference

0..1mutually exclusive with template

Used when the node instance was not created with a template.

members InstanceReference 0..N References the InstanceNode members of the group.

properties InstanceProperty 0..N Corresponds to the properties defined in the group type and desired values specified in the group template. Each property value indicates the final value used by the orchestrator for that property

attributes InstanceAttribute 0..N Corresponds to the attributes defined in the group type and holds the actual attribute values. Each attribute value indicates the value at the time the attribute was accessed. Attributes reflect the state of the underlying group and may change at any time.

capabilities InstanceCapability 0..N Corresponds to the capabilities defined in the group type and desired values specified in the group template. Each capability property value indicates the final value used by the orchestrator for that property

requirements InstanceRequirement 0..N Maps the source instance in a requirement relationship to the target instances. The mapping is 1 to N and does not have to be 1-1 or onto with respect to all source and target instances.

Figure 5 Structure of InstanceGroups, shown as a UML class diagram

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 27 of 49

Franck Chauvel, 08/02/17,
I displayed InstanceGroup as a class that inherits from InstanceNode. Their structure is similar, but I think is not possible to use any instance group in place of an InstanceNode?
Page 28: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5.7.6 InstanceMetadata DefinitionInstanceMetadata consists of named objects (a map: name -> InstanceObject). Because InstanceObjects can be of any virtually any information can be added to the instance model as InstanceMetadata.The instance model version is required (e.g.,: tosca_instance_version: tosca_simple_yaml_1_0)Orchestrators may add any additional metadata they like, such as their name and version, licensing, location etc.InstanceMetdata should really be part of InstanceObject so any entity in the instance model can encode any information (like annotations) as InstanceObjects.

5.7.7[5.7.6] InstanceInput DefinitionFor each input in the service template, and InstanceInput instance is created containing the value used by the orchestrator for the input.Each InstanceInput is a <name, value> consisting of the name of the input in the respective TOSCA input definition and the value of the input encoded for the respective type of the input in the TOSCA input definition.

[5.7.7] InstancePolicy DefinitionFor each policy applied in the service template, an InstancePolicy instance is created and, if applicable, references from the InstancePolicy to the instance model entities the policy is matched to are created. Note that not all policies may be used by the orchestrator if they don’t match with entities the final service topology created by the orchestrator.Note that InstancePolicies appearance denote that the policy is “applicable” to the service deployment. Their presence in the instance model does not mean they have or will trigger. The objective is to enable the instance model consumer to determine the policies, their configuration, and targeted entities.

Name Type Cardinality Description

template ExternalToscaReference

0..1mutually exclusive with type

Allows navigation to the template used to create the instance.

type ExternalToscaReference

0..1mutually exclusive with template

Used when the node instance was not created with a template.

targets ExternalToscaReference

0..N References the InstanceNodes which the policy applies to

properties InstanceProperty 0..N Corresponds to the properties defined in the policy type and desired values specified in the policy template. Each property value indicates the final value used by the orchestrator for that property

Figure 6 Structure of InstancePolicies displayed as a UML class diagram

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 28 of 49

Franck Chauvel, 08/02/17,
I would have used InstanceReference here and not ExternalToscaReference. Am I right?
Page 29: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5.7.8 InstanceOutput DefinitionFor each input in the service template, and InstanceOutput instance is created containing the name and value of the Output was created during the orchestration.Each InstanceOutput is a <name, value> consisting of the name of the output in the respective TOSCA output definition and the value of the output encoded for the respective type of the output in the TOSCA input definition.

5.8 Complete Derivation to YAML syntax (textual)The section describes the complete (top-down) imperative derivation of a deployed service template. It is assumed that orchestration has completed and service template deployment topology is in a steady state (i.e. the in-memory representation of the service template is non-changing) so that the instance model can be derived.

Function emit_service_template (serviceTemplate : tosca.types.ServiceTemplate) { emit “tosca_instance_version: “, “tosca_simple_yaml_1_0”

emit “template: “ serviceTemplate.uri

emit “input_bindings:” for each serviceTemplate.topology_template.inputs i emit i.name, “: ”, i.value

emit “node_instances:” for each serviceTemplate.rootContainerInstance rootNode emit_nodes(rootNode)}

5.9 Specific derivations

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 29 of 49

Page 30: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5.9.1 Entities (Graph vertices)

5.9.1.1 Template (from node type)

5.9.1.2 Instance (from template)

5.9.1.3 Instance (from type)

5.9.2 Relationships (graph edges)

5.9.2.1 Relation from between a pair of nodes

5.9.2.2 Mapping M to N (by intension)

5.9.2.3 Explicit M to N (by extension)

5.10 Encoding of information• Consider 2 approaches

• DSL-like encoding • Instance model has structure similar to service template

• Object tree encoding• Instance model is encoded more naturally as on object tree

• Both are information preserving encodings• So it’s possible to translated between them

• There was more interest in the Object tree encoding• More natural traversal• More natural representation• Extensibility in terms of objects (you can represent anything you want) versus DSL

5.11 Serialization Issues• Users may want to include information defined from other standards/meta models• Implementations may want to include additional information in TOSCA instances

• E.g. resource mapping information• Structural information indicating relationships among other entities

• Implementations may want to include information not part of TOSCA instances• TOSCA does not have all the features to support object trees

• Referencing entities in other subtrees (can only reference specific instances by name, no collections)

• Generalized referencing that work in document, cross document with relative and absolute URIs

• Collections • Referencing entities in ordered collections• Referencing entities by key

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 30 of 49

Page 31: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

5.12 Relationships between Node Instances

5.13 Recovering the Service TemplateConcrete service templateAbstract/portable service template

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 31 of 49

Page 32: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

6 Tracking State Changes6.1 Reflecting Node Status in the Instance Model

6.2 Visibility of Nodes and Node Attributes

6.3 Orchestration Execution Status

6.4 Update Concurrency

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 32 of 49

Page 33: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

7 Query and Navigation

7.1 Imperative Workflow Use Case

7.2 Imperative interaction with the Instance Model

7.3 State tracking/synchronizationDeterministic tracking/querying of state

7.4 Query

7.5 Navigation

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 33 of 49

Page 34: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

8 Extensibility8.1 Resource MetadataAdd information to the Instance Model to enabled correlation of TOSCA instances with actual resources.

8.2 Event Triggered UpdatesTrigger Instance Model decoration from internal TOSCA runtime and external events.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 34 of 49

Page 35: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

9 Instance Model Access9.1 YAML Dump

9.2 Instance Model Access via API

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 35 of 49

Derek Palma [2], 02/22/17,
We need to decide on our position about having an API. This will be one of the most common questions (and probably an expectation)
Page 36: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

10Security Considerations10.1 Access Control

10.2 Authorization

10.3 Obfuscation of Sensitive Information

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 36 of 49

Page 37: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

11 ConformanceThe last numbered section in the specification must be the Conformance section. Conformance Statements/Clauses go here. See “Guidelines to Writing Conformance Clauses”: http://docs.oasis-open.org/templates/TCHandbook/ConformanceGuidelines.html.

11.1 Conformance Clause 1: Deployment Orchestration OnlyOnly needs to comply with the Simple YAML Profile. Includes support of imperative workflows as defined there.

11.2 Conformance Clause 2: Post Orchestration Instance Model Snapshots

The TOSCA Orchestrator dumps a YAML representation, as defined in section 5 Model Structure.

11.3 Conformance Clause 3: Dynamic and Extensible Instance Model Updates

The Instance Model should reflect the changes relating to the deployed topology over time.

11.4 Conformance Clause 4: Programmatic Read-Only AccessProgrammatically query and navigate the entire Instance Model.

11.5 Conformance Clause 5: Programmatic UpdatesProgramatic changes NOT coordinated by the Orchestrator (e.g. no declarative or imperative side-effects using TOSCA DSL)

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 37 of 49

Derek Palma [2], 02/22/17,
The current objective of this section is to propose some compliance levels. These should help us focus on the requirements for the initial levels and ensure we deliver something useful ASAP.
Page 38: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Appendix A. AcknowledgmentsThe following individuals have participated in the creation of this specification and are gratefully acknowledged:Participants:!!br0ken!!

Alessandro Rossini ([email protected]), SINTEFChris Lauwers ([email protected]), UbicityDerek Palma ([email protected]), VnomicFranck Chauvel ([email protected]), SINTEFMatt Rutkowski ([email protected]), IBMLawrence Lamers ([email protected]), VMware

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 38 of 49

Page 39: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Appendix B. Example Titletext

B.1 Subsidiary sectiontext

B.1.1 Sub-subsidiary sectionText

B.1.1.1 Sub-sub-subsidiary sectiontext

B.1.1.1.1 Sub-sub-sub-subsidiary sectionText

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 39 of 49

Page 40: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

12TOSCA and Model Driven EngineeringOften the term “model” is used in TOSCA discussions. The objective of this section is to provide some background on what modeling is and why we need modeling for TOSCA, especially for the TOSCA Instance Model. Basic competency in Model Driven Engineering will also facilitate understanding and contribution to this specification.

12.1 Model Driven Engineering as a DisciplineModel-driven engineering (MDE) is a branch of software engineering that aims at improving the productivity, quality, and cost-effectiveness of software development by shifting the paradigm from code-centric to model-centric. MDE promotes the use of models and model transformations as the primary assets in software development, where they are used to specify, simulate, generate, and manage software systems. This approach is particularly relevant when it comes to the modelling and automation of IT services. This solution allows to exploit the peculiarities of each IT service and hence to optimize the performance, availability, and cost of the services.

Models can be specified using general-purpose languages like the Unified Modeling Language (UML) [Object Management Group: Unified Modeling Language Specification (2015). http://www.omg.org/spec/UML/2.5/]. However, to fully unfold the potential of MDE, models are frequently specified using domain-specific languages (DSLs), which are tailored to a specific domain of concern. The TOSCA YAML Profile is an example of a DSL encoded in YAML syntax.

12.1.1 What is a Model?The term model may have different meanings depending on the context. In [Cambridge Dictionary, http://dictionary.cambridge.org], one of the definitions of model is “a representation of something, either as a physical object which is usually smaller than the real object, or as a simple description of the object which might be used in calculations''. In MDE, a model denotes “an abstraction of a (real or language-based) system allowing predictions or inferences to be made” [Thomas Kuhne. Matters of (meta-)modeling. Software and Systems Modeling, 5(4):369–385, 2006. DOI 10.1007/s10270-006-0017-9.]. In this specification, we interpret the term model from the MDE perspective.

We distinguish between descriptive and prescriptive models. A descriptive model describes an existing original such as a city street map, whereas a prescriptive model specifies aspects of an original that is to be built such as the blueprint of a building. As for TOSCA, a service template “prescribes” what elements shall be deployed as opposed to an instance model that describes the status of entities that have already been deployed and are currently running.

TODO: Add a TOSCA-specific example of a model.

12.1.2 What is not a Model?Common examples in the domain of IT automation that are not models are deployment descriptors and manifests. These artifacts can provide the automation information required and steps to be performed, but cannot be reasoned with. For similar reasons a script, or any kind of imperative logic is not a model because its semantics cannot be recovered by parsing the logic.A simple example is a map of a city (model) versus the directions to get from point A to point B. The instructions may be sufficient to for a specific trip, but a map contains much more information that can be used to validate the path, react to changes in traffic flow and road work, etc.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 40 of 49

Page 41: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

12.1.3 DiagramThe term diagram may also have different meanings depending on the context. In [Cambridge Dictionary, http://dictionary.cambridge.org], one of the definitions of diagram is “a geometric symbolic representation of information according to some visualisation technique”, e.g., chart diagrams and cake diagrams. In MDE, a diagram denotes a structure that is based on graphs, i.e., a set of nodes together with a set of arrows between nodes [Alessandro Rossini. Diagram Predicate Framework meets Model Versioning and Deep Metamodelling. PhD thesis, Department of Informatics, University of Bergen, Norway, 2011. ISBN 978-82-308-1900-5]. In this specification, we interpret the term diagram from the MDE perspective.

Diagrammatic models have already been adopted in software engineering for some decades; e.g., flowcharts (Seventies) for the description of behavioral properties of software systems; petrinets (Eighties) for the specification of discrete distributed systems; entity-relationship diagrams (Eighties) for the conceptual modelling of data structures; UML [Object Management Group: Unified Modeling Language Specification (2015). http://www.omg.org/spec/UML/2.5/] (Nineties), for the description of structural and behavioural aspects of object-oriented software systems.

12.1.4 Two-dimensionality of the modelled universeA factor that has helped in the popularization of diagrammatic models is the conceptual two-dimensionality of the modelled universes [Zinovy Diskin and Uwe Wolter. A Diagrammatic Logic for Object-Oriented Visual Modeling. In ACCAT 2007: 2nd Workshop on Applied and Computational Category Theory, volume 203/6 of Electronic Notes in Theoretical Computer Science, pages 19–41. Elsevier, 2008. DOI 10.1016/j.entcs.2008.10.041.], e.g., nodes and arrows, activities and decisions, places and transitions, entities and relations, classes and associations, objects and links, etc.

TODO: Discuss that the modelled universe of the instance model is also two-dimensional.

12.1.5 InstanceThe term instance may also have different meanings depending on the context. In MDE, an instance denotes a structure that satisfies the requirements of its corresponding class or, more generally, its corresponding model; i.e., a model restricts the set of its valid instances [Alessandro Rossini. Diagram Predicate Framework meets Model Versioning and Deep Metamodelling. PhD thesis, Department of Informatics, University of Bergen, Norway, 2011. ISBN 978-82-308-1900-5].

TODO: Add a TOSCA-specific example of an instance.

12.1.6 Metamodel, abstract syntax, and concrete syntaxThe precise definition of the term metamodel is frequently debated in the literature. Conceptually, the prefix meta- suggests that modelling has occurred twice, which is reflected in the definition “[a metamodel is] a model of models” [Object Management Group. MDA Guide, June 2003. http://www.omg.org/cgi-bin/doc?omg/03-06-01.]. In MDE, a metamodel defines the abstract syntax of a modelling language. The abstract syntax describes the set of concepts, their attributes, and their relations, as well as the rules for combining these concepts to specify valid models conforming to this metamodel. This means that a metamodel restricts the set of its valid instances in the same way a model does, which is reflected in the definition “a model is an instance of a metamodel” [Object Management Group: Unified Modeling Language Specification (2015). http://www.omg.org/spec/UML/2.5/]. In contrast, the concrete syntax describes the textual or graphical notation that renders the concepts, attributes, and relations in the abstract syntax. The concrete syntax may vary depending on the domain: a modelling language could provide a textual notation (e.g., JSON-based, YAML-based, or custom textual syntax) as well as a graphical notation (e.g., UML-based or custom graphical syntax).

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 41 of 49

Page 42: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

TODO: Add a TOSCA-specific example of abstract vs concrete syntax.

12.1.7 Typing and conformanceIn MDE, the terms typing and conformance are often used interchangeably. In this specification, however, we distinguish between these terms. A model is said to be typed by a metamodel if each element in the model is typed by an element in the metamodel, while a model is said to conform to a metamodel if it is typed by the metamodel and, in addition, satisfies the attached constraints and intended semantics of the metamodel [Alessandro Rossini. Diagram Predicate Framework meets Model Versioning and Deep Metamodelling. PhD thesis, Department of Informatics, University of Bergen, Norway, 2011. ISBN 978-82-308-1900-5].

TODO: Add a TOSCA-specific example of typing and conformance.

12.1.8 Models@run-timeThe models@run-time [Blair, G., Bencomo, N., France, R.: [email protected]. IEEE Computer 42(10), 22–27 (2009). DOI 10.1109/MC.2009.326] approach, which provides an abstract representation of the underlying running system, whereby a modification to the model is enacted on-demand in the system, and a change in the system is automatically reflected in the model.

Fig. X depicts the architecture of models@run-time. A reasoning engine reads the current model (step 1) and produces a target model (step 2). Then, the run-time environment computes the difference between the current model and the target one (step 3). Finally, the adaptation engine enacts the adaptation by modifying only the parts of the cross-cloud application necessary to account for the difference and the target model becomes the current model (step 4).

The TOSCA Instance Model leverages models@run-time and allows the design-time specification of models by users as well as their run-time manipulation by reasoners. By exploiting models at both design-

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 42 of 49

Guest Contributor, 03/01/17,
This discussion about diagrams does not seems very relevant here and it somehow overlaps with the discussion about model and syntax. I would simply remove it.
Page 43: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

and run-time, and by allowing both direct and programmatic manipulation of models, the TOSCA Instance Model enables the management of self-adaptive cross-cloud applications (i.e., cross-cloud applications that autonomously adapt to changes in the environment, requirements, and usage)

TODO: Add a TOSCA-specific example of models@run-time.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 43 of 49

Derek Palma [2], 02/22/17,
Make this more TOSCA specific
Page 44: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

13 Schema Modeling LanguageWe describe in the following sections the schema of TOSCA instance models using a minimal object-oriented notation, inspired by eMOF [ref] and one of its ECore implementation. This is our M3-language (i.e., our meta-metamodel), which we illustrate on Error: Reference source not found, below. Although we do reuse the UML class diagram notation to illustrate specific part of this schema, please note that our meta-metamodel is not the one behind the UML notation.

Figure 7 Concepts used to describe the TOSCA instance model schema, depicted as a UML class diagram.

For instance, visibility levels, which UML denotes as '+', '-' or '#', do not exist in our M3-language and should not be taken into account, consequently. Consider for instance Error: Reference source not found, which shows an excerpt of the structure of an InstanceNode. Here an InstanceNode may originate from a template (another InstanceNode) and contains several InstanceCapability and several InstanceRequirement. Note the use of colors: Blue identifies the concept of the M3-language, whereas yellow identifies the instance model concepts.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 44 of 49

Franck Chauvel, 05/05/17,
To highlight the distinction, I propose to use an object-oriented terminology (i.e., Class vs. Object).
Franck Chauvel, 05/05/17,
I added this section. I hope it helps clarify the distinction between M3 language and the TOSCA instance model schema. It should go in the appendix as well.
Page 45: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Figure 8 Excerpt of the TOSCA instance model schema, depicted as a UML class diagram

Although this is an UML class diagram, we understand it as an instantiation of our M3-language, (see Error: Reference source not found), that is the set of objects shown by Error: Reference source not found, below. It shows an UML object diagram that contains all the instances of our M3-concepts that we need to describe the schema fragment showed by Error: Reference source not found.

Figure 9 Instances of the M3-language (see Error: Reference source not found) that reify the concepts shown in Error: Reference source not found, depicted as a UML object diagram

13.1 CollectionsOrdering is a consumption issue and is required to support determinism and comparisonOrdered -> ListsUnordered -> Bags and Sets

13.2 TOSCA DSL Entity ReferencesThe instance model encoding allows instance model entities to reference entities in TOSCAL DSL artifacts in order to avoid translating all TOSCA DSL entities into instance model entities.

13.2.1 ToscaDslRef DefinitionReferences an entity encoded in the TOSCA DSL. The reference indicates the specific TOSCA artifact (e.g. YAML document) and the identity or path of the target concept (node type, node template, etc.), and slot (property, attribute etc.)

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 45 of 49

Page 46: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

13.3 Cross Instance Model Linking

13.3.1 URIs and Entity IdentityEach entity has a unique URI, scoped (going outward):

Deployment ID (service template instance name)Tenant/Customer IDTOSCA runtime instance ID

13.3.2 Local Model LinkingLinking instance models in same TOSCA runtime instances.

13.3.3 Foreign Model LinkingLinking instance models across different TOSCA runtimes instances.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 46 of 49

Page 47: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Appendix C.

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 47 of 49

Page 48: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Appendix D. Example Titletext

D.1 Subsidiary sectiontext

D.1.1 Sub-subsidiary sectionText

D.1.1.1 Sub-sub-subsidiary sectiontext

D.1.1.1.1 Sub-sub-sub-subsidiary sectiontext

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 48 of 49

Page 49: Instance Model for TOSCA Version 1.0 - OASIS · Web viewGeneralized referencing that work in document, cross document with relative and absolute URIs Collections Referencing entities

Appendix E. Revision HistoryRevision Date Editor Changes Made

WD01, Rev01 ??/2017 Derek Palma, Vnomic Initial WD01, Revision 01 baseline for TOSCA Instance Model v1.0

TOSCA-Instance-Model-v1.0-wd01 Working Draft 01 1502 February July 2017Standards Track Draft Copyright © OASIS Open 2017. All Rights Reserved. Page 49 of 49