oneM2M Tutorials using Jupyter Notebooks
oneM2M provides a series of introductional hands-on tutorials to various oneM2M concepts, resource types and requests.
This page provides an overview, links, and introduction and overview to these tutorials.
Episode 0 - Introductions
In this first episode Andreas and Ken introduce a series of short talks on using oneM2M standards to build open and interoperable IoT systems. This talk begins with an introduction to the basic elements in an IoT system and where oneM2M fits into the picture. In future talks, Andreas will illustrate oneM2M’s capabilities via a set of Jupyter Notebooks that contain software and explanatory notes.
Episode 1 - Setup Configurations
This series of talks uses Jupyter Notebooks to illustrate the basic capabilities that oneM2M standards support. In this talk, Andreas explains how to access the Notebooks online, and how to run a oneM2M Common Services Entity (CSE), which functions as an IoT platform, inside the Notebooks. He also explains how oneM2M supports the exchange of messages between applications and a CSE.
Episode 2 - First Contact with oneM2M
In this episode Andreas and Ken take a more detailed look at oneM2M requests. The practical part involves a request to the oneM2M CSE to retrieve information about its “resource tree”. The resource tree corresponds to a “digital twin” of an IoT system.
Episode 3 - Basic Resources & Requests using REST Calls
In this episode Andreas and Ken explore how IoT resources are organized in the oneM2M resource tree. The practical part uses some of oneM2M’s most basic resource types and we learn how an application can create new resources in the CSE allowing another application to retrieve information about those resources.
Episode 4 - Resource Discovery
An essential function in all IoT systems is to find and discover stored resources. In this episode Andreas and Ken talk about the “Discovery” function and how it is implemented in oneM2M.
Episode 5 - Groups
The "Group Management" Common Service Function (CSF) of oneM2M provides a way to organize multiple IoT resources into collections for efficiency and ease of management. Example scenarios might involve grouping street lights along north and south bound sections of a highway, for environmental sensors in adjoining city districts or, to electrical outlets on different floors in an office building. oneM2M's Group Management CSF helps users to manage IoT devices in groups in addition to the possibility of issuing commands to individual items. In this episode Andreas and Ken talk about the this functionality and how it operates in oneM2M.
Episode 6 - Access Control
The “Access Control” Common Service Function (CSF) is a major part of oneM2M's security functions. Its purpose is to control who has what access to stored IoT data and to resources on a oneM2M Common Services Entity (CSE). Without the proper access rights, a CSE’s security mechanisms prevent an entity that forms part of an IoT system from retrieving or performing actions on these resources. In this episode, Andreas and Ken talk about this essential functionality and illustrate its use in a streetlight use case. For this example, they consider how one streetlight operator can give another operator limited access to the data stored for their own streetlights. Together, they can create a better lighting scenario for a whole area, beyond their individual footprints. In a wider sense, data sharing enabled by a common, Access Control function promotes innovative applications and multi-stakeholder collaboration in areas ranging from smart cities to industrial supply chains.
Episode 7 - Subscriptions and Notifications
Two service providers wishing to link their IoT systems can grant cross-communication permissions via Access Control policies. In effect, one system sends commands to the second. This assumes that they have not formalized cross-business operating procedures. If not, there is still a way for them to deploy cross-organizational applications using Notifications.
Take the case of two streetlight operators in adjoining districts. One operator might wish to synchronize its lighting plans with the other. This operator can ‘subscribe’ to be notified about events in the second operator’s system. It allows the first operator to react to a status change instead of relying on a direct instruction sent by the second operator. In addition to avoiding the need for continuous polling, an event-driven approach decouples communications to the application which results in a modular communications architecture. oneM2M standardizes this arrangement via the Subscription and Notification common service function (CSF).
The CSF is also useful where one operator uses a proprietary technology that does not lend itself to cross communication with other systems. Here, oneM2M provides a bridging role between service providers and their respective technologies.
In this short talk, Andreas and Ken discuss the Notifications function and how it operates in oneM2M.
Episode 8 - FlexContainers
'Containers' are an element in oneM2M’s Technical Specifications which are used to define and construct data models. An example might be the digital twin data structure for a streetlight comprising it’s on/off status or its red/green/blue color temperature settings among other possible parameters.
In this talk we show how to pack multiple data points of a data model into a single rather than multiple resources for greater operating efficiency. One advantage of working with a single resource is to synchronize access and manipulation of multiple data points. This possibility is offered by oneM2M’s FlexContainer resource which also provides IoT developers with a convenient way to define their own data model schemas. As with normal Container resources, FlexContainers also support versioning, meaning that FlexContainers can store older versions for applications that need historical information.
Andreas and Ken discuss the functionality and benefits of FlexContainer resources using code samples in an easily accessible Jupyter Notebook.
Useful Links and Resources
- Do you have any questions? Then join the discussions on GitHub, or ask questions on StackOverflow.
- Use this link to oneM2M's GitHub repository to experiment with these tutorials using a local copy.
- YouTube Video Playlist
- Access the ACME oneM2M CSE on GitHub.
About the Presenters
Andreas Kraft works for Deutsche Telekom for more than 20 years as an enterprise architect and innovation expert in the field of IoT. He represents Deutsche Telekom in oneM2M and various other standardization consortia.
Ken Figueredo is an advisor to oneM2M’s Marketing & Communications (MARCOMs) Committee which promotes oneM2M technical standards, developer resources and deployment examples.
oneM2M is the global standards initiative that covers requirements, architecture, API specifications, security solutions and interoperability for Machine-to-Machine and IoT technologies. oneM2M was formed in 2012 and consists of eight of the world's preeminent standards development organizations: ARIB (Japan), ATIS (U.S.), CCSA (China), ETSI (Europe), TIA (U.S.), TSDSI (India), TTA (Korea), and TTC (Japan), together with industry fora and consortia (GlobalPlatform) and over 200 member organizations. oneM2M specifications provide a framework to support applications and services such as the smart grid, connected car, home automation, public safety, and health. oneM2M actively encourages industry associations and forums with specific application requirements to participate in oneM2M, in order to ensure that the solutions developed support their specific needs. For more information, including how to join and participate in oneM2M, see: https://www.onem2m.org.