The subproject A2 investigates the design of modular system architectures for self-adaptive communication systems with a focus on adaptive programmable core networks, enabled by technological progress in the field of SDN and Network Function Virtualization (NFV). In cooperation with other subprojects, it is the overall goal to provide programming methodologies, languages and tools for developing and controlling novel adaptive and programmable core networks.
Phase I was focused on the adaptivity of end systems and distributed applications. In particular, methodological contributions and abstractions for the description and execution of mechanisms and transitions have been developed. For example, life cycles of transitions have been derived and generalized in two corresponding frameworks. Different approaches for describing the transition logic have been evaluated and based on the results, Event Condition Action (ECA) rules have been used to integrate decision processes. These rules have been extended by explicit support for topologies and their optimizations and adaptations between search overlays have been investigated. Since the derivation of ECA rules for a given utility function is a non-trivial problem for many applications, a learning system for the automatic derivation of ECA rules for a specific communication system has been developed by means of optimization by genetic algorithms. Adaptive error correction methods for multimedia transmissions have been investigated and the transition between different wireless technologies have been improved using multi-path TCP and MAKI methodologies. The use of transitions for optimizing throughput and latency in server systems has also been demonstrated. An exemplary implementation of this methodology was used to optimize network stacks. Thus, concrete experiences have been gained in the understanding of transitions and their methodological implementation.
New technologies for programmable core networks open up a multitude of methodological questions regarding the realization and control of adaptivity in communication systems, which have not been taken into account in Phase I. In particular, they allow to design network functions as apps, in the following also referred to as “NetApps”, which are deployed in app stores to enable a new core network adaptivity. On the one hand, NetApps are intended to provide network functions that adapt dynamically and depending on packet contents and metadata as well as application and network state. On the other hand, individual NetApps or compositions of NetApps should be dynamically deployed to the core network or reconfigured, thus opening up the vision of dynamic adaptivity and transitions as dynamic (re)configuration of NetApp compositions. This novel adaptivity and dynamic is insufficiently supported by current design, programming and testing procedures. For example, existing domain-specific programming languages for SDNs are not expressive enough and, in particular, offer only little support for modular, dynamic composition of network functionalities. The use of these languages would lead to a high complexity of the network functions, as well as complicate the analysis and control of permissible transitions and thus provide scope for a variety of possible errors which may impair network operation.
These observations are the reason why the subproject concentrates on modular programming and control of adaptive core networks in Phase II. Two main objectives are pursued. First, a programming language for programmable core networks (e.g. Software Defined Networks) is designed and implemented, possibly as an extension of existing languages. The language will, on the one hand, offer constructs for defining declarative queries on packet contents, metadata and network events as well as the declarative composition of these queries with corresponding reactive behavior. On the other hand, it will offer constructs enabling the dynamic and secure composition of NetApps. In doing so, there will be a balance between expressiveness and the need to be able to give deterministic / static guarantees about the state of the network.
Second, for the control and proactive design of the adaptivity, methods for the controllable and simulated execution and placement of network functions are investigated. We will investigate to which extent an (effect) type system can be used to control the interaction between NetApps statically during application composition. In addition, a testbed-based methodology is developed to simulate and test the composition, execution and placement of network functions as part of the development process, as well as during the runtime to support proactive adaptivity. The methodologies for describing and controlling transitions in programmable core networks developed in this subproject provide a conceptual foundation for Phase II. In doing so, they rely on the experience and results of the first phase, in particular regarding the modelling of life cycles and the transition logic in the area of end systems.