Supporting OCF resources from the web of things

The Web of things is an abstraction layer for the IoT. As such it needs to work on top of existing IoT platform standards and decouple applications from the underlying protocols and communication patterns. The Open Connectivity Foundation has a large set of resources defined using RAML as part of the OIC specification 1.1.  RAML is a text based format for describing RESTful interfaces exposed by servers.

See: https://openconnectivity.org/resources/specifications

I’ve gone through all the sixty plus resources defined in OIC 1.1  and remodelled them in JSON. To test if this contains sufficient metadata for an OCF library to interoperate with OCF platforms, I’ve also done the experiment of automatically re-generating the RAML from the JSON. You can browse through the sixty or so models in the online demo at:

      https://www.w3.org/WoT/demos/td2ttl/oic.html

Some of the lessons learned include:

 -  thing descriptions are more more concise than RAML and much easier to understand
 -  thing descriptions need to include the OCF resource type identifier
 -  thing descriptions need to indicate which properties are require or optional
 -  whether a property is read-ony or not can be used to distinguish sensing and actuation
 -  arrays are needed, but the OCF use cases don’t clarify whether ordering matters
 -  enums and unions are needed for some of the use cases
 -  vectors provide a means to name the fields in arrays, e.g. for x, y and z coordinates
 -  re-useable type declarations are very handy for some use cases
 -  a means to link to external declarations (imports) are convenient in some use cases
 -  the need to distinguish integers from floating point numbers

I am still learning about the OCF approach, and want to explore this with the iotivity tool kit. For instance, the level of support for streaming, and what if anything there is for signalling changes to metadata as distinct from properties.

This has encouraged me to think about creating similar demonstrators for other platforms, e.g. Bluetooth, M2M, OPC, Protocol Buffers, RESTful Web services and so forth.  Anyone interested in helping with these studies?

—
   Dave Raggett <dsr@w3.org <mailto:dsr@w3.org>>

Received on Monday, 5 December 2016 16:38:04 UTC