IPSO Smart Objects: Data Interoperability for the Internet of Things
On September 30th, the Internet Protocol for Smart Objects (IPSO) Alliance published the Smart Object Starter Pack Guideline. This document, while not a formal specification, provides a missing piece of the interoperability puzzle for the Internet of Things (IoT).
It’s generally acknowledged that there are plenty of emerging standards for communication protocols that run the IoT. Web technologies and architecture like the REST design pattern, URIs and hypermedia, provide a sound foundation for scalability, interoperability, and ease of use.
Internet Protocols from edge devices to the cloud
Internet protocols including CoAP (IETF RFC7252) have been developed that can be run on very small and low power constrained devices, down to the order of 16KB of Ram and 128 KB of flash. CoAP implements the REST design pattern, with specific extensions for Machine to Machine (M2M) communication use cases. This allows a new IP level interoperability, making constrained devices into tiny web servers that can interact with other devices and systems using internet and web protocols.
At the same time, low power communication technology is consolidating around some standards that are deploying IP networking capability. The Thread alliance, Zigbee Alliance, and Bluetooth SIG are all planning to deliver standard IP network interfaces in their communication stacks.
These developments will create a system of layered interoperability at several levels. With IP networking, many standard application layers can be accommodated easily. Using CoAP, devices communicate in a standard way using a 2-way client-server REST pattern.
Interoperability needs more than protocol standards
Even so, adherence these standards does not guarantee the kind of interoperability expected from the Internet of Things. For example, we would like to enable any sensor or actuator, out of the box, to work with any service, application, or another compatible device.
What is missing is a layer of interoperability around the data and metadata exchanged between devices and application software. API structures, data formats, data types, and data meanings all need to be harmonized and normalized in order to achieve this level of interoperability.
The IPSO Smart Object Guidelines are meant to solve this “Last data mile” interoperability problem. Using the standardized layers of IP and the REST design pattern, including CoAP, IPSO Smart Objects provide a common Object Model, consisting of a URL template and set of data types that enables application software to meaningfully interact with devices, including software in other devices.
IPSO Smart Objects are analogous to web pages for devices, a uniform data layout for RESTful web objects that enables discovery, interoperability, and reuse of client and server software. Device software can use a simple library to make instances of diverse sensors and actuators. Common server and application middleware code can be used with any IPSO compliant sensor of any definition, current or future. Using a common set of object definitions, any application software can interact with any devices, subject of course to the provided authorization and permission controls.
Smart Objects available for use today
IPSO Smart Objects work with existing server software and middleware, including the ARM® mbed™ Device Server. The guideline is based on OMA Lightweight M2M (LWM2M), which is a device management and device server specification that defines how to use CoAP and related IETF standards in a consistent way for interoperability. IPSO Smart Objects can also be used with any protocol or server that supports the REST pattern and a few basic content types, including HTTP.
LWM2M provides for standardized device management, including Onboarding, Security provisioning, firmware management, network instrumentation, and resource level access control. IPSO Smart Objects work with any LWM2M server, effectively turning it into an Internet of Things API server in addition to performing device management. LWM2M servers are lightweight and can run in small gateways and devices, as well as cloud scale deployments.
The Smart Object Starter Pack
Today’s document is the Smart Object Starter Pack, a definition of 18 objects that can be used in common application use cases from smart home, energy, and wearables. Some examples are temperature sensor, barometer sensor, lighting control, load control, and accelerometer.
The Starter Pack is published as a way to acquaint developers and users with the object model and provide some example objects to get started with. The model allows new objects and resources to easily be created, deployed, and tested in new application areas and new domains. IPSO and OMA are developing tools and processes to enable new object sets to be created for new application domains, and for registering these as open standards. Of course, private object sets can also be created for private enterprise domains.
For more information, and to obtain a copy of the Smart Object Starter Pack, please see the press release and IPSO web page at:
IPSO Alliance Publishes Smart Objects Guideline – Starter Pack 1.0 | IPSO Alliance
CoAP, LWM2M, and IPSO Smart Objects are supported on ARM mbed. For further information see:
mbed | welcome
Standards mentioned in this article:
IETF CoAP (RFC 7257)
CoAP — Constrained Application Protocol | Overview
OMA Lightweight M2M (LWM2M)