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 Standard API Middleware Dedicated API Application Application... Collector Aggregator 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 Standard API Middleware Dedicated API Application Application... Collector Aggregator 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 Standard API Middleware Dedicated API Application Application... Collector Aggregator 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 Standard API Middleware Dedicated API Application Application... Collector Aggregator 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 extracted from AIOTI Alliance for internet of things innovation Image 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