Subject: Re: [T2TRG] Splot Object Model

From: Ari Keränen <[email-masked]>
Date: Wed, 12 Dec 2018 12:04:03 +0000

Hi Robert,

Thank you for sharing this! Looks very interesting. I'm looking forward to discuss this in more detail at the WISHI call tomorrow.

I noticed that this model has quite a lot of commonalities with the LwM2M object/resource model [1] and likewise SCMP with the LwM2M protocol (using CoAP & CBOR, etc.). Have you thought about interwork with LwM2M for example?

Cheers,
Ari

[1] http://www.openmobilealliance.org/release/LightweightM2M/V1_1-20180612-C/OMA-TS-LightweightM2M_Core-V1_1-20180612-C.html#7-0-7-Identifiers-and-Resources

> On 24 Nov 2018, at 5.19, Robert Quattlebaum <rquattle=[email-masked]> wrote:
> 
> Hello everyone,
> 
> I've been working diligently over the past six months on developing an
> experimental object model, network protocol, and implementation for
> thing-to-thing communication, as well as more general monitoring and
> control of IoT devices, sensors, and actuators.
> 
> I'm bringing it up here because it seems right up the alley of this
> research group and I thought it might make for interesting discussion.
> 
> Here are the general themes:
> 
> *   Emphasis on a simple object model that is both expressive and easy
>    for developers to learn and use.
> *   The fundamental control surface objects (Functional Endpoints) are
>    polymorphic and support hierarchical relationships.
> *   Primary interaction is via properties and performing mutations on
>    those properties.
> *   Methods/queries are available for when properties aren't a natural
>    fit.
> *   Avoids numeric identifiers, preferring short mnemonic labels.
> 
> Here are some of the reference use cases that were kept in mind while
> developing the object model in order to help guide its development:
> 
> *   Lighting (Supports scenes, smooth transitions, groups)
> *   Network equipment configuration, like smart PoE switches
> *   Low power environmental sensor networks
> *   Cross-device notifications (e.g.microwave sends start notification
>    to smart screen that allows user to cancel or add more time from
>    the smart screen)
> *   Power control and monitoring
> 
> My work can currently be broken up into an assortment of related
> projects:
> 
> *   The Splot¹ Object Model (SOM), which defines the fundamental
>    mechanisms of interaction. This is largely complete and
>    well-understood.
> *   The Splot Security Model (SSM), which defines security
>    interactions and behaviors in terms of the SOM. While the general
>    structure has been worked out, I'm still in the process of
>    refining, documenting, and implementing.
> *   The Simple Monitoring and Control Protocol (SMCP), which is an
>    application of the SOM (and, eventually, the SSM) that uses CoAP
>    and CBOR and (eventually) COSE and OSCORE.
> *   A set of general-purpose trait definitions.
> *   Implementations of the above in Java.
> 
> I've written up two relatively short informal introduction documents
> which should give you a flavor of how everything is intended to work:
> 
> *   [Introduction to the Splot Object Model (SOM)](https://goo.gl/PbSKdx)
> *   [Introduction to the SMCP](https://goo.gl/itGrYS)
> 
> More formal and through documentation is in the process of being
> written, but a great deal of additional information can be found in
> the Javadocs:
> 
> *   [Splot for Java API Documentation](https://goo.gl/QzuFqZ)
> 
> Specifically, the documentation for the following objects may be
> particularly informative about the object model:
> 
> *   [`m2m.base.FunctionalEndpoint`](https://goo.gl/UxJFmg)
> *   [`m2m.base.Technology`](https://goo.gl/mHziS9)
> 
> If you are curious about the experimental reference implementation,
> the git repository can be found here: <https://goo.gl/iKNgiS>
> 
> Thoughts and feedback are welcome.
> 
> -/- Robert Quattlebaum
> 
> ------
> 
> ¹ I find it difficult to work on projects that don't have names, thus
> have a tendency to name projects using random innocuous words, in this
> case a word from Polish.
> 
> _______________________________________________
> T2TRG mailing list
> [email-masked]
> https://www.irtf.org/mailman/listinfo/t2trg