Detailseite
Entwicklung verteilter Systeme mit Multitier Reactive Programming
Antragsteller
Professor Dr.-Ing. Guido Salvaneschi
Fachliche Zuordnung
Softwaretechnik und Programmiersprachen
Förderung
Förderung von 2017 bis 2022
Projektkennung
Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 383964710
Verteilte Anwendungen werden klassischerweise in Form separater Module für jede Komponente des verteilten Systems entwickelt, häufig in jeweils unterschiedlichen Programmiersprachen. Diese Module reagieren auf Ereignisse, beispielsweise Eingaben durch Nutzer oder Netzwerknachrichten, und können daraufhin selbst neue Ereignisse auslösen, die von anderen Modulen verarbeitet werden. Die Unterteilung von Anwendungen in solche verschiedenen Schichten ist oft problematisch: das Zusammenfügen von Modulen ist sehr schwierig und bedarf extensivem und zeitintensivem Integrationstesten. Ein weiterer problematischer Aspekt ist das manuelle Implementieren der Kommunikation zwischen den Modulen: Entwickler sind gezwungen, komplexe ereignisbasierte Kommunikationsschemata zwischen verschiedenen Maschinen zu implementieren, was häufig in fehleranfälliger Detailarbeit auf niedriger Abstraktionsebene erfolgt. Die Kombination dieser beiden Problemquellen verkompliziert die Sachlage noch zusätzlich: Verteilte, ereignisbasierte Datenflüsse sind durch mehrere Module über mehrere Rechner fragmentiert, was die Nachvollziehbarkeit der Abläufe des gesamten Systems zusätzlich verschlechtert. Aus diesen Gründen, obwohl inzwischen der Großteil an Software verteilte Applikationen sind, ist der Entwurf und die Entwicklung verteilter Systeme nach wie vor überraschend herausfordernd.In diesem Projekt präsentieren wir unseren Entwicklungsplan, die Komplexität der Entwicklung verteilter Anwendungen durch spezialisierte Unterstützung in Programmiersprachen anzugehen. In unserer Vision bieten Methoden basierend auf dem Multitier-Ansatz (Mehr-Schichten-Programmierung) ein einheitliches Modell zum Betrachten von Datenflüssen zwischen andernfalls separaten Modulen, unterstützen verschiedene Softwarearchitekturen durch dedizierte Sprachabstraktionen und abstrahieren über Details wie die Kommunikationsmechanismen zwischen verschiedenen Maschinen und Datenkonvertierungen. Wir erwarten, dass unser Ansatz den Aufwand der Entwicklung und Wartung verteilter Anwendungen deutlich senkt, bisher manuell implementierte fehleranfällige Teile des Quellcodes automatisch generieren kann, zur frühen Erkennung von Fehlern beiträgt, und es ermöglicht, Anwendungen auf einfache Weise zwischen verschiedenen Plattformen und Kommunikationsmechanismen migrieren zu können.
DFG-Verfahren
Sachbeihilfen
Internationaler Bezug
Schweiz