-
Type: Improvement
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: V1.1_CSD01
-
Fix Version/s: V1.1_CSD01
-
Component/s: Spec
-
Labels:None
At the last (Jan 26) TC meeting there was some discussion about Alternative Encodings of TOSCA Service Templates. It may be useful to augment the draft to explicitly address this issue so it is clear that TOSCA is not confining itself to only XML encodings.
Below is some text which captures some of these ideas:
Alternative Encodings of TOSCA Service Templates
The Topology and Specification for Cloud Applications (TOSCA) is a metamodel which specifies the core concepts, entities, relations and constraints required for defining IT services. This metamodel is encoded in this specification using XML Schema and related standards. Service Templates are instances of entities compliant with the TOSCA metamodel endcoded in XML following the syntactic rules governed by XML Schema and XML Specification.
In order to further applicability and facilitate adoption, the TOSCA TC acknowledges the diversity of clouds, offering a diversity of languages and frameworks, with their respective user bases, and anticipates the need to represent Service Templates in encodings other than XML (e.g. YAML, JSON) as well as the need for API implementations in multiple languages that can create and manipulate Service Templates serializing to/from these alternative encodings. Implementations of alternative encodings should adhere to the TOSCA semantics in order to consume/produce semantically valid Service Templates in a specific encoding and enable translations to/from the canonical XML encoding.
Because all alternative encodings must abide by the TOSCA semantics, they can only diverge in how they represent their alternative encoding. For example, two YAML implementations may be able to consume and produce a valid Service Template XML, but may encode the Service Template differently in YAML. These diverging YAML implementations can still interoperate by translating to XML. However, if YAML interoperability is desired a set of translation rules between canonical XML and YAML need to be agreed upon.