基于CEP技术的Actor模型的高级加入模式

2020-11-08 09:26:53

背景:基于参与者的编程语言为开发现代分布式反应式系统提供了许多基本特性。这些系统利用参与者模型的隔离属性来满足其性能和可伸缩性需求。不幸的是,该模型依赖于隔离作为其最基本的属性,因此程序员需要表达他们的参与者之间的复杂交互模式,而这些交互模式是根据隔离的参与者之间发送的消息的复杂组合来手动表示的。

调查:在过去的三十年里,已经引入了几种语言设计建议,以降低描述上述行为者的互动和协调所产生的复杂性。我们认为,为了表达现代反应式分布式系统中参与者之间的许多复杂交互模式,这些建议都不能令人满意。

方法:我们描述了七个智能家居自动化场景(其中一个参与者代表每个智能家用电器),以激发参与者语言对五种截然不同的消息同步模式的支持,这些模式在现代基于参与者的分布式语言中是缺乏的。幸运的是,复杂事件处理(CEP)社区已经对这五种类型的同步模式进行了广泛的研究。本文描述了如何将这样的CEP模式优雅地添加到基于角色的编程语言中。

知识:基于我们的发现,我们建议对当代基于施动者的语言的单消息匹配范式进行扩展,以支持与CEP语言相同的多消息匹配思维方式。因此,我们的建议通过声明性地描述参与者可以响应的复杂消息组合来丰富参与者模型。

接地:本文的问题陈述基于家庭自动化社区的一项在线调查,该调查激发了对论文中提出的参与者之间基于CEP的同步运算符的真正需求。此外,我们实现了一个DSL--称为Sparrow--它支持上述操作符,我们从数量上(从LOC和减少程序员必须处理的问题方面)论证了DSL的性能优于现有的方法。

重要:这项工作旨在提供一组同步操作符,帮助基于参与者的语言处理现代反应式分布式系统所需的复杂交互。据我们所知,我们的建议是第一个将高级CEP同步操作符添加到大多数基于角色的语言的机制(相对简单的基于单消息的匹配)中的建议。