OneM2M Tutorials using Jupyter Notebooks: Difference between revisions

From OneM2M
Jump to: navigation, search
No edit summary
No edit summary
 
(19 intermediate revisions by the same user not shown)
Line 11: Line 11:
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.
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.


* [https://www.youtube.com/watch?v=upY7FCktX74 Video on YouTube]
 
{{#evu:https://www.youtube.com/watch?v=upY7FCktX74
|alignment=inline
|dimensions="120"
}}
 
 
* [https://wiki.onem2m.org/images/9/98/OneM2M_-_Tutorial_0_-_Introduction.pdf Presentation]
* [https://wiki.onem2m.org/images/9/98/OneM2M_-_Tutorial_0_-_Introduction.pdf Presentation]


Line 18: Line 24:
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.   
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.   


* [https://www.youtube.com/watch?v=28JmyIpNQ_4 Video on YouTube]
 
{{#evu:https://www.youtube.com/watch?v=28JmyIpNQ_4
|alignment=inline
|dimensions="120"
}}
 
 
* [https://wiki.onem2m.org/images/c/c2/OneM2M_-_Tutorial_1_-_Set-up_Configurations.pdf Presentation]
* [https://wiki.onem2m.org/images/c/c2/OneM2M_-_Tutorial_1_-_Set-up_Configurations.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/__START__.ipynb Launch on MyBinder]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/__START__.ipynb Launch on MyBinder]
Line 26: Line 38:
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.
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.


* [https://www.youtube.com/watch?v=fPMNs0hYv00 Video on YouTube]
 
{{#evu:https://www.youtube.com/watch?v=fPMNs0hYv00
|alignment=inline
|dimensions="120"
}}
 
 
* [https://wiki.onem2m.org/images/a/a3/OneM2M_-_Tutorial_2_-_First_Contact_with_oneM2M.pdf Presentation]
* [https://wiki.onem2m.org/images/a/a3/OneM2M_-_Tutorial_2_-_First_Contact_with_oneM2M.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/01-introduction.ipynb Launch on MyBinder]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/01-introduction.ipynb Launch on MyBinder]
Line 33: Line 51:
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.
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.


* [https://www.youtube.com/watch?v=OFbxlHW32Ww Video on YouTube]
 
 
{{#evu:https://www.youtube.com/watch?v=OFbxlHW32Ww
|alignment=inline
|dimensions="120"
}}
 
 
* [https://wiki.onem2m.org/images/2/2b/OneM2M_-_Tutorial_3_-_Basic_Resources_%26_Requests_using_REST_Calls.pdf Presentation]
* [https://wiki.onem2m.org/images/2/2b/OneM2M_-_Tutorial_3_-_Basic_Resources_%26_Requests_using_REST_Calls.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/02-basic-resources.ipynb Launch on MyBinder]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/02-basic-resources.ipynb Launch on MyBinder]
Line 40: Line 65:
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.
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.


* [https://www.youtube.com/watch?v=hi-kjo0BasI Video on YouTube]
 
{{#evu:https://www.youtube.com/watch?v=hi-kjo0BasI
|alignment=inline
|dimensions="120"
}}
 
 
* [https://wiki.onem2m.org/images/5/51/OneM2M_-_Tutorial_4_-_Resource_Discovery.pdf Presentation]
* [https://wiki.onem2m.org/images/5/51/OneM2M_-_Tutorial_4_-_Resource_Discovery.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/03-discovery.ipynb Launch on MyBinder]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/03-discovery.ipynb Launch on MyBinder]


=== More Episodes to Come ===
=== 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.
 
 
{{#evu: https://www.youtube.com/watch?v=N1tbNtjfHB0
|alignment=inline
|dimensions="120"
}}
 
 
* [https://wiki.onem2m.org/images/9/99/OneM2M_-_Tutorial_5_-_Groups.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/04-groups.ipynb Launch on MyBinder]
 
 
=== 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.
 
{{#evu: https://www.youtube.com/watch?v=Y-ED8JKAubs
|alignment=inline
|dimensions="120"
}}
 
* [https://wiki.onem2m.org/images/f/f8/OneM2M_-_Tutorial_6_-_Access_Control.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/05-accesscontrol.ipynb Launch on MyBinder]
 
 
 
=== 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.
 
{{#evu: https://www.youtube.com/watch?v=_lmb1DgyKnk
|alignment=inline
|dimensions="120"
}}
 
* [https://wiki.onem2m.org/images/c/cd/OneM2M_-_Tutorial_7_-_Notifications.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/06-notifications.ipynb Launch on MyBinder]
 
 
 
=== 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.
 
{{#evu: https://www.youtube.com/watch?v=cMZBNFRAlPY
|alignment=inline
|dimensions="120"
}}
 
<!--
{{#evu: TBD
|alignment=inline
|dimensions="120"
}}
-->
 
* [https://wiki.onem2m.org/images/5/5b/OneM2M_-_Tutorial_8_-_FlexContainer.pdf Presentation]
* Jupyter Notebook for this episode (online): [https://mybinder.org/v2/gh/oneM2M/onem2m-jupyter-notebooks/master?urlpath=lab/tree/07-flexcontainer.ipynb Launch on MyBinder]


* Groups
* Access Control
* Subscriptions and Notifications
* FlexContainers
----
----



Latest revision as of 05:09, 8 December 2023


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.

Episodes

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


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.

About oneM2M

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.