Detailseite
Projekt Druckansicht

Programmierunterstützung für fehlertolerante verteilte Live-Anwendungen.

Fachliche Zuordnung Softwaretechnik und Programmiersprachen
Förderung Förderung von 2019 bis 2022
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 415626024
 
Dezentrale verteilte Computerplattformen, bestehend aus einer Mischung aus miteinander verbundenen Webservern, dezentralen Clouds, mobilen und IoT- Geräten, fördern das Entstehen verteilter datengesteuerter und/oder interaktiver Anwendungen. Sensordatenströme, Benutzeraktionen, usw. werden von diesen Anwendungen kontinuierlich beobachtet und korreliert und als Reaktion wird der Anwendungszustand in Echtzeit aktualisiert. Wir nennen diese Anwendungen verteilte Live-Anwendungen. Sie haben von Natur aus komplexe Kontrollstrukturen, da asynchrone Reaktion auf Ereignisse die Programmierung im Continuation-Passing-Stil fördern, dieser Stil ist fehleranfälliger und führt zur sogenannten Callback-Hölle. Die Probleme werden im verteilten Kontext verstärkt, wenn miteinander verbundene Geräte nicht unter zentraler Kontrolle stehen. Unser besonderer Fokus liegt auf der Komplexität aufgrund von Kommunikationsfehlern und Abstürzen, die in einer solchen Umgebung allgegenwärtig sind (mobile Geräte haben oft schlechten Empfang oder werden heruntergefahren, wenn die Batterien leer sind; Cloud-Server werden ohne vorherige Ankündigung neu gestartet, usw.).Ein guter Teil dieser Komplexität ist auf schlechte Abstraktionen der vorhandenen Programmiersprachen und Frameworks für verteilte Anwendungen zurückzuführen. Entwickler bleiben nur Callbacks und Continuations um Anwendungen zu Programmiren und den Datenfluss zu spezifizieren. Reaktive Programmierung (RP), hat hingegen das Potenzial, diese Komplexität zu bewältigen; sie wurde ursprünglich für die Programmierung von interaktiven Desktop-Anwendungen entworfen. Den RP-Sprachen/Frameworks fehlt jedoch die richtige Unterstützung für Fehlertoleranz. Im Vergleich dazu hat das Actor-Modell, welches oft das bevorzugte Programmiermodell im Kontext verteilter Live-Anwendungen ist, weniger deklarative Abstraktionen und unzureichende Mechanismen zu Fehlertoleranz. Cloud-Sprachen und Programmierplattformen für die Verarbeitung großer Datenmengen sind wiederum nicht für Live-Verarbeitung ausgelegt.Das Ziel dieses Vorhabens ist es, ein Programmiermodell und eine Sprache für fehlertolerante verteilte Live-Anwendungen zu entwickeln, welche die Vorteile des deklarativen Stils des RP-Modells in diese komplexe Domäne einbringen. Insbesondere werden wir die einzigartigen Eigenschaften des RP-Paradigmas nutzen, um automatisierte Abhandlung von Fehlern – die Frameworks wie Spark und Flink in einem kontrollierten Umfeld bieten – auf beliebige Live-Anwendungen in dezentralen verteilten Systemen zu übertragen. Darüber hinaus werden wir die Weiterleitung von Fehlern innerhalb von RP-Abstraktionen ermöglichen, damit Anwendungsentwickler Fehler explizit behandeln können, wenn ein automatisches Abhandeln nicht möglich oder sinnvoll ist. Wir werden unsere Sprache formell modellieren, um ihre Eigenschaften zu beweisen, und wir werden sie basierend auf einer bestehenden reaktiven Sprache implementieren.
DFG-Verfahren Sachbeihilfen
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung