A2: Entwurf

Architekturkonzepte für adaptive Kommunikationssysteme

Teilprojekt A2 erforscht Programmiermethodiken, -sprachen und –werkzeuge für die Entwicklung und Beherrschung von adaptiven und programmierbaren Kernnetzen. Es wird eine Programmiersprache entwickelt, die es erlaubt, Abfragen über das Netz mit entsprechendem reaktivem Verhalten zu komponieren sowie verschiedene Netzfunktionen dynamisch und sicher miteinander zu komponieren. Weiterhin wird eine Testbed-basierte Methodik entwickelt, um Komposition, Ausführung und Platzierung von Netzfunktionen, als Teil des Entwicklungsprozesses aber auch während der Laufzeit zur Unterstützung der proaktiven Adaptivität, zu simulieren und zu testen.

Das Teilprojekt A2 beschäftigt sich mit dem Entwurf modularer Systemarchitekturen für selbstadaptive Kommunikationssysteme. Der Fokus liegt auf der Erforschung von adaptiven, programmierbaren Kernnetzen, die nun erstmalig durch technologische Fortschritte im Bereich SDN und Network Function Virtualization (NFV) ermöglicht werden. Das übergeordnete Ziel ist es, im Zusammenwirken mit anderen Teilprojekten, Programmiermethodiken,-sprachen und -werkzeuge für die Entwicklung und Beherrschung von neuartigen adaptiven und programmierbaren Kernnetzwerken zur Verfügung zu stellen.

Phase I konzentrierte sich auf die Adaptivität in Endsystemen und verteilten Anwendungen. Dabei wurden insbesondere methodische Beiträge und Abstraktionen zur Beschreibung und Ausführung von Mechanismen und Transitionen erarbeitet. So wurden beispielsweise Lebenszyklen von Transitionen abgeleitet und in Ausführungssprachen sowie zwei entsprechenden Frameworks verallgemeinert. Es wurden Möglichkeiten zur Beschreibung der Transitionslogik evaluiert und darauf basierend Event-Condition-Action-(ECA-)Regeln zur Integration der Entscheidungsprozesse verwendet. Diese Regeln wurden um eine explizite Unterstützung für Topologien und deren Optimierungen erweitert und es wurden Adaptionen zwischen Suchoverlays untersucht. Da die Ableitung von ECA-Regeln für eine gegebene Utility-Funktion für viele Anwendungsfälle ein nichttriviales Problem darstellt, wurde ein Lernsystem zur automatischen Ableitung von ECA-Regeln für ein konkretes Kommunikationssystem mittels Optimierung durch genetische Algorithmen entwickelt. Als beispielhafte Transitionen wurden adaptive Fehlerkorrekturverfahren für Multimediaübertragungen untersucht sowie der Übergang zwischen unterschiedlichen Funktechnologien mittels Multipath-TCP und MAKI-Methodiken verbessert. Ebenfalls konnte der Einsatz von Transitionen zur Latenz- und Durchsatzoptimierung in Serversystemen gezeigt werden. Hierbei erfolgte eine beispielhafte Umsetzung dieser Methodik zur Optimierung von Netzwerkstacks. Somit wurden konkrete Erfahrungen im Verständnis von Transitionen und deren methodischer Umsetzung gewonnen. Neue Technologien für programmierbare Kernnetze eröffnen eine Vielzahl methodischer Fragestellungen bezüglich der Realisierung und Steuerung von Adaptivität in Kommunikationssystemen, die in Phase I außer Acht gelassen wurden. Sie erlauben insbesondere die Konzeption von Netzwerkfunktionen als Apps, im Folgenden auch NetApps genannt, die (Cloud-basiert) in „App Stores“ bereitgestellt werden, um damit eine neuartige Kernnetzadaptivität zu ermöglichen. Zum einen sollen NetApps Netzwerkfunktionen bereitstellen, die sich dynamisch und abhängig von Paketinhalten und -metadaten sowie Anwendungs- und Netzwerkzuständen anpassen. Zum anderen sollen einzelne NetApps bzw. NetApp-Kompositionen in das Kernnetzwerk dynamisch eingespielt bzw. neu konfiguriert werden können, wodurch sich die Vision von dynamischer Adaptivität und Transitionen als dynamische (Neu-)Konfiguration von NetApp-Kompositionen eröffnet. Diese neuartige Adaptivität und Dynamik wird durch die aktuellen Entwurfs-, Programmier- und Testverfahren unzureichend unterstützt. Beispielsweise sind existierende domänenspezifische Programmiersprachen für SDNs nicht ausdrucksstark genug und bieten insbesondere kaum Unterstützung für modulare, dynamische Komposition von Netzwerkfunktionalitäten. Die Verwendung dieser Sprachen würde zu hoher Komplexität der Netzwerkfunktionen führen sowie die Analyse und Kontrolle über zulässige Transitionen erschweren und somit Raum für mannigfaltige Fehlermöglichkeiten bieten, die den Netzbetrieb erschweren bzw. beeinträchtigen können. Diese Beobachtungen sind der Ausgangspunkt für die Fokussierung des Teilprojekts in Phase II auf Methodiken für die modulare Programmierung und die kontrollierte Beherrschung adaptiver Kernnetze. Dabei werden zwei Hauptziele verfolgt. Zunächst wird eine Programmiersprache für programmierbare Kernnetze (z.B. Software-definierte Netzwerke) entworfen und implementiert, möglicherweise als Erweiterung bestehender Sprachen. Die Sprache wird zum einen Konstrukte anbieten, die der Definition von deklarativen Abfragen auf Paketinhalten, Metadaten und Netzwerkereignissen dienen sowie der deklarativen Komposition dieser Abfragen mit entsprechendem reaktiven Verhalten. Zum anderen wird sie Konstrukte anbieten, die der dynamischen und sicheren Komposition von NetApps dienen. Dabei wird es eine Balance zwischen Ausdrucksstärke und der Notwendigkeit, deterministische/statische Garantien über den Zustand des Netzwerks geben zu können, angestrebt. Als zweites werden zur Beherrschung und zur proaktiven Gestaltung der Adaptivität Methoden für die kontrollierbare und simulierte Ausführung und Platzierung von Netzwerkfunktionen erforscht. Es wird u.a. untersucht, inwieweit ein (Effekt-)Typsystem eingesetzt werden kann, um Interaktionen zwischen NetApps statisch zur App-Kompositionszeit zu kontrollieren. Darüber hinaus wird eine Testbed-basierte Methodik entwickelt, um die Komposition, Ausführung und Platzierung von Netzwerkfunktionen zu simulieren und zu testen, als Teil des Entwicklungsprozesses, aber auch während der Laufzeit zur Unterstützung der proaktiven Adaptivität. Die in diesem Teilprojekt entwickelten Methodiken zur Beschreibung und Kontrolle von Transitionen in programmierbaren Kernnetzen legen ein konzeptionelles Fundament für Phase II. Dabei bauen sie auf den Erfahrungen und Ergebnissen der ersten Phase auf, insbesondere bezüglich der Modellierung von Lebenszyklen und der Transitionslogik im Bereich der Endsysteme.

Teilprojektleitende A2

  • Prof. Dr.-Ing. Mira Mezini
  • Prof. Dr.-Ing. Klaus Wehrle