This deliverable describes the initial version of the Software Development Kit (SDK) for the open source RINA implementation called IRATI. T2.3 has performed an initial review of the open IRATI software, defined a framework that allows to plug and unplug developer-defined policies through a set of Application Programming Interfaces (APIs), designed mechanisms and procedures that allow for the insertion and removal of such policies at run-time and finally implemented the APIs for a subset of the policies available in the DIF (the subset of APIs implemented has been chosen based on the research and experimentation needs of the WP3, WP4 and WP5 partners).
The PRISTINE SDK facilitates the programmability of the policies in a DIF, easing their development and reducing the implementation effort at minimum. Policy developers only need to implement the policies they are interested in – e.g. a new routing algorithm, a new authentication strategy, a different resource allocation policy – adapting them to the API provided by the SDK. Therefore, the PRISTINE SDK can be positioned as an evolution of the IRATI code base that incrementally introduces hooks where existing policies used to be hardwired in the code, introduces the missing software components embedded with the programmability-enabling mechanisms and enhances the whole code-base for the project’s scopes. Before the SDK under development by PRISTINE, a developer needed to understand the IRATI codebase, modify the sources and recompile all the code in order to introduce new policies. After the SDK, developers only need to implement a number of APIs and package the implementation classes as a plugin which can be dynamically loaded into a running IRATI stack.
This deliverable illustrates the design decisions and high level architecture of the SDK for the project’s first phase. In the next months, in terms of WP6 activities, the SDK will be integrated with the policies developed by the project’s partners and further stabilised given the broader range of tests which will be handled within WP6. Feedbacks collected during the integration activities will be taken into account for the next iteration, which will also provide additional programmability extensions to the SDK delivered as part of D2.5.