dSpace: Composable Abstractions for Smart Spaces


  • 3x IoT devices, 13.6 per person by 2023

  • Complex to program smart spaces with greater variety of devices and use cases

    • Device-centric APIs

    • Monolithic implementations

    • if-then--that policies

  • Modularity

    • What is the right modularity?

    • What is the minimal set of abstractions to achieve it?

  • Modules

    • Digivice: model and driver

      • Digivices can have different device libraries (driver) programming lang. (driver) schema (modl)

        • Heterogeneity --> complexity

    • Digidata: model and driver

      • mount digidata T to digivice D

  • Composition

    • Mount

      • Idea:

        • use a universal digivice to configure a device-specific digivice

        • compose digivices with mount primitive

        • digivices form control hierarchy

          • Program the intent upward / downward

    • Pipe

    • Yield

      • Allow multiple parents, but only one can have write-access and other(s) are yielded

      • Device moves across rooms, delegate access to third-party

  • Policies

    • Delegation

      • Must preserve multi-tree topology to avoid loops


  • Composable degivice / data

    • First-class primitives: mount, pipe, yield

    • Rich policies: delegation, intent reconc

    • Digis run as microservices

Last updated