当前位置: X-MOL 学术Distrib. Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Chemical foundations of distributed aspects
Distributed Computing ( IF 1.3 ) Pub Date : 2018-06-07 , DOI: 10.1007/s00446-018-0334-6
Nicolas Tabareau , Éric Tanter

Distributed applications are challenging to program because they have to deal with a plethora of concerns, including synchronization, locality, replication, security and fault tolerance. Aspect-oriented programming (AOP) is a paradigm that promotes better modularity by providing means to encapsulate crosscutting concerns in entities called aspects. Over the last years, a number of distributed aspect-oriented programming languages and systems have been proposed, illustrating the benefits of AOP in a distributed setting. Chemical calculi are particularly well-suited to formally specify the behavior of concurrent and distributed systems. The join calculus is a functional name-passing calculus, with both distributed and object-oriented extensions. It is used as the basis of concurrency and distribution features in several mainstream languages like C# (Polyphonic C#, now C$$\omega $$ω), OCaml (JoCaml), and Scala Joins. Unsurprisingly, practical programming in the join calculus also suffers from modularity issues when dealing with crosscutting concerns. We propose the aspect join calculus, an aspect-oriented and distributed variant of the join calculus that addresses crosscutting and provides a formal foundation for distributed AOP. We develop a minimal aspect join calculus that allows aspects to advise chemical reactions. We show how to deal with causal relations in pointcuts and how to support advanced customizable aspect weaving semantics. We also provide the foundation for a decentralized distributed aspect weaving architecture. The semantics of the aspect join calculus is given by a chemical operational semantics. We give a translation of the aspect join calculus into the core join calculus, and prove this translation correct by a bisimilarity argument. This translation is used to implement Aspect JoCaml on top of JoCaml.

中文翻译:

分布式方面的化学基础

分布式应用程序编程具有挑战性,因为它们必须处理大量问题,包括同步、局部性、复制、安全性和容错性。面向方面的编程 (AOP) 是一种范式,它通过提供将横切关注点封装在称为方面的实体中的方法来促进更好的模块化。在过去的几年里,已经提出了许多分布式面向方面的编程语言和系统,说明了 AOP 在分布式环境中的好处。化学演算特别适合正式指定并发和分布式系统的行为。连接演算是一种函数式名称传递演算,具有分布式和面向对象的扩展。它被用作 C#(Polyphonic C#,现在是 C$$\omega $$ω)、OCaml (JoCaml) 和 Scala Joins 等几种主流语言的并发和分发功能的基础。不出所料,连接演算中的实际编程在处理横切关注点时也会遇到模块化问题。我们提出了方面联接演算,这是联接演算的面向方面和分布式的变体,它解决了横切问题并为分布式 AOP 提供了正式的基础。我们开发了一个最小方面连接演算,允许方面建议化学反应。我们展示了如何处理切入点中的因果关系以及如何支持高级可定制的方面编织语义。我们还为分散的分布式方面编织架构提供了基础。方面连接演算的语义由化学操作语义给出。我们将方面连接演算翻译为核心连接演算,并通过双相似性论证证明这种翻译是正确的。此翻译用于在 JoCaml 之上实现 Aspect JoCaml。
更新日期:2018-06-07
down
wechat
bug