TU Darmstadt / ULB / TUbiblio

LoRe: A Programming Model for Verifiably Safe Local-first Software

Haas, Julian ; Mogk, Ragnar ; Yanakieva, Elena ; Bieniusa, Annette ; Mezini, Mira (2024)
LoRe: A Programming Model for Verifiably Safe Local-first Software.
In: ACM Transactions on Programming Languages and Systems, 46 (1)
doi: 10.1145/3633769
Artikel, Bibliographie

Kurzbeschreibung (Abstract)

Local-first software manages and processes private data locally while still enabling collaboration between multiple parties connected via partially unreliable networks. Such software typically involves interactions with users and the execution environment (the outside world). The unpredictability of such interactions paired with their decentralized nature make reasoning about the correctness of local-first software a challenging endeavor. Yet, existing solutions to develop local-first software do not provide support for automated safety guarantees and instead expect developers to reason about concurrent interactions in an environment with unreliable network conditions.

We propose LoRe, a programming model and compiler that automatically verifies developer-supplied safety properties for local-first applications. LoRe combines the declarative data flow of reactive programming with static analysis and verification techniques to precisely determine concurrent interactions that violate safety invariants and to selectively employ strong consistency through coordination where required. We propose a formalized proof principle and demonstrate how to automate the process in a prototype implementation that outputs verified executable code. Our evaluation shows that LoRe simplifies the development of safe local-first software when compared to state-of-the-art approaches and that verification times are acceptable.

Typ des Eintrags: Artikel
Erschienen: 2024
Autor(en): Haas, Julian ; Mogk, Ragnar ; Yanakieva, Elena ; Bieniusa, Annette ; Mezini, Mira
Art des Eintrags: Bibliographie
Titel: LoRe: A Programming Model for Verifiably Safe Local-first Software
Sprache: Englisch
Publikationsjahr: März 2024
Verlag: ACM
Titel der Zeitschrift, Zeitung oder Schriftenreihe: ACM Transactions on Programming Languages and Systems
Jahrgang/Volume einer Zeitschrift: 46
(Heft-)Nummer: 1
DOI: 10.1145/3633769
Kurzbeschreibung (Abstract):

Local-first software manages and processes private data locally while still enabling collaboration between multiple parties connected via partially unreliable networks. Such software typically involves interactions with users and the execution environment (the outside world). The unpredictability of such interactions paired with their decentralized nature make reasoning about the correctness of local-first software a challenging endeavor. Yet, existing solutions to develop local-first software do not provide support for automated safety guarantees and instead expect developers to reason about concurrent interactions in an environment with unreliable network conditions.

We propose LoRe, a programming model and compiler that automatically verifies developer-supplied safety properties for local-first applications. LoRe combines the declarative data flow of reactive programming with static analysis and verification techniques to precisely determine concurrent interactions that violate safety invariants and to selectively employ strong consistency through coordination where required. We propose a formalized proof principle and demonstrate how to automate the process in a prototype implementation that outputs verified executable code. Our evaluation shows that LoRe simplifies the development of safe local-first software when compared to state-of-the-art approaches and that verification times are acceptable.

Zusätzliche Informationen:

Art.No.: 2

Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Distributed Systems Programming
20 Fachbereich Informatik > Softwaretechnik
Hinterlegungsdatum: 30 Apr 2024 09:00
Letzte Änderung: 30 Apr 2024 09:00
PPN:
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen