arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1902.00524cs.PL
收藏

反应式分布式系统的分布式反应式程序设计

Distributed Reactive Programming for Reactive Distributed Systems

Florian Myter, Christophe Scholliers, Wolfgang De Meuter

摘要:

上下文:术语反应性在两个研究领域很流行:程序设计语言和分布式系统。一方面,反应式编程是一种范式,它为程序员提供了以声明方式编写事件驱动应用程序的方法。另一方面,反应式分布式系统以及时的方式处理客户端请求,而不管负载或故障。查询:响应式程序设计语言和框架的实现分布式系统之前已经提出。然而,我们认为,这些方法是不适合实现反应式分布式系统。方法:我们分析了分布式反应式编程的最先进的运行时,并确定了两个关键问题的反应式分布式系统。它们依赖于单一的中心协调点和/或假设它们所支持的系统中没有部分故障。知识:基于我们的分析,我们提出了一个新的分布式反应式程序设计语言和框架的运行时。这个运行时在设计上支持反应式分布式系统。基础:我们在JavaScript中实现了一个用于反应式分布式系统的概念验证框架,该框架构建在我们的运行时之上。使用这个框架,我们实现了一个案例研究应用程序,突出了我们的方法的适用性。此外,我们基准我们的运行时对类似的方法,以展示其运行时属性,我们证明了它的正确性。重要性:这项工作旨在弥合两种反应之间的差距:反应式分布式系统和分布式反应式编程。当前的分布式反应式编程方法不支持反应式分布式系统。我们的运行时是第一个弥合这种反应性差距的:它允许使用分布式反应式编程实现反应式分布式系统。

英文摘要:

Context: The term reactivity is popular in two areas of research: programming languages and distributed systems. On one hand, reactive programming is a paradigm which provides programmers with the means to declaratively write event-driven applications. On the other hand, reactive distributed systems handle client requests in a timely fashion regardless of load or failures. Inquiry: Reactive programming languages and frameworks tailored to the implementation of distributed systems have previously been proposed. However, we argue that these approaches are ill fit to implement reactive distributed systems. Approach: We analyse state of the art runtimes for distributed reactive programming and identify two key issues with regards to reactive distributed systems. They rely on single, central points of coordination and/or assume a lack of partial failures in the systems they support. Knowledge: Based on our analysis we propose a novel runtime for distributed reactive programming languages and frameworks. This runtime supports reactive distributed systems by design. Grounding: We implement a proof of concept framework for reactive distributed systems in JavaScript which builds atop our runtime. Using this framework we implement a case study application which highlights the applicability of our approach. Moreover, we benchmark our runtime against a similar approach in order to showcase its runtime properties and we prove its correctness. Importance: This work aims to bridge the gap between two kinds of reactivity: reactive distributed systems and distributed reactive programming. Current distributed reactive programming approaches do not support reactive distributed systems. Our runtime is the first to bridge this reactivity gap: it allows for reactive distributed systems to be implemented using distributed reactive programming.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