分布式容错控制器:GOANNA系统解析
1. 引言
在开发分布式应用时,程序员常常面临如何正确协调分布式组件以实现全局行为的问题。常见的系统包括传感与响应系统、军事侦察与救援任务、航空中的自主控制系统以及安全关键系统等。
目前,常用的方法是构建集中式控制系统来强制实现组件的全局行为。集中式协调的优点是实现简单,无需在组件间实现同步和共识,且有许多工具可用于定义和实现集中式控制器。然而,集中式协调存在单点故障问题,并且在可扩展性方面存在挑战。现有的分布式解决方案通常是特定于应用的,要求程序员理解并实现同步和共识算法,这些算法往往较为复杂。
本文介绍了一种新的方法,通过一个全局行为的有限状态机(FSM)定义来生成分布式且容错的实现。该方法已在名为GOANNA的系统中实现,该系统以状态机为输入,输出JAVA、C或nesC的分布式实现。GOANNA系统可用于开发传感器网络、无人驾驶车辆和家庭网络等分布式应用,也可作为使用有限状态机生成集中式控制器的工具的后端。
2. 概述
以一个小型火灾报警传感器系统为例,该系统由温度和烟雾传感器以及洒水喷头执行器组成。基本要求是,只有当温度和烟雾读数超过阈值时,洒水喷头才应启动。
2.1 系统模型和状态机
系统由一组提供和需求服务的组件组成,组件可以预先绑定在一起。在火灾报警系统中,洒水喷头组件提供 waterOff() 和 waterOn() 服务,用于开启和关闭水流;温度和烟雾组件需求 tempEvent(int val) 和 smokeEvent(int v
超级会员免费看
订阅专栏 解锁全文

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



