移动自组织网络中的松散耦合分布式反应式编程
1 引言
在移动自组织网络中运行的普适应用程序,不能被构建为接受固定输入并计算出输出的单体程序。为了对动态变化的移动自组织网络中的变化做出响应,针对普适应用程序的编程范式建议采用事件驱动架构。
传统的事件驱动系统在生产者和消费者在运行时发生变化的场景中,通常采用发布/订阅架构。在移动自组织网络中,设备动态加入和离开,网络连接随时可能中断,因此生产者和消费者之间的耦合应该非常松散,以防止网络分区导致系统崩溃。发布/订阅架构在空间和时间上的解耦特性,使其非常适合移动自组织网络这样的动态环境。
然而,大多数发布/订阅中间件与高级编程模型缺乏无缝集成,导致应用程序逻辑分散在不同的事件处理程序或回调中,出现控制反转现象,增加了开发、理解和维护的难度。
本文提出了一组语言构造,旨在实现以下目标:
1. 无控制反转:能够在同一编程语言中以富有表现力的方式生成、组合和响应事件,而不会反转应用程序的控制流,也不会引入额外的同步问题。
2. 支持漫游:分布式应用程序组件能够在具有普适应用程序和移动自组织网络所有特征的环境中相互通知事件,这需要在空间和时间上解耦事件生产者和消费者。
具体来说,我们使用反应式编程技术构建无控制反转的事件驱动系统,并引入了基于发布/订阅中间件的环境行为语言抽象,以支持在移动自组织网络中分布事件驱动应用程序。
2 预备知识
2.1 AmbientTalk
AmbientTalk 是一种嵌入在 Java 中的分布式编程语言,它是一种脚本语言,用于组合分布在移动自组织网络中的 Java 组件。与 Java 不同,Ambien
超级会员免费看
订阅专栏 解锁全文

6

被折叠的 条评论
为什么被折叠?



