TU Darmstadt / ULB / TUprints

A Programming Paradigm for Reliable Applications in a Decentralized Setting

Mogk, Ragnar (2021)
A Programming Paradigm for Reliable Applications in a Decentralized Setting.
Technische Universität
doi: 10.26083/tuprints-00019403
Ph.D. Thesis, Primary publication, Publisher's Version

[img]
Preview
Text
mogk-dissertation.pdf
Copyright Information: CC BY-SA 4.0 International - Creative Commons, Attribution ShareAlike.

Download (1MB) | Preview
Item Type: Ph.D. Thesis
Type of entry: Primary publication
Title: A Programming Paradigm for Reliable Applications in a Decentralized Setting
Language: English
Referees: Mezini, Prof. Dr. Mira ; Markl, Prof. Dr. Volker
Date: 2021
Place of Publication: Darmstadt
Collation: x, 205 Seiten
Date of oral examination: 10 March 2021
DOI: 10.26083/tuprints-00019403
Abstract:

The use of applications has changed together with the underlying computing platform. The modern computer is no longer a big piece of office equipment that is booted to execute a single task producing a single output. Instead, we have many interconnected devices – smartphones, laptops, routers, Internet of Things gadgets, and even some venerable desktop computers we still use to get that heavy work done. Furthermore, ubiquitous connectivity with the Internet, and thus collaboration with other people and their set of devices has drastically changed how people expect applications to work.

For such distributed, interactive, and collaborative applications, we currently lack a declarative fault-tolerant programming paradigm with easy-to-reason high-level guarantees. We want to empower developers from organizations of all sizes to be able to create reliable applications that solve their users needs. Thus, the central question in this thesis is: How to automate fault tolerance for such applications?

To answer this question, we present a novel approach to automatic fault tolerance using a high-level programming paradigm. Our goal is to provide future developers with a paradigm that reduces the challenge posed by failures in interactive applications similar to how a garbage collector reduces the challenge of managing memory. To do so, our programming paradigm abstracts from the notion of changes in data, thus removing the need to handle failure cases differently and providing developers a single set of properties to always rely on.

Alternative Abstract:
Alternative AbstractLanguage

Die Nutzung von Anwendungen hat sich zusammen mit der zugrunde liegenden Computerplattform verändert. Der moderne Computer ist nicht länger ein großes Stück Büroausstattung das gestartet wird, um eine einzelne Aufgabe auszuführen und eine einzelne Ausgabe zu produzieren. Stattdessen haben wir viele miteinander verbundene Geräte – Smartphones, Laptops, Router, Internet-der-Dinge-Gadgets und sogar einige altgediente Desktop-Computer, die wir immer noch verwenden, um umfangreiche Arbeiten zu erledigen. Darüber hinaus hat die allgegenwärtige Konnektivität mit dem Internet und damit die Zusammenarbeit mit anderen Menschen und deren Geräten die Erwartungen an die Funktionsweise von Anwendungen drastisch erweitert.

Für solche verteilten, interaktiven und kollaborativen Anwendungen fehlt uns derzeit ein deklaratives, fehlertolerantes Programmierparadigma mit einfach zu verstehenden Garantien. Wir wollen Entwicklern aus verschiedenen Organisationen die Möglichkeit geben, zuverlässige Anwendungen zu erstellen, die die Anforderungen ihrer Benutzer erfüllen. Die zentrale Frage in dieser Arbeit lautet daher: Wie kann man die Fehlertoleranz für solche Anwendungen automatisieren?

Um diese Frage zu beantworten, präsentieren wir einen neuartigen Ansatz zur automatischen Fehlertoleranz unter Verwendung eines Programmierparadigmas. Unser Ziel ist es, zukünftigen Entwicklern ein Paradigma an die Hand zu geben, das die Herausforderung von Fehlern in interaktiven Anwendungen reduziert, ähnlich wie ein Garbage Collector die Herausforderung der Speicherverwaltung reduziert. Um dies zu erreichen, abstrahiert unser Programmierparadigma wie sich Daten über die Zeit ändern. Dadurch entfällt die Notwendigkeit, Fehlerfälle unterschiedlich zu behandeln und Entwickler können sich immer auf einen festen Satz von Eigenschaften verlassen.

German
Status: Publisher's Version
URN: urn:nbn:de:tuda-tuprints-194035
Classification DDC: 000 Generalities, computers, information > 004 Computer science
Divisions: 20 Department of Computer Science > Software Technology
Date Deposited: 08 Nov 2021 12:03
Last Modified: 08 Nov 2021 12:04
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/19403
PPN: 488111064
Export:
Actions (login required)
View Item View Item