The Internet of Things (IoT) holds the promise of billions of connected devices and trillions of dollars in economic opportunity. However, to capitalize on the huge commercial upside, IoT application developers face many pain-points created by the increasing complexity and diversity of IoT deployments.
Think about a smart building, smart city or smart factory. These environments house many different types of devices, technologies and vendors. In such situations, the immense scope of the IoT allows for mixing-and-matching across different types of IoT technologies, ranging from different forms of network connectivity to multiple semantic ontologies.
The burden of dealing with a multitude of IoT device types, technologies and vendors simply adds complexity and cost to IoT application developers and their applications.
oneM2M Uses Abstraction Extensively to Hide IoT-technology Complexity
The oneM2M™ standard is a global standard that hides technology complexities for IoT application developers. It lets them focus on building, deploying and commercializing their applications.
oneM2M underpins a software framework for linking IoT applications to a set of value-added services relating to: network connectivity; device security; transport protocols; content serialization; IoT device services and management; and, IoT semantic ontologies.
Each of these oneM2M services lets application developers focus on application-specific functionality (e.g. turning on/off a light switch), while relying on abstraction techniques to mask the underlying technology-specific details (e.g. whether the light switch uses a fixed or Wi-Fi network, a CoAP or HTTP transport, a JSON or XML serialization, an open Connectivity Foundation (OCF) or Thread service enablement, or an ontology based on Smart Appliances REFerence (SAREF) or W3C’s Thing Description. As an open standard, oneM2M services allow IoT developers to interact with diverse IoT devices, technologies and suppliers, without the risk of locking into a single technology or single-vendor solution.
oneM2M Spans Multiple Technology Layers
To appreciate the potential of oneM2M, consider how the standard helps application developers manage devices that may rely on one or more networking technologies. The portfolio of oneM2M network services enables individual apps to:
- Schedule and buffer messages based on device reachability
- Select network connectivity (e.g. 3GPP, fixed-network, Wi-Fi, etc.) based on programmable, optimization criteria
- Trigger network connections only when an app needs to communicate with associated devices
- Configure quality of service (QoS) based on the needs of individual apps
Considering the importance and ubiquity of standards-based (3GPP) mobile connectivity, oneM2M collaborates closely with 3GPP on interworking services. Recent progress includes the Service Capability Exposure Function (SCEF) API, which exposes underlying 3GPP network services to oneM2M and vice versa. Information exchanged via the SCEF API enables more intelligent services within oneM2M as well as in the underlying 3GPP network. As an example, oneM2M can share application specific requirements with the underlying 3GPP network allowing a developer to manage the sleep schedule of a 3GPP IoT device to conserve device and network resources.
The same abstraction philosophy that applies to the network layer works in the same way at higher layers as well.
- Security abstraction – oneM2M hides the diverse types of security used between IoT devices and IoT applications. Examples include: different types of enrolment; credential management; authentication; integrity; privacy; and, authorization. IoT applications can pick the type of security they want to use to communicate securely with the oneM2M service layer. In this manner, oneM2M acts as a security proxy for IoT applications and handles the secure communication with IoT devices on behalf of the IoT applications.
- Transport protocol abstraction – oneM2M can hide different transport protocols (e.g. HTTP/S, CoAP, MQTT, WebSockets), masking the conversion process for app developers. This allows developers to use their transport protocol of choice to communicate with the oneM2M service layer, by relying on oneM2M to handle the transport protocol translation needed to communicate with the different IoT devices.
- Content serialization abstraction – IoT applications can use their serialization format of choice to communicate with the oneM2M service layer. oneM2M can convert XML, JSON, CBOR, plain-text and other content serialization formats supported by the different types of IoT devices.
- IoT Device services and management abstraction – oneM2M employs a standardized API to access device services and manage devices. This includes interworking with LWM2M, OCF, OMA DM and Broadband Forum (BBF) TR-069 devices. IoT applications need not worry about which device management protocol different IoT devices use. Instead, applications can use the oneM2M defined management objects to manage the translation process for the underlying device management protocols used by different IoT devices. In addition, IoT application developers can take advantage of oneM2M value-add capabilities such as: resource discovery; event generation; grouping; and, access controls.
- IoT device semantics abstraction – The Base Ontology of oneM2M is part of a framework to describe oneM2M resources in a semantic manner. Its capabilities support interworking with other ontologies defined by third-party organizations. This capability allows applications to understand the data models of different types of IoT devices. IoT applications do not need to worry about which ontologies different IoT devices use. Applications can use the oneM2M defined ontology and oneM2M will manage the translation to the respective underlying ontology used by the IoT devices.
oneM2M Places Powerful New Tools in the Hands of IoT Application Developers
IoT deployments include a diverse mix of device types, potentially multi-sourced from more than one vendor. The integration of multiple technologies and individual vendor customizations are major sources of complexity, especially for the IoT app developer community. The value of the oneM2M standard is in empowering app developers to access a diverse set of IoT devices through a single API, whose abstraction helps hide this complexity.
This article draws on a presentation delivered at the oneM2M Industry day, hosted by TSDSI in Bangalore, India on 20 Sep 2017.
The aim of oneM2M is to develop technical specifications which address the need for a common Service Layer that can be readily embedded within various hardware and software, and relied upon to connect the myriad of IoT devices and applications.
The oneM2M Partnership Project is supported by eight international standards bodies including: ARIB(Japan), ATIS (USA), CCSA (China), ETSI (Europe), TIA (USA), TSDSI (India), TTA (Korea) and TTC (Japan). Over 200 public and private sector organizations and members of oneM2M and contribute to its standards development activities.
oneM2M is a trademark of the Partners Type 1 of oneM2M.