Riffle:面向本地优先应用的反应式关系状态管理

知识工作者工具与工作流计算方法在HCI中的应用软件工程师与开发者UI/UX 设计师

文献标题

Rifle: Reactive Relational State for Local-First Applications

文献信息

  • 主题领域: 用户界面开发与本地优先架构结合的反应式数据管理
  • 关键词: 本地优先软件, 用户界面状态管理, 反应式编程, 关系型数据库, 增量视图维护, 同步事务更新

研究背景与问题

  • 发现的问题或挑战:

    • UI 框架通常在简单性和可扩展性之间妥协。
    • 开发者需要处理复杂的跨层状态管理(如 ORM、数据库、缓存、视图等)。
    • Web 应用中的状态管理常涉及异步操作,增加操作的复杂性和潜在不一致性。
    • 现有框架大多只部分提供或者支持反应式开发,未能覆盖 UI 和数据层的全流程。
  • 重要性:

    • 高效的状态管理能显著提升复杂应用开发的生产力。
    • 渐增式复杂度的状态管理更适合真实应用需求,特别是处理数据量大和性能要求高的场景。
  • 研究动机与相关工作:

    • 借鉴传统电子表格的反应式数据模型,但突破其性能和复杂性限制。
    • 本地优先架构蓬勃发展,为离线使用及异步同步提供便利。
    • 在关系型数据库领域的增量视图维护 (IVM) 提供了高性能状态更新的可能性。

解决方案

  • 提出的方法:

    1. 提出反应式关系型架构:
      • 数据转换用带有 DAG(有向无环图)的关系型查询定义,提供“程序声明式”界面。
      • UI 与域状态统一存储在本地关系型数据库中,提供事务级同步更新。
    2. 设计与实现 Rifle 系统:
      • 利用 TypeScript 库实现,结合 React.js 和 SKDB 数据库支持快速增量更新与网络同步。
    3. 实施应用案例:音乐管理应用 Overtone,探索 Rifle 在复杂数据与高性能领域的适用性。
  • 解决方案创新:

    • 统一的反应式关系型查询支持数据与 UI 状态的同步更新。
    • 本地优先模型避免异步导致的不一致,显著提升用户体验。
    • 引入 SQL 等 declarative 模型使开发者能够高效设计数据转换逻辑,提升开发直观性。
  • 实施步骤与技术:

    • 将所有应用状态存储于本地持久化关系型数据库 (如 SKDB)。
    • UI和业务状态更新采用事务维度反应式控制,完全同步。
    • 借助增量视图维护技术优化更新开销,内置动态查询生成机制。
    • 针对大数据集场景,结合自定义 GraphQL 和 SKDB 的增量更新功能提供高性能支持。

研究成果

  • 具体成果:

    • 使用 Rifle 开发了音乐管理应用 Overtone,成功简化了 UI 和数据状态管理。
    • Overtone 具备快速的 UI 响应和灵活数据视图支持,即便在存在大量音轨与复杂关系的情况下表现优异。
    • 实现对反应式写事务的支持,并允许更高效、可靠的离线优先操作。
    • 开发者可通过 Rifle 编写 declarative query,对于数据依赖关系的处理更简洁明确。
  • 对比优势:

    • 与传统 web 框架对比:
      • 消除了网络边界引入的不一致与延迟问题。
      • 整合 UI 状态管理与业务表层状态管理。
      • 避免开发者必须编写繁琐的状态传播逻辑。
    • 与数据库原材支持相比:
      • 增强了关系型查询上的反应式能力,优化性能。
      • 提供完整开发工具链,尤其面向 UI 和数据结合场景。
  • 实验与评估结果:

    • 性能测试表明,使用增量式关系型数据库(如 SKDB)可在百万级音轨数据中实现 <3ms 的数据更新时间,而传统 SQLite 中全视图重算需花费数百毫秒。
    • 音乐管理应用中的 UI 在过万条数据情况下,用户操作(如选择播放列表)几乎无延迟,符合100ms以内的交互标准。
    • 使用 GraphQL 替代单一 SQL 提供了更大的可表达性,例如允许 UI 更轻松生成嵌套数据形状。
  • 局限性与未来方向:

    • 局限性:
      • 本地优先的软件适应场景较窄,不适合需要频繁状态更新的社交网络或电子商务类应用。
      • 现有关系型数据模型不能高效地表示复杂的层次结构和序列。
      • 无法避免的异步操作(如网络请求、慢查询)仍需开发额外逻辑解决。
    • 未来改进:
      • 设计新型 declarative 模型(比如结合网络边界处理的DIEL)来处理更复杂的用户场景。
      • 支持跨设备数据同步和协作支持的更高效机制。
      • 成为跨应用程序数据互操作性平台的一部分,如与定制化分析工具集成。

总结

Rifle 提出了一种全新架构,将 UI 与快速反应式关系型数据库深度结合,通过本地优先模型解决当前 Web 应用开发中的诸多痛点问题。通过 Overtone 使用案例,验证了 Rifle 系统在高复杂度及高性能需求场景下的适用性,并为未来用户应用开发提供了重要启发。

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/papers/uist/126806/2023

广告推荐

学习 AI 编程到 CodeNow

open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3586183.3606801
一眼看懂

论文快照

fact_check
dataset
来源
UIST
calendar_month
年份
2023
emoji_events
奖项
未标记奖项
group
作者
4 位作者
sell
研究子方向
知识工作者工具与工作流、计算方法在HCI中的应用
work
职业/产业
软件工程师与开发者、UI/UX 设计师
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文