You are on page 1of 65

Middleware for the Internet

of Things
Revision : 536

Chantal Taconet
SAMOVAR, Télécom SudParis, CNRS, Université Paris-Saclay

September 2017
Outline

1. Internet of Things (IoT)

2. Middleware for the IoT

3. Standardization, reference architectures and emerging platforms

4. Interaction models and standard protocols

5. OneM2M example of a standardized IoT platform

6. Conclusions

2/52 M4IoT
Internet of Things (IoT)

Internet of things, Internet of everything

Image extracted from [Shelby, 2010]

3/52 M4IoT
Internet of Things (IoT)

IoT impacts the Internet


 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)

Hype Cycle for Emerging Technologies

5/52 M4IoT
Internet of Things (IoT)

From IoT silos to Internet Openness

Image extracted from http://www.libelium.com/

6/52 M4IoT
Internet of Things (IoT)

Opportunity to build new mass services

Image extracted from http://www.libelium.com/

7/52 M4IoT
Middleware for the IoT

Plan

1. Internet of Things (IoT)

2. Middleware for the IoT

3. Standardization, reference architectures and emerging platforms

4. Interaction models and standard protocols

5. OneM2M example of a standardized IoT platform

6. Conclusions

8/52 M4IoT
Middleware for the IoT

Middleware for the IoT


Master the growing complexity of
interactions
 Master the heterogeneity

 Handle many interaction levels

 Facilitate the development through


abstractions, patterns and API

Application Application ... Collector Aggregator


Standard API
Middleware
Dedicated API
OS OS ... OS OS

Communication substrate

9/52 M4IoT
Middleware for the IoT

Middleware for the IoT


Master the growing complexity of
interactions
 Master the heterogeneity

 Handle many interaction levels

 Facilitate the development through


abstractions, patterns and API

Application Application ... Collector Aggregator


Standard API
Middleware
Dedicated API
OS OS ... OS OS

Communication substrate

9/52 M4IoT
Middleware for the IoT

Middleware for the IoT


Master the growing complexity of
interactions
 Master the heterogeneity

 Handle many interaction levels

 Facilitate the development through


abstractions, patterns and API

Application Application ... Collector Aggregator


Standard API
Middleware
Dedicated API
OS OS ... OS OS

Communication substrate

9/52 M4IoT
Middleware for the IoT

Middleware for the IoT


Master the growing complexity of
interactions
 Master the heterogeneity

 Handle many interaction levels

 Facilitate the development through


abstractions, patterns and API

Application Application ... Collector Aggregator


Standard API
Middleware
Dedicated API
OS OS ... OS OS

Communication substrate

9/52 M4IoT
Middleware for the IoT

Middleware for IoT challenges

 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

Middleware for IoT challenges

 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

Middleware for IoT challenges

 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

Middleware for IoT challenges

 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

Middleware for IoT challenges and propositions

 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

Middleware for IoT challenges and propositions

 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

Middleware for IoT challenges and propositions

 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

Middleware for IoT challenges and propositions

 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

Middleware for IoT challenges and propositions

 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

Middleware for IoT challenges and propositions

 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

Plan

1. Internet of Things (IoT)

2. Middleware for the IoT

3. Standardization, reference architectures and emerging platforms


3.1 Standardization
3.2 IoT Reference architecture
3.3 Example of Emerging IoT Platforms

4. Interaction models and standard protocols

5. OneM2M example of a standardized IoT platform

6. Conclusions

11/52 M4IoT
Standardization, reference architectures and emerging platforms

IoT heterogeneities requires standardization

 Protocols, API, architectural patterns independant of the application


domains

12/52 M4IoT
Standardization, reference architectures and emerging platforms
Standardization

Standard organizations

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

Some standardization organizations and IoT


 IETF

• Constrained RESTful Environments (CoAP)


• IPv6 over Low-power WPAN (6LoWPAN)
• Transport Layer Security: TLS/DTLS profile suitable for constrained IoT
devices

 OASIS (MQTT) publish/subscribe

 oneM2M - Standards for M2M and the Internet of Things

 W3C Web of Things

• Rich metadata that describes the data (XML Schemas)


• Interaction models exposed to applications(http/REST APIs)
• Semantics of things (SAN, SSN Semantic Actuator/Sensor Network)

 IoT security foundation (guide for privacy and trust)

15/52 M4IoT
Standardization, reference architectures and emerging platforms
Standardization

Big actors propositions for the IoT

 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

Reference architecture

Definition
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

WSO2 architecture

Image extracted from http://wso2.com/solutions/iot/

18/52 M4IoT
Standardization, reference architectures and emerging platforms
IoT Reference architecture

IoT-A Architecture Functional view

Image extracted from http://www.iot- a.eu/

19/52 M4IoT
Standardization, reference architectures and emerging platforms
IoT Reference architecture

IoT-Service and Virtual-Entity abstraction levels

Image extracted from http://www.iot- a.eu/

20/52 M4IoT
Standardization, reference architectures and emerging platforms
Example of Emerging IoT Platforms

Cloud for IoT

21/52 M4IoT
Standardization, reference architectures and emerging platforms
Example of Emerging IoT Platforms

Amazon IoT platform

Image extracted from https://aws.amazon.com/fr/iot- platform

