Design-Time Data Model: Modelling Principles & Patterns
Taking advantage of TOSCA expressiveness
The ETSI information model is all defined in terms of information elements and their attributes. TOSCA proposes a much richer and more flexible meta-model; besides nodes and their properties, it offers to a designer such constructs as capabilities, requirements, relationships, policies, artifacts, interfaces, relationships, etc.
ETSI & ONAP Information Elements | TOSCA Constructs |
---|---|
Descriptors: NSD, VNFD, PNFD | Topology Template to describe the internal composition and other implementation details; Node Type to express the “interface”; Node Template to represent an occurrence of the service/function within a higher-level composition (see Modelling Complex Resources) |
VLD, CpD | Normative Node Types and Node Templates based on these types (see Modelling Simple Resources) |
Information Elements | Data Types |
Naming, Scaling, Affinity | Policies |
Lifecycle, Operations | Interfaces |
Operation scripts, software images, etc. | Artifacts |
Properties vs. Metadata Fields
Property | Metadata Field |
---|---|
Has to do with the core business purpose of the model object, what the model does. | Tells how the model object is maintained, stored, displayed, handled by business logic, etc. |
Examples: IP address, required amount of memory, virtualization container type | Examples: Author name, release number, change timestamp, ID in the data store |
Populated by vendor, designer | Populated by the infrastructure logic |
Inherited by derived types | - |
Used by functions (i.e. get_property()) | - |
Has a data type, including constraints to observe | No structure, just a loose string |
Design-time resource instances
Today ECOMP uses the term “instance” to designate a usage of a resource within a higher-level composition in design time. Should we introduce another term for such a design-time usage in order to prevent confusion with the run-time instances?
A resource occurrence maybe?
Modelling Simple Resources
A simple resource is a resource that cannot be decomposed into a topology of lower-layer component resources. Possible ways for a resource to be simple:
The resource definition includes a complete set of artifacts which is sufficient for the orchestrator to create instances of this resource
The resource is so basic and well-known that any orchestrator just knows what to do with it without any artifacts provided.
The following TOSCA constructs are used through this data model to represent simple resources:
A TOSCA node type is used to model the simple resource definition.
TOSCA node templates of this node type are used to represent occurrences (design-time instances) of this resource within a higher-level composition topology.
Modelling Complex Resources
A complex resource is a resource that is backed by a topology of lower-level component resources. The following TOSCA constructs are used through this data model to represent complex resources:
A TOSCA topology template to describe the internal composition and other implementation details
A TOSCA node type to express the “interface” capabilities, requirements, and properties of this resource
A TOSCA substitution_mappings clause wires the capabilities, requirements and properties of this interface node type to the capabilities, requirements and properties of the component nodes inside the implementing topology template
TOSCA node templates of the “interface” node type are used to represent occurrences of this complex resources within a higher-level composition