Transactuations:让事务与物理世界相遇
1. 引言
构建与物理世界交互的可靠物联网(IoT)应用程序颇具挑战。当前的IoT解决方案,如Smartthings和OpenHAB,虽提供了简单抽象,便于开发者读取传感器数据和驱动执行器,但缺乏编写可靠且容错应用程序的高级抽象。这使得开发者不仅要处理物理世界中的各类故障,还要确保应用程序状态(软状态)和IoT设备状态(硬状态)之间的一致性。
例如,当激活警报的操作失败时,应用程序中的警报状态可能已被设置为开启,导致物理世界和应用程序状态不一致。此外,使用无服务器函数运行IoT应用程序进一步加剧了可靠性问题,因为无服务器计算基础设施可能随时终止应用程序,使硬状态操作和软状态操作不一致。
事务似乎是解决这些问题的合适机制,但由于IoT设备及其硬状态的固有特性,事务抽象无法解决这些问题。事务抽象适用于确保软状态之间的隔离性和全有或全无保证,且能轻松回滚软状态而不被其他事务或用户察觉。然而,回滚硬状态可能会产生不良后果,甚至有些状态无法回滚。
为此,本文提出了一种名为“transactuation”的抽象,它隐藏了处理各种故障的复杂性,使开发者能够轻松维护软状态与硬状态读写的一致性。同时,本文还提供了一个名为Relacs的运行时系统,它在智能家居环境中实现了这一抽象,将应用程序转换为无服务器函数,并在云端可靠执行。
本文的主要贡献如下:
1. 对智能家居应用程序进行研究,通过静态分析,识别现有平台在编写可靠和容错应用程序方面的不足。
2. 提出transactuation抽象,使开发者能够简单地编写可靠的IoT应用程序。
3. 实现Relacs运行时系统,在不回滚
超级会员免费看
订阅专栏 解锁全文
17

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



