Skip to content

EDMM Compliance Specification 1.0 Release Candidate

Warning

This specification is experimental.

This document specifies how to achieve EDMM compliance when modeling and gives additional insights. This document does not specify how to achieve EDMM compatibility on a technical level. The specification is under active development and is not backwards compatible with any previous versions.

General

  1. Must use only features as defined by TOSCA Light extended by Variability4TOSCA.

Node Types

A built-in type must not be compliant with EDMM restrictions since such a type is internally used for our implementation of the EDMM-DTSM mapping.

  1. A built-in and abstract node type is a normative type, which cannot be instantiated since it is missing, e.g., its management operations or deployment artifact.
  2. A built-in and concrete node type is a normative type, which can be instantiated.
  3. A custom and abstract type is a user-defined type, which cannot be instantiated since it is missing, e.g., its management operations or deployment artifact.
  4. A custom and concrete type is a user-defined type, which can be instantiated.

Management Operations

  1. A node type might define the create, configure, create, stop, and delete operation of the Management interface using management as interface name.
  2. A management operation is an inline bash script, which is executed in the root of the application directory.
  3. A built-in node type defines its management operations in its node type, e.g., node.service.application.
  4. A custom and abstract node type defines its management operations in its node type.
  5. A custom and concrete node type defines its management operations in its node template, e.g., shop.component derived from node.application.

Implementations

  1. A node type t might have node type implementations which are node types that (i) are derived from t and (ii) implement the tosca.interfaces.node.lifecycle.Standard interface.
  2. A node type implementation is generated and not manually defined.
  3. A node type implementation might call operations of the Management interface.
  4. A node type implementation represent the EDMM-DTSM mapping.

Property Assignments

  1. A built-in node type can define property assignments.
  2. A custom and abstract node type can define property assignments.
  3. A custom and concrete node type must not define property assignments.
  4. Only use strings as data types.
  5. Always quote string values.

Attributes

The prototype currently does not support custom template attributes, i.e., writing back outputs from management operations.

Application Directory

  1. A software.application node template hosted on a remote.machine node template has its own dedicated application directory.
  2. The .vintner directory is a reserved directory in the application directory.

Deployment Artifacts

  1. A node template can have conditional deployment artifacts.
  2. A node type cannot have conditional deployment artifacts.
  3. A custom node type cannot have deployment artifacts.
  4. A deployment artifact must be named by its artifact type but any . replaced with _.

Acknowledgments

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

Correspondence

Please address all correspondence concerning this specification to Miles Stötzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

Disclaimer of Warranty

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.


Last update: September 14, 2024