Architectural Concepts for Adaptive Communication Systems
This sub-project looks at the design of modular, self-adaptive communication systems. We will develop an approach to systemise, simplify and improve the development of transition based, adaptive distributed systems. This will be tested in two cases – adaptive multimedia streaming and an adaptive distributed search. Together with insights from other sub-projects this will lead to a design methodology for self-adaptive communication systems. The sub-project is based on the state-of-the-art in modular communication architectures. It will close an existing research gap in adaptive system design through the incorporation of transitions.
A monolithic communication system’s ability to adapt to a dynamically changing environment is very limited. This is due to the fact that such a system can adapt only individual parameters; alternatively, the whole system needs to be replaced. This, however, typically represents a major challenge in practice. Moreover, monolithic systems do not normally cater for a simple integration of new or adapted mechanisms and configurations. That is, the more fine-grained a system the better it supports transitions between mechanisms as well as the integration of new ones. Thus, at least in theory it is possible to independently modify or extend the functionality of the individual modules, even at runtime.
Deploying previous experiences with modular protocols and modular distributed systems the sub-project aims to develop a design methodology for modular communication networks. Here, a specific focus will be on the analysis and minimisation of inter-modular interdependencies. To this end, we will investigate how individual mechanisms can be dynamically replaced during operation.
A formalised description of an application will be modelled and subdivided into abstract function blocks. This will be based on the application scenario’s functional and non-functional requirements. The former includes, for example, a full-text search, an example of the latter would e.g. be a response time of 5 seconds. The abstract specification represents the next higher level. Here, each function block will be mapped onto a set of primitives each of which describes a paradigm for the transformation of the function block. Potential primitives to realise a full-text search in a distributed system could include a server-based search index, an inverted index in a Distributed Hash Table (DHT) or a rendezvous-based search in an unstructured Peer-to-Peer-Overlay. Here, each primitive represents a fundamentally different approach towards the realisation of the respective functionality. The elements of this specification, in turn, are mapped onto potential realisations. At this level, concrete mechanisms for the realisation of task are available (similar to function blocks and primitives). Foe example, a DHT-based full text search could be realised through the Chord or Kademlia mechanisms. In general, a primitive may be implemented through different mechanisms; it should be possible to replace such mechanisms during operation. Mechanisms that realise the same primitive will normally be closely related; this should simplify a transition. On top of that, however, the design methodology shall support transition between mechanisms of different primitives, i.e. a paradigm change. This shall also be possible during operation.
Composition rules specify which primitives and mechanisms, respectively, may be combined. Moreover, in a self-adaptive system a dedicated module shall provide interfaces for the analysis and evaluation of the actual system state. This shall also enable the seamless transition between mechanisms. This sub-project will, therefore, develop a methodology to enable the necessary interoperation between modules within the system. A fully developed such methodology will enable designers to systematically build adaptive communication systems and to include the available technologies.