This deliverable documents the updated design, additional features, as well as new components of the SDK in the intermediate SONATA release. The structure of this document therefore follows as closely as possible the structure of D3.1, assuming re-use of the existing SDK design, and focusing on the documentation of changes and additional components.
The SONATA programming model is built around descriptors for packages, network services, and network functions. The schema of these descriptors for this release are being updated to account for novel features including container implementations, automated testing, or improved licensing support. Validation functionality was made in the first release of the project in order
to validate syntax of descriptors. In this release this functionality has been further extended with a dedicated tool son-validate which goes beyond pure syntax checking and also checks a range of semantic aspects, e.g. detection of loops in service graphs. Baseline functionality of the SDK is built around CLI functionality for creating workspaces, project spaces and interaction with the SP.
These have now been extended with versioning support for workspaces, and modified tools (i.e., son-access) for interacting with the (gatekeeper of the) SP and associated service and NF catalogue(s). The latter impacts the deprecation of the use of the SDK-specific son-catalogue of phase 1. As reported in D3.1 and related scientific publications, the ability to emulate the SP and associated infrastructure is one of the core value propositions of the SDK. In this intermediate release these main assets have been even further exploited through bug-fixes, improved APIs, monitoring and debugging capabilities. Additional debugging and monitoring functionality in this release enables easy inspection and visualisation of network interfaces and links, as well as functionality to generate particular types of (test) traffic for debugging purposes. son-analyze functionality has now been integrated with Jupyter Notebook technology  enablingthe use of bleeding-edge statistical functionality in scientific Python libraries. The strong set of features combining the SDK functionality related emulation, monitoring and analysis introduces a
new performance proling tool son-profile. The latter eases identifying performance trends under given degrees of resource restrictions. This enables developers to pre-assess performance in order to optimize scaling behaviour of services on a range infrastructure hardware environments.