Abstract

Ubiquitous connectivity of web, mobile, and IoT computing platforms has fostered a variety of distributed applications with decentralized state. These applications execute across multiple devices with varying reliability and connectivity. Unfortunately, there is no declarative fault-tolerant programming model for distributed interactive applications with an inherently decentralized system model. We present a novel approach to automating fault tolerance using high-level programming abstractions tailored to the needs of distributed interactive applications. Specifically, we propose a calculus that enables formal reasoning about applications' dataflow within and across individual devices. Our calculus reinterprets the functional reactive programming model to seamlessly integrate its automated state change propagation with automated crash recovery of device-local dataflow and disconnection-tolerant distribution with guaranteed automated eventual consistency semantics based on conflict-free replicated datatypes. As a result, programmers are relieved of handling intricate details of distributing change propagation and coping with distribution failures in the presence of interactivity. We also provides proofs of our claims, an implementation of our calculus, and an empirical evaluation using a common interactive application.

Highlights

  • Ubiquitous connectivity of web, cloud, mobile, and IoT computing platforms has fostered a variety of distributed interactive applications [Zhang et al 2014]

  • We plan to improve the performance of FR in two ways

  • We presented FR, a programming model for distributed interactive applications that combines the best of two worlds

Read more

Summary

Introduction

Ubiquitous connectivity of web, cloud, mobile, and IoT computing platforms has fostered a variety of distributed interactive applications [Zhang et al 2014] Examples of such software systems include collaborative applications (e.g., Trello, Google docs) with real-time aspects (e.g., Uber, Sli.do), remote monitoring and control software (e.g., automated home software, personal health apps), remote processing worksheets (e.g., Jupyter), multi-player gaming, etc. Such applications often have a decentralized architecture with some components running on cloud platforms and others running on the connected (end-user) devices [Kleppmann et al 2019].

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call