Middleware for the Internet
- f Things
Revision : 536
Chantal Taconet
SAMOVAR, Télécom SudParis, CNRS, Université Paris-Saclay September 2017
Middleware for the Internet of Things Revision : 536 Chantal - - PowerPoint PPT Presentation
Middleware for the Internet of Things Revision : 536 Chantal Taconet SAMOVAR, Tlcom SudParis, CNRS, Universit Paris-Saclay September 2017 Outline 1. Internet of Things (IoT) 2. Middleware for the IoT 3. Standardization, reference
Revision : 536
SAMOVAR, Télécom SudParis, CNRS, Université Paris-Saclay September 2017
2/52 M4IoT
Internet of Things (IoT)
Image extracted from [Shelby, 2010] 3/52 M4IoT
Internet of Things (IoT)
Huge number of connected objects High heterogeneity
Image extracted from http://canadablog.cisco.com/2013/09/24/for-canada-how-big-is-everything-in-the-internet-of-everything 4/52 M4IoT
Internet of Things (IoT)
5/52 M4IoT
Internet of Things (IoT)
Image extracted from http://www.libelium.com/ 6/52 M4IoT
Internet of Things (IoT)
Image extracted from http://www.libelium.com/ 7/52 M4IoT
Middleware for the IoT
8/52 M4IoT
Middleware for the IoT
Master the heterogeneity Handle many interaction levels Facilitate the development through
abstractions, patterns and API
Communication substrate Application Application
OS OS OS OS
Dedicated API
Standard API
Aggregator Collector Middleware
9/52 M4IoT
Middleware for the IoT
Master the heterogeneity Handle many interaction levels Facilitate the development through
abstractions, patterns and API
Communication substrate Application Application
OS OS OS OS
Dedicated API
Standard API
Aggregator Collector Middleware
9/52 M4IoT
Middleware for the IoT
Master the heterogeneity Handle many interaction levels Facilitate the development through
abstractions, patterns and API
Communication substrate Application Application
OS OS OS OS
Dedicated API
Standard API
Aggregator Collector Middleware
9/52 M4IoT
Middleware for the IoT
Master the heterogeneity Handle many interaction levels Facilitate the development through
abstractions, patterns and API
Communication substrate Application Application
OS OS OS OS
Dedicated API
Standard API
Aggregator Collector Middleware
9/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Middleware for the IoT
Massive scale: Continuous vast flows of data → Filter data Complex systems: Involving connected objects, mobiles,
cloudlets [Satyanarayanan et al., 2009], clouds
→ Reduce the complexity → Software engineering (design process, code generation, specific APIs) Open access: Decoupled producers and consumers → Ensure privacy → Qualify data/context (QoC)
[Blair et al., 2016, Stankovic, 2014]
10/52 M4IoT
Standardization, reference architectures and emerging platforms
3.1 Standardization 3.2 IoT Reference architecture 3.3 Example of Emerging IoT Platforms
11/52 M4IoT
Standardization, reference architectures and emerging platforms
Protocols, API, architectural patterns independant of the application
domains
12/52 M4IoT
Standardization, reference architectures and emerging platforms Standardization
Image extracted from AIOTI Alliance for internet of things innovation 13/52 M4IoT
Standardization, reference architectures and emerging platforms Standardization Image extracted from http://www.societe-informatique-de-france.fr/wp-content/uploads/2015/12/IOT-Présentation-Orange.pdf 14/52 M4IoT
Standardization, reference architectures and emerging platforms Standardization
IETF
devices OASIS (MQTT) publish/subscribe
W3C Web of Things
IoT security foundation (guide for privacy and trust)
15/52 M4IoT
Standardization, reference architectures and emerging platforms Standardization
Google IoT Amazon IoT platform Eclipse IoT Oracle Internet of Things Cloud Service Azure IoT (microsoft) Samsung IoT platform . . . . . .
16/52 M4IoT
Standardization, reference architectures and emerging platforms IoT Reference architecture
A Reference Architecture is an architectural design pattern that indicates how an abstract set of relationships realises a set of requirements. The main purpose of a RA is to provide guidance for the development of concrete architectures.
17/52 M4IoT
Standardization, reference architectures and emerging platforms IoT Reference architecture
Image extracted from http://wso2.com/solutions/iot/ 18/52 M4IoT
Standardization, reference architectures and emerging platforms IoT Reference architecture
Image extracted from http://www.iot-a.eu/ 19/52 M4IoT
Standardization, reference architectures and emerging platforms IoT Reference architecture
Image extracted from http://www.iot-a.eu/ 20/52 M4IoT
Standardization, reference architectures and emerging platforms Example of Emerging IoT Platforms
21/52 M4IoT
Standardization, reference architectures and emerging platforms Example of Emerging IoT Platforms
Image extracted from https://aws.amazon.com/fr/iot-platform 22/52 M4IoT
Standardization, reference architectures and emerging platforms Example of Emerging IoT Platforms
Image extracted from https://horovits.files.wordpress.com/2015/05/samsung-smartthings-opencloud-sami-architecture.png 23/52 M4IoT
Interaction models and standard protocols
4.1 Interaction design patterns 4.2 Publish/Subscribe 4.3 REST API 4.4 CoAP
24/52 M4IoT
Interaction models and standard protocols
IoT platforms —i.e. software providing the proper level of abstraction to
end-users’ applications: discovery of Internet objects, storage of context data, context management, data analysis.
25/52 M4IoT
Interaction models and standard protocols Interaction design patterns
26/52 M4IoT
Interaction models and standard protocols Interaction design patterns
27/52 M4IoT
Interaction models and standard protocols Interaction design patterns
28/52 M4IoT
Interaction models and standard protocols Publish/Subscribe
OASIS standard adopted by IoT platforms (e.g., Amazon IoT, Om2M) Light publish subscribe protocol suited for M2M
Many implementations e.g.,
Image extracted from https://zoetrope.io/tech-blog/brief-practical-introduction-mqtt-protocol-and-its-application-iot 29/52 M4IoT
Interaction models and standard protocols Publish/Subscribe
Publish subscribe . . . and filter
Image extracted from http://portals.omg.org/dds/what-is-dds-3/ 30/52 M4IoT
Interaction models and standard protocols REST API
REST interactions to interact with sensors/actuators
31/52 M4IoT
Interaction models and standard protocols REST API
32/52 M4IoT
Interaction models and standard protocols CoAP
Motivation : Rest-Like APIs for constrained devices
Image extracted from CoAP: An Application Protocol for Billions of Tiny Internet Nodes 33/52 M4IoT
Interaction models and standard protocols CoAP
Protocol stack, CoAP above UDP Lightweight messages: 4-byte header + Type-Length-Value format Multicast support Reliable or not reliable messages (optional ACK) GET/PUT/POST/DELETE Requests Single request may yield multiple responses
Proxy nodes to provide access to CoAP resources via HTTP
Support for the discovery of resources
Californium (eclipse IoT)
34/52 M4IoT
Interaction models and standard protocols CoAP
Image extracted from http://electronicdesign.com/iot/mqtt-and-coap-underlying-protocols-iot 35/52 M4IoT
OneM2M example of a standardized IoT platform
5.1 OneM2M functional architecture 5.2 OneM2M Protocol 5.3 OM2M demo
36/52 M4IoT
OneM2M example of a standardized IoT platform
requirements, architecture, API specifications, security solutions and interoperability for Machine-to-Machine and IoT technologies
OneM2M is a standard that provides a standardized interface to manage
and interact with all kind of devices
Technical Specifications V1.6.1 January 2015
37/52 M4IoT
OneM2M example of a standardized IoT platform
38/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M functional architecture
Application Entity (AE): sensors and applications Common Service Entity (CSE): server Network Services Entity (NSE): device management, location services
39/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M functional architecture
Application Entity provides Application logic for the end-to-end M2M
solutions
Examples of the Application Entities can be fleet tracking application,
remote blood sugar monitoring application, or remote power metering and controlling application
An Underlying Network Services Entity provides services to the CSEs.
Examples of such services include device management, location services and device triggering. No particular organization of the NSEs is assumed.
40/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M functional architecture
A Common Services Entity comprises the set of ”service functions”
common to the M2M environments.
Such service functions are exposed to other entities through Reference
Points Mca, Mcc, Mcn.
Examples of service functions offered by CSE are: Data Management,
Node Management, M2M Subscription Management, Location Services
as Common Services Functions (CSFs). Inside a CSE, some of the CSFs can be mandatory and others can be optional.
41/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M functional architecture
42/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M functional architecture
43/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M functional architecture
44/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M Protocol
45/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M Protocol
46/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M Protocol
47/52 M4IoT
OneM2M example of a standardized IoT platform OneM2M Protocol
48/52 M4IoT
OneM2M example of a standardized IoT platform OM2M demo
Project initiated by the Toulouse LAAS laboratory
It provides a horizontal Service Common Entity (CSE)
that can be deployed in an M2M server, a gateway, or a device.
Each CSE provides Application Enablement, Security, Triggering,
Notification, Persistency, Device Interworking, Device Management, etc.
Storage mode: SQL and NoSQL (SQL H2 by default) OSGI framework Protocol bindings: CoAP REST and MQTT
49/52 M4IoT
OneM2M example of a standardized IoT platform OM2M demo
50/52 M4IoT
Conclusions
51/52 M4IoT
Conclusions
Some mature Internet standards enable IoT interactions (RESTfull
architecture, representation formats, security TLS/DTLS)
IoT specific standards are emerging (e.g., OneM2M)
Some efforts still necessary, e.g.,
to build high level services, data analysis etc.
52/52 M4IoT
Blair, G., Schmidt, D., et al. (2016). Middleware for Internet distribution in the context of cloud computing and the Internet of Things, editorial introduction. Annals of Telecommunications, ON LINE FIRST SINCE 2016, February 26:1–6. Satyanarayanan, M., Bahl, P., Caceres, R., et al. (2009). The case for vm-based cloudlets in mobile computing. IEEE Pervasive Computing, 8:14–23. Shelby, Z. (2010). Embedded web services. Wireless Communications, IEEE, 17(6):52–57. Stankovic, J. A. (2014). Research Directions for the Internet of Things. IEEE Internet of Things Journal, 1(1):3–9. 53/52 M4IoT