22/52 M4IoT
Standardization, reference architectures and emerging platforms
Example of Emerging IoT Platforms

Samsung Artik platform

Image extracted from https://horovits.files.wordpress.com/2015/05/samsung- smartthings- opencloud- sami- architecture.png

23/52 M4IoT
Interaction models and standard protocols

Plan

1. Internet of Things (IoT)

2. Middleware for the IoT

3. Standardization, reference architectures and emerging platforms

4. Interaction models and standard protocols


4.1 Interaction design patterns
4.2 Publish/Subscribe
4.3 REST API
4.4 CoAP

5. OneM2M example of a standardized IoT platform

6. Conclusions

24/52 M4IoT
Interaction models and standard protocols

Distributed architecture and IoT platform

 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

Basic interactions

26/52 M4IoT
Interaction models and standard protocols
Interaction design patterns

Publish/subscribe example

27/52 M4IoT
Interaction models and standard protocols
Interaction design patterns

Publish/subscribe sequence diagram

28/52 M4IoT
Interaction models and standard protocols
Publish/Subscribe

MQTT Message Queue Telemetry Transport


 OASIS standard adopted by IoT platforms (e.g., Amazon IoT, Om2M)

 Light publish subscribe protocol suited for M2M

• 2 bytes overhead by message


• MQTT-SN variation for non IP network
 Many implementations e.g.,

• Mosquitto/Paho (eclipse IoT)


• RabbitMQ MQTT adapter

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

Data Distribution Service (DDS-OMG)


 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 API

 REST interactions to interact with sensors/actuators


• Resource oriented
• URI Universal Resource Identifier
• XML/JSon. . . data representations
• Resources linked to other resources (in resource representations)

31/52 M4IoT
Interaction models and standard protocols
REST API

Web architecture

32/52 M4IoT
Interaction models and standard protocols
CoAP

Constrained Application Protocol (CoAP)


 Motivation : Rest-Like APIs for constrained devices
• Low memory
• Battery consumption concern (periodical wakeup)

Image extracted from CoAP: An Application Protocol for Billions of Tiny Internet Nodes

33/52 M4IoT
Interaction models and standard protocols
CoAP

CoAP in a nutshell (cf. RFC7252)


 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
• for a multicast request (responses from different servers)
• or with the Observe option (many responses from one server)
 Proxy nodes to provide access to CoAP resources via HTTP
• Caching based on max-age
 Support for the discovery of resources

Many implementations
 Californium (eclipse IoT)

34/52 M4IoT
Interaction models and standard protocols
CoAP

Gateway architecture

Image extracted from http://electronicdesign.com/iot/mqtt- and- coap- underlying- protocols- iot

35/52 M4IoT
OneM2M example of a standardized IoT platform

Plan

1. Internet of Things (IoT)

2. Middleware for the IoT

3. Standardization, reference architectures and emerging platforms

4. Interaction models and standard protocols

5. OneM2M example of a standardized IoT platform


5.1 OneM2M functional architecture
5.2 OneM2M Protocol
5.3 OM2M demo

6. Conclusions

36/52 M4IoT
OneM2M example of a standardized IoT platform

OneM2M

 is a global organization started in July 2012 that creates


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

OneM2M and other standards

38/52 M4IoT
OneM2M example of a standardized IoT platform
OneM2M functional architecture

OneM2M Distributed 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 (AE) and


Application Entity
 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

Underlying Network Services Entity (NSE)

 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

Common Service Entity (CSE)

Common Service Entity (CSE)

 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
etc. Such "sub-functions" offered by a CSE may be logically apprehended
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

OneM2M functional Architecture

42/52 M4IoT
OneM2M example of a standardized IoT platform
OneM2M functional architecture

OneM2M Common Service Functions

43/52 M4IoT
OneM2M example of a standardized IoT platform
OneM2M functional architecture

Container resource

44/52 M4IoT
OneM2M example of a standardized IoT platform
OneM2M Protocol

Create resource sequence diagram

45/52 M4IoT
OneM2M example of a standardized IoT platform
OneM2M Protocol

Access resource sequence diagram (direct)

46/52 M4IoT
OneM2M example of a standardized IoT platform
OneM2M Protocol

Access resource sequence diagram (one hop)

47/52 M4IoT
OneM2M example of a standardized IoT platform
OneM2M Protocol

Communication protocol bindings

48/52 M4IoT
OneM2M example of a standardized IoT platform
OM2M demo

OM2M a OneM2M implementation

 is a eclipse IoT 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

OM2M demo architecture

50/52 M4IoT
Conclusions

Plan

1. Internet of Things (IoT)

2. Middleware for the IoT

3. Standardization, reference architectures and emerging platforms

4. Interaction models and standard protocols

5. OneM2M example of a standardized IoT platform

6. Conclusions

51/52 M4IoT
Conclusions

Conclusions

 Some mature Internet standards enable IoT interactions (RESTfull


architecture, representation formats, security TLS/DTLS)
 IoT specific standards are emerging (e.g., OneM2M)

• Maturity not yet achieved


 Some efforts still necessary, e.g.,

• Discovery services for the IoT


• Security for the IoT (in term of privacy and trust)
• Data composition and filtering

 to build high level services, data analysis etc.

52/52 M4IoT
References

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

You might also like