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¶
- 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.
- 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.
- A built-in and concrete node type is a normative type, which can be instantiated.
- 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.
- A custom and concrete type is a user-defined type, which can be instantiated.
Management Operations¶
- A node type might define the
create
,configure
,create
,stop
, anddelete
operation of theManagement
interface usingmanagement
as interface name. - A
management
operation is an inlinebash
script, which is executed in the root of the application directory. - A built-in node type defines its management operations in its node type, e.g.,
node.service.application
. - A custom and abstract node type defines its management operations in its node type.
- A custom and concrete node type defines its management operations in its node template, e.g.,
shop.component
derived fromnode.application
.
Implementations¶
- A node type
t
might have node type implementations which are node types that (i) are derived fromt
and (ii) implement thetosca.interfaces.node.lifecycle.Standard
interface. - A node type implementation is generated and not manually defined.
- A node type implementation might call operations of the
Management
interface. - A node type implementation represent the EDMM-DTSM mapping.
Property Assignments¶
- A built-in node type can define property assignments.
- A custom and abstract node type can define property assignments.
- A custom and concrete node type must not define property assignments.
- Only use strings as data types.
- Always quote string values.
Attributes¶
The prototype currently does not support custom template attributes, i.e., writing back outputs from management operations.
Application Directory¶
- A
software.application
node template hosted on aremote.machine
node template has its own dedicated application directory. - The
.vintner
directory is a reserved directory in the application directory.
Deployment Artifacts¶
- A node template can have conditional deployment artifacts.
- A node type cannot have conditional deployment artifacts.
- A custom node type cannot have deployment artifacts.
- 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.