...
List some projects as an example::
Project | Implementation language | Parser used |
SO | Java | SDC Tosca Parser |
VF-C | Python | NFV Tosca Parser |
UUI | Java | SDC Tosca Parser |
VNFSDK | Java/Python | NFV Tosca Parser SDC Tosca Parser |
Policy | Java | Internal Tosca Parser (Policy Type, Data Type, Policy only) |
A&AI | Java | SDC Tosca Parser |
SDNC | Java | SDC Tocsa Parser |
VID | Java | SDC Tosca Parser |
SDC | Java | SDC Tosca Parser |
CLAMP | Java | SDC Tosca Parser |
APPC | Java | SDC Tosca Parser |
CDS | Kotlin | CDS/Custom Tosca Parser |
... | ... | ... |
Here only list part of the projects, not all the parser consumer project.
...
Performance: Compared with the Lib usage, when Parser provides services through restful, the performance will be reduced
DelayDelay: Compared with the Lib usage, when Parser provides services through restful, the delay will increase increase
Note: Temporarily there is no data support for the above performance and delay
...
For external interface
After the tosca parser microservice is implemented, the Lib usage will continue to be provided, and the application can select to use the microservice or the Library according to the specific requirements scenario
For Parser implementationThe first phase:
Requirement Analysis ( which is tracked in SDC Template Type Analysis): collecting requirements, unifying model input and output, simultaneously implementing model output conversion from object to Json (this is the key point)
API Incapsulation: Providing unified restful interface to parser client.
R3 CSAR which exported by SDC in CCVPN use case and CPE use case
vCPE:
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
CCVPN:
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
For parser API abstraction,there are two options considered
Option Description Advantage Disadvantage 1 Parser only provides one simple API with the csar file as input and return complex Object which contains all content in model API may looks like: ModelObject parseCsar( csarfile) The parser implementation is relatively simple, just focus on how to build the complex response Client need to extract the information that they need from complex response locally,this will bring more complexity on client side
2 Parser provides the extension APIs which are more granular and return the specific content in model to client according to different API invocation
These APIs may look like:
Metadata getServiceMetadata(InputParameter)
Inputs getInputs(InputParameter)
......
Don’t need to maintain two library code and can solve cross-language issue. Parser should keep the context information and increase the difficulty of parser implementation
Supplement
In order to analysis the tosca parser requirements, we do some analysis on the tosca types which currently included and used in SDC and the analysis can be found here: SDC Template Type Analysis
Known TOSCA Parsers
See the list on this TOSCA page
Discussion Minutes (20190102)
- Agreement: SDC Type fix ABC for Dublin
- Target: Parser as a service
- Problem: Rest API definitions for Parser us
- Next Steps:
- Parser API analysis for run time consumers;
- Brain Storming in Paris for Parser API design.
...