SlideShare a Scribd company logo
Building the Internet of Things
with Open Source
Benjamin Cabé, Eclipse Foundation
@kartben
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
IoT?
Applications
Collect, exchange
& analyze data
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
IoT?
Applications
Sensing / Actuating
Interact with the
physical world
Collect, exchange
& analyze data
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
IoT?
Applications
Networking & Data
Communications
Sensing / Actuating
Interact with the
physical world
Bridge the physical world
to the Internet
Collect, exchange
& analyze data
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Typical IoT Architecture
Devices
(sensors & actuators)
Applications
telemetry
commands
telemetry
commands
IoT Cloud
Platform
Gateways
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Role & Characteristics
DEVICE GATEWAY / SMART OBJECT CLOUD PLATFORM
constrained
low-power
specialized
connectivity
messaging
edge computing
scale out
integration
data analytics
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
The 3 IoT Software Stacks
TOOLS & SDKs
ONTOLOGIES
SECURITY
CONSTRAINED DEVICES
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field protocols IoT protocols
IOT CLOUD PLATFORM
Connectivity
Message
Routing
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
GATEWAYS AND SMART DEVICES
Remote
Management
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Communication
IoT Device Stack
OS / RTOS*
* optional
timers, tasks, file system, …
API enabling access to memory, GPIOs, MEMS,
serial interfaces ,…
Protocols such as Bluetooth, Z-Wave, Thread, CAN
bus, MQTT, CoAP, …
over-the-air firmware upgrade, health
monitoring, factory reset, …
OS / RTOS
Hardware
Abstraction Layer (HAL)
Remote
Management
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field protocols IoT protocols
CONSTRAINED DEVICES
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Application Runtime
Network Management
Data Management
& Messaging
IoT Gateway Stack
connect to different types of networks
ensure reliability, security (VPN, firewall, …)
local persistence (network latency)
offline mode
data analytics at the edge
Virtual Machine / Application container
GATEWAYS AND SMART DEVICES
Remote
Management
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
IoT Cloud Platform Stack
ingest and normalize huge amounts of data into
an enterprise backend
identify devices, allow for over-the-air software
provisioning, configuration changes, …
scalable data store, time series
IOT CLOUD PLATFORM
Connectivity
Message
Routing
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
Connectivity
Message
Routing
Device
Registry
Device
Management
Data
Management
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
IoT Cloud Platform Stack (cont’d)
scalable event processing
create reports, graphs, dashboards, …
make decisions based on the data
expose API for application integration
Event Management,
Analytics & UI
Application
Enablement
IOT CLOUD PLATFORM
Connectivity
Message
Routing
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Characteristics of Open IoT Stacks
loosely coupled
modular
platform-independant
based on open standards
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT?
Eclipse IoT is an open source community aimed at
building and promoting
open source software, open standards
& open collaboration models
needed to create an Open Internet of Things
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Our members
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT…
from building blocks … to
stacks
…
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field protocols IoT protocols
CONSTRAINED DEVICES
OS Stack for IoT Devices
C implementation of OMA LWM2M
Portable on any POSIX-compliant system
C implementation of MQTT 3.1.1
< 2,000 lines of C ANSI code
JAVA API for MCUs
“Android for IoT”
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field protocols IoT protocols
CONSTRAINED DEVICES
OS Stack for IoT Devices
C implementation of OMA LWM2M
Portable on any POSIX-compliant system
C implementation of MQTT 3.1.1
< 2,000 lines of C ANSI code
JAVA API for MCUs
“Android for IoT”
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Edje
●Hardware Abstraction Java API for IoT embedded
systems
○ Peripheral management
○ Controller Communication Interfaces (Serial connection,
CAN, SPI, I²C)
○ Digital and Analog I/O (GPIO, ADC, DAC)
●Scope
○ Target resource-constrained micro-controllers
○ Provide ready-to-use software packages for target hardware
○ Define a modular and easy to port framework
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Edje requirements
● Processor: 32-bits (e.g. Cortex-M0)
● Frequency: 16 MHz
● RAM: 32 KB
● Flash: 128 KB
●Example: STM32F4 Discovery
○ Processor: 32-bits Cortex-M4 (STM32F407VGT6)
○ Frequency: 168 MHz
○ RAM: 192 KB
○ Flash: 1 MB
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
OS Stack for IoT Gateways
OSGi implementation
Native support for MQTT
Serial, RS-485, BLE, MODBUS, OPC-UA,
CAN Bus, …
NAT, firewall, modem configuration, …
Remote Management over MQTT
Milo
GATEWAYS AND SMART DEVICES
Remote
Management
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Java VM
OSGi Application Container
Device Abstraction
Gateway Basic Services
Network Configuration
Network Management Field
Protocols
Connectivity and Delivery
Administration
GUI
Operation
&
Management
Linux
Hardware
App 1 App 2 App n
. . . .
Applications
Eclipse Kura
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
GATEWAYS AND SMART DEVICES
Remote
Management
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
OS Stack for Home Automation
OSGi implementation
Rule engine to orchestrate “things”
Home automation protocols such as
Belkin WeMo, LIFX, Philips Hue, …
Remote firmware update through the GW
Web UI and API for remote control
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse SmartHome
Extension Points
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
OS Stack for IoT Cloud
IOT CLOUD PLATFORM
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
OS Stack for IoT Cloud
Device
Management
Device
Registry
IOT CLOUD PLATFORM
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Device
Management
Device
Registry
OS Stack for IoT Cloud
OMA LWM2M implementation in Java
built on top of Eclipse Californium (CoAP)
Manage software upgrade campaigns
independently of the actual DM protocol
IOT CLOUD PLATFORM
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Leshan
●Java implementation of OMA LWM2M
●Sandbox hosted at http://leshan.eclipse.org
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse hawkBit
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
IOT CLOUD PLATFORM
Connectivity
OS Stack for IoT Cloud
C implementation of an MQTT server
MQTT 3.1.1 compliant
Scalable (1000 clients = 3MB RAM)
Extensible (e.g authentication plug-ins)
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
OS Stack for IoT Cloud
Great! But… what if:
↳ I want my platform to archive the data?
↳ I want to support more than just MQTT?
↳ I want a multi-tenant solution?
↳ …
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
IOT CLOUD PLATFORM
Connectivity
Message
Routing
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
OS Stack for IoT Cloud Platform
Abstract the actual communication
protocols via “protocol adapters”
Deploy on:
An Integration Platform for IoT Services
NoSQL data store
REST API
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Hono
Eclipse Hono provides a uniform API for
interacting with millions of devices connected to
the cloud via arbitrary protocols
Example:
<<Protocol Adapter>>
MQTT
<<Application>>
‘Track my
Tools’
BT LE
AMQP 1.0
AMQP 1.0
MQTT
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Kapua
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT stack on Cloud Foundry
Router
Eclipse ACS
<<Hono Adapter>>
<<Hono Adapter>>
Kapua Web
Console
Kapua
UAA
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Keti (proposed)
●Ability to maintain access-decision data as
policies and attributes
●Exclusive security for multiple clients using the
service (ACS services are tenant-aware)
●Support for fine-grained authorization policies
Contributed by GE, from the Predix platform
See http://tinyurl.com/eclipse-acs-proposal
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Vorto
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Paho – mqtt-spy
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Paho – mqtt-spy
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT Community
2.5 30* 250+ 110K
million
lines of code
projects developers monthly
visitors
* and counting!
Prizes
$20K+
http://iot.eclipse.org/open-iot-challenge
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Virtual IoT Meetup
● Bi-weekly webinars with IoT experts
● 1,800+ members
http://www.meetup.com/Virtual-IoT
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Join us!
2.2 30* 210+ 110K
million
lines of code
projects developers monthly
visitors
https://iot.eclipse.org
* and counting!
Thank you!
@kartben
benjamin@eclipse.org
Backup slides
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
The 3 IoT Software Stacks
TOOLS & SDKs
ONTOLOGIES
SECURITY
CONSTRAINED DEVICES
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field protocols IoT protocols
IOT CLOUD PLATFORM
Connectivity
Message
Routing
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
GATEWAYS AND SMART DEVICES
Remote
Management
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management

More Related Content

PPTX
3 Software Stacks for IoT Solutions
Ian Skerrett
 
PDF
2016-09-eclipse-iot-cf-summit
Mike Milinkovich
 
PPTX
Eclipse IOT [IoT World Santa Clara]
Ian Skerrett
 
PDF
Eclipse IoT Overview
Ian Skerrett
 
PDF
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)
Open Mobile Alliance
 
PPTX
Open Source IoT at Eclipse
Ian Skerrett
 
PDF
JVM-Con 2017 – Java and IoT, will it blend?
Benjamin Cabé
 
PPTX
Creating the open source building blocks for IoT
Ian Skerrett
 
3 Software Stacks for IoT Solutions
Ian Skerrett
 
2016-09-eclipse-iot-cf-summit
Mike Milinkovich
 
Eclipse IOT [IoT World Santa Clara]
Ian Skerrett
 
Eclipse IoT Overview
Ian Skerrett
 
IoT projects in Eclipse Foundation using LwM2M (IoT World 2017 Workshop)
Open Mobile Alliance
 
Open Source IoT at Eclipse
Ian Skerrett
 
JVM-Con 2017 – Java and IoT, will it blend?
Benjamin Cabé
 
Creating the open source building blocks for IoT
Ian Skerrett
 

Similar to Eclipse IoT slide deck [MASTER DECK].pptx (20)

PPTX
Eclipse IoT: Open source technology for IoT developers
Ian Skerrett
 
PDF
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Benjamin Cabé
 
ODP
Using open source for IoT
Ian Skerrett
 
PPTX
Eclipse IoT for Industry 4.0
Ian Skerrett
 
PDF
Open Source Internet of Things 101 – EclipseCon 2016
Benjamin Cabé
 
PDF
Building the Internet of Things with open source and Eclipse IoT projects (Be...
AGILE IoT
 
PPTX
IoT development (APIcon 2014 presentation)
Mike Milinkovich
 
PPTX
Defining an Open IoT Stack - Presented at IoT World 2015
Ian Skerrett
 
PDF
End-to-end IoT solutions with Java and Eclipse IoT
Benjamin Cabé
 
PDF
Eclipse IoT Talk (Montreal JUG)
Mike Milinkovich
 
PDF
Building the IoT - Coding Serbia 2015
Benjamin Cabé
 
PDF
2019.02 Eclipse Foundation and Eclipse IoT presentation at Eclipse IoT Day Gr...
Gaël Blondelle
 
PDF
Open-source IoT cookbook
Benjamin Cabé
 
PPTX
Open source IoT
IoT613
 
PPTX
Leveraging the Open IoT Ecosystem to Accelerate Product Strategy
Ian Skerrett
 
PPTX
Why IoT needs Open Source Communities
AGILE IoT
 
PPTX
Why the Community Needs Open Source for IoT
Ian Skerrett
 
PDF
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Benjamin Cabé
 
PDF
Developer Day 2014 - 6 - open source iot - eclipse foundation
Thibault Cantegrel
 
PDF
Eclipse IoT presentation
Ian Skerrett
 
Eclipse IoT: Open source technology for IoT developers
Ian Skerrett
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Benjamin Cabé
 
Using open source for IoT
Ian Skerrett
 
Eclipse IoT for Industry 4.0
Ian Skerrett
 
Open Source Internet of Things 101 – EclipseCon 2016
Benjamin Cabé
 
Building the Internet of Things with open source and Eclipse IoT projects (Be...
AGILE IoT
 
IoT development (APIcon 2014 presentation)
Mike Milinkovich
 
Defining an Open IoT Stack - Presented at IoT World 2015
Ian Skerrett
 
End-to-end IoT solutions with Java and Eclipse IoT
Benjamin Cabé
 
Eclipse IoT Talk (Montreal JUG)
Mike Milinkovich
 
Building the IoT - Coding Serbia 2015
Benjamin Cabé
 
2019.02 Eclipse Foundation and Eclipse IoT presentation at Eclipse IoT Day Gr...
Gaël Blondelle
 
Open-source IoT cookbook
Benjamin Cabé
 
Open source IoT
IoT613
 
Leveraging the Open IoT Ecosystem to Accelerate Product Strategy
Ian Skerrett
 
Why IoT needs Open Source Communities
AGILE IoT
 
Why the Community Needs Open Source for IoT
Ian Skerrett
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Benjamin Cabé
 
Developer Day 2014 - 6 - open source iot - eclipse foundation
Thibault Cantegrel
 
Eclipse IoT presentation
Ian Skerrett
 
Ad

Recently uploaded (20)

PDF
Phylum Arthropoda: Characteristics and Classification, Entomology Lecture
Miraj Khan
 
PDF
Types of Literary Text: Poetry and Prose
kaelandreabibit
 
PPTX
Odoo 18 Sales_ Managing Quotation Validity
Celine George
 
DOCX
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
PPTX
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
PPTX
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
DOCX
Action Plan_ARAL PROGRAM_ STAND ALONE SHS.docx
Levenmartlacuna1
 
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
PPTX
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
PPTX
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
PPTX
An introduction to Dialogue writing.pptx
drsiddhantnagine
 
PDF
Virat Kohli- the Pride of Indian cricket
kushpar147
 
PDF
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
PDF
UTS Health Student Promotional Representative_Position Description.pdf
Faculty of Health, University of Technology Sydney
 
PPTX
Kanban Cards _ Mass Action in Odoo 18.2 - Odoo Slides
Celine George
 
PPTX
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
PPTX
Care of patients with elImination deviation.pptx
AneetaSharma15
 
PPTX
FSSAI (Food Safety and Standards Authority of India) & FDA (Food and Drug Adm...
Dr. Paindla Jyothirmai
 
PPTX
PPTs-The Rise of Empiresghhhhhhhh (1).pptx
academysrusti114
 
PPTX
PREVENTIVE PEDIATRIC. pptx
AneetaSharma15
 
Phylum Arthropoda: Characteristics and Classification, Entomology Lecture
Miraj Khan
 
Types of Literary Text: Poetry and Prose
kaelandreabibit
 
Odoo 18 Sales_ Managing Quotation Validity
Celine George
 
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
Action Plan_ARAL PROGRAM_ STAND ALONE SHS.docx
Levenmartlacuna1
 
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
An introduction to Dialogue writing.pptx
drsiddhantnagine
 
Virat Kohli- the Pride of Indian cricket
kushpar147
 
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
UTS Health Student Promotional Representative_Position Description.pdf
Faculty of Health, University of Technology Sydney
 
Kanban Cards _ Mass Action in Odoo 18.2 - Odoo Slides
Celine George
 
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
Care of patients with elImination deviation.pptx
AneetaSharma15
 
FSSAI (Food Safety and Standards Authority of India) & FDA (Food and Drug Adm...
Dr. Paindla Jyothirmai
 
PPTs-The Rise of Empiresghhhhhhhh (1).pptx
academysrusti114
 
PREVENTIVE PEDIATRIC. pptx
AneetaSharma15
 
Ad

Eclipse IoT slide deck [MASTER DECK].pptx

  • 1. Building the Internet of Things with Open Source Benjamin Cabé, Eclipse Foundation @kartben
  • 2. Copyright © 2017 The Eclipse Foundation. All Rights Reserved IoT? Applications Collect, exchange & analyze data
  • 3. Copyright © 2017 The Eclipse Foundation. All Rights Reserved IoT? Applications Sensing / Actuating Interact with the physical world Collect, exchange & analyze data
  • 4. Copyright © 2017 The Eclipse Foundation. All Rights Reserved IoT? Applications Networking & Data Communications Sensing / Actuating Interact with the physical world Bridge the physical world to the Internet Collect, exchange & analyze data
  • 5. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Typical IoT Architecture Devices (sensors & actuators) Applications telemetry commands telemetry commands IoT Cloud Platform Gateways
  • 6. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Role & Characteristics DEVICE GATEWAY / SMART OBJECT CLOUD PLATFORM constrained low-power specialized connectivity messaging edge computing scale out integration data analytics
  • 7. Copyright © 2017 The Eclipse Foundation. All Rights Reserved The 3 IoT Software Stacks TOOLS & SDKs ONTOLOGIES SECURITY CONSTRAINED DEVICES Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols IOT CLOUD PLATFORM Connectivity Message Routing OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement GATEWAYS AND SMART DEVICES Remote Management Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management
  • 8. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Communication IoT Device Stack OS / RTOS* * optional timers, tasks, file system, … API enabling access to memory, GPIOs, MEMS, serial interfaces ,… Protocols such as Bluetooth, Z-Wave, Thread, CAN bus, MQTT, CoAP, … over-the-air firmware upgrade, health monitoring, factory reset, … OS / RTOS Hardware Abstraction Layer (HAL) Remote Management Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols CONSTRAINED DEVICES
  • 9. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Application Runtime Network Management Data Management & Messaging IoT Gateway Stack connect to different types of networks ensure reliability, security (VPN, firewall, …) local persistence (network latency) offline mode data analytics at the edge Virtual Machine / Application container GATEWAYS AND SMART DEVICES Remote Management Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management
  • 10. Copyright © 2017 The Eclipse Foundation. All Rights Reserved IoT Cloud Platform Stack ingest and normalize huge amounts of data into an enterprise backend identify devices, allow for over-the-air software provisioning, configuration changes, … scalable data store, time series IOT CLOUD PLATFORM Connectivity Message Routing OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement Connectivity Message Routing Device Registry Device Management Data Management
  • 11. Copyright © 2017 The Eclipse Foundation. All Rights Reserved IoT Cloud Platform Stack (cont’d) scalable event processing create reports, graphs, dashboards, … make decisions based on the data expose API for application integration Event Management, Analytics & UI Application Enablement IOT CLOUD PLATFORM Connectivity Message Routing OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement
  • 12. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Cross-layer concerns SECURITY ONTOLOGIES TOOLS
  • 13. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Characteristics of Open IoT Stacks loosely coupled modular platform-independant based on open standards
  • 14. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse IoT? Eclipse IoT is an open source community aimed at building and promoting open source software, open standards & open collaboration models needed to create an Open Internet of Things
  • 15. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Our members
  • 16. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse IoT… from building blocks … to stacks …
  • 17. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols CONSTRAINED DEVICES OS Stack for IoT Devices C implementation of OMA LWM2M Portable on any POSIX-compliant system C implementation of MQTT 3.1.1 < 2,000 lines of C ANSI code JAVA API for MCUs “Android for IoT” Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols CONSTRAINED DEVICES OS Stack for IoT Devices C implementation of OMA LWM2M Portable on any POSIX-compliant system C implementation of MQTT 3.1.1 < 2,000 lines of C ANSI code JAVA API for MCUs “Android for IoT”
  • 18. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Edje ●Hardware Abstraction Java API for IoT embedded systems ○ Peripheral management ○ Controller Communication Interfaces (Serial connection, CAN, SPI, I²C) ○ Digital and Analog I/O (GPIO, ADC, DAC) ●Scope ○ Target resource-constrained micro-controllers ○ Provide ready-to-use software packages for target hardware ○ Define a modular and easy to port framework
  • 19. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Edje requirements ● Processor: 32-bits (e.g. Cortex-M0) ● Frequency: 16 MHz ● RAM: 32 KB ● Flash: 128 KB ●Example: STM32F4 Discovery ○ Processor: 32-bits Cortex-M4 (STM32F407VGT6) ○ Frequency: 168 MHz ○ RAM: 192 KB ○ Flash: 1 MB
  • 20. Copyright © 2017 The Eclipse Foundation. All Rights Reserved OS Stack for IoT Gateways OSGi implementation Native support for MQTT Serial, RS-485, BLE, MODBUS, OPC-UA, CAN Bus, … NAT, firewall, modem configuration, … Remote Management over MQTT Milo GATEWAYS AND SMART DEVICES Remote Management Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management
  • 21. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Java VM OSGi Application Container Device Abstraction Gateway Basic Services Network Configuration Network Management Field Protocols Connectivity and Delivery Administration GUI Operation & Management Linux Hardware App 1 App 2 App n . . . . Applications Eclipse Kura
  • 22. Copyright © 2017 The Eclipse Foundation. All Rights Reserved GATEWAYS AND SMART DEVICES Remote Management Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management OS Stack for Home Automation OSGi implementation Rule engine to orchestrate “things” Home automation protocols such as Belkin WeMo, LIFX, Philips Hue, … Remote firmware update through the GW Web UI and API for remote control
  • 23. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse SmartHome Extension Points
  • 24. Copyright © 2017 The Eclipse Foundation. All Rights Reserved OS Stack for IoT Cloud IOT CLOUD PLATFORM
  • 25. Copyright © 2017 The Eclipse Foundation. All Rights Reserved OS Stack for IoT Cloud Device Management Device Registry IOT CLOUD PLATFORM
  • 26. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Device Management Device Registry OS Stack for IoT Cloud OMA LWM2M implementation in Java built on top of Eclipse Californium (CoAP) Manage software upgrade campaigns independently of the actual DM protocol IOT CLOUD PLATFORM
  • 27. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Leshan ●Java implementation of OMA LWM2M ●Sandbox hosted at http://leshan.eclipse.org
  • 28. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse hawkBit
  • 29. Copyright © 2017 The Eclipse Foundation. All Rights Reserved IOT CLOUD PLATFORM Connectivity OS Stack for IoT Cloud C implementation of an MQTT server MQTT 3.1.1 compliant Scalable (1000 clients = 3MB RAM) Extensible (e.g authentication plug-ins)
  • 30. Copyright © 2017 The Eclipse Foundation. All Rights Reserved OS Stack for IoT Cloud Great! But… what if: ↳ I want my platform to archive the data? ↳ I want to support more than just MQTT? ↳ I want a multi-tenant solution? ↳ …
  • 31. Copyright © 2017 The Eclipse Foundation. All Rights Reserved IOT CLOUD PLATFORM Connectivity Message Routing OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement OS Stack for IoT Cloud Platform Abstract the actual communication protocols via “protocol adapters” Deploy on: An Integration Platform for IoT Services NoSQL data store REST API
  • 32. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Hono Eclipse Hono provides a uniform API for interacting with millions of devices connected to the cloud via arbitrary protocols Example: <<Protocol Adapter>> MQTT <<Application>> ‘Track my Tools’ BT LE AMQP 1.0 AMQP 1.0 MQTT
  • 33. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Kapua
  • 34. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse IoT stack on Cloud Foundry Router Eclipse ACS <<Hono Adapter>> <<Hono Adapter>> Kapua Web Console Kapua UAA
  • 35. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Cross-layer concerns SECURITY ONTOLOGIES TOOLS
  • 36. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Cross-layer concerns SECURITY ONTOLOGIES TOOLS
  • 37. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Keti (proposed) ●Ability to maintain access-decision data as policies and attributes ●Exclusive security for multiple clients using the service (ACS services are tenant-aware) ●Support for fine-grained authorization policies Contributed by GE, from the Predix platform See http://tinyurl.com/eclipse-acs-proposal
  • 38. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Cross-layer concerns SECURITY ONTOLOGIES TOOLS
  • 39. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Vorto
  • 40. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Cross-layer concerns SECURITY ONTOLOGIES TOOLS
  • 41. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Paho – mqtt-spy
  • 42. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse Paho – mqtt-spy
  • 43. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Eclipse IoT Community 2.5 30* 250+ 110K million lines of code projects developers monthly visitors * and counting!
  • 45. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Virtual IoT Meetup ● Bi-weekly webinars with IoT experts ● 1,800+ members http://www.meetup.com/Virtual-IoT
  • 46. Copyright © 2017 The Eclipse Foundation. All Rights Reserved
  • 47. Copyright © 2017 The Eclipse Foundation. All Rights Reserved Join us! 2.2 30* 210+ 110K million lines of code projects developers monthly visitors https://iot.eclipse.org * and counting!
  • 50. Copyright © 2017 The Eclipse Foundation. All Rights Reserved The 3 IoT Software Stacks TOOLS & SDKs ONTOLOGIES SECURITY CONSTRAINED DEVICES Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols IOT CLOUD PLATFORM Connectivity Message Routing OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement GATEWAYS AND SMART DEVICES Remote Management Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management

Editor's Notes

  • #2: IoT starts with a business case (hopefully!). Putting a sensor in your dog’s collar, or in a drilling machine, is not an end in itself… What you want is rather be able to check that your dog remains in a given “geofence”, or, for a more tangible (and arguably useful) use case: monitor the usage patterns for your fleet of drilling machine, to figure out if maybe the workers need specific training to use it better, etc.
  • #3: So while you start with an application in mind, of course it will require some interaction with the physical world (yes, a dog collar, if that’s what you really want! 😁)…
  • #4: Eventually, you will need to figure out how to bridge the gap between the physical world and the application you want to create. That involves a whole lot of technologies that may sound like “IT as usual”, but certainly comes with some constraints and specifities inherent to IoT - more about this in a couple slides…
  • #5: From a 20,000 foot view, this how most if not all IoT architectures are implemented. In order for your data to make it to the cloud, and hence to the final application/user, the devices (think “microcontroller” and tiny brain that are the heart of sensors and actuators) need to be able to communicate. While some might have this capability (and more on that in the next slide), a gateway is typically in charge of connecting the constrained devices to the IoT.
  • #6: Let’s look a bit closer at the key characteristics of each element of an IoT solution. Devices - or I should say constrained devices - are really doing a specific task (e.g measuring the vibrations of a motor). We’re talking brains (microcontrollers) that are probably 1$, if not less, and that are by definition constrained in terms of computing capabilities, number of I/Os, etc. Often, but not always, power consumption is a key aspect. So this will have impact on the H/W and S/W capabilities. These devices are very specialized. If you can save 2 cents by getting rid of a H/W feature that you don’t need, you will do it. Similarly, you will make choices in your software, and you will e.g probably support the protocol you need and only this one. Gateways / Smart Objects - as per the explanation I just did, you realize that most of the times, devices won’t have the ability to implement direct communication to the Internet. This is where you need what I call smarter objects, or gateways. Here, connectivity is essential (of course, you aim at reaching a backend/cloud server eventually), an a smart object often will have many options for connectivity Not only can the device/gateway communicate, but typically you want it to also be smart enough to actually manipulate messages, as opposed to “raw” data. That is to say, the smart object is already able to make some smart...er decisions when it comes to forwarding sensor data to the cloud or not, or figuring out which device a command being received from the cloud is targeted to All in all, the gateway/smart object enables so-called edge computing Cloud – this is where a lot of the IoT magic happens :-) Of course, scalability is important. Horizontally, as the number of devices on the field grows (zillions of devices, eh?), as well as vertically, to deal with different business cases and their specificities It’s all about integration, since you need to enable third party to e.g consume your sensors’ “fire hose”, or people to be able to build their own application and dashboards. Lots of the value for IoT is in the data, and the cloud platform needs to help not only storing the huge amounts of data, but also analyzing and making sense out of it. So assuming we are on the same page now on what those 3 key components are, let’s look in more details at what are the core features that need to be provided by each of them.
  • #12: Some concerns actually span across all the components. You want security at each level, and things like the ability to only run trusted code on your devices, the ability to secure your communication channels against eavesdropping, or the ability to secure your Cloud platform REST APIs for giving users access only to what they’re supposed to have access to IoT data is very diverse. If your IoT datastore does not give you a way to figure out the difference between temperature and pressure data, or to figure out what is in Celsius and what is in Fahrenheit, you will be in big troubles. Ontologies are needed to describe data that flows in the IoT value chain. Tools. You need simulators, debuggers, emulators, etc. in order to accelerate IoT development, simplify testing, etc. Of course if you know us (Eclipse) you do realize we provide a lot in that area.
  • #13: So why doing this categorization anyways? Well, identifying the different layers of a software stacks, and the interfaces through which each stack can communicates helps define an interoperable architecture: each stack is independent from one another. You can use whichever cloud stack/provider you want, no matter your gateway stack – no vendor lock-in within each stack, the layers are interchangeable. If you want to replace the communication layer of your gateway to speak HTTP WebSockets instead of MQTT, this is something that should be possible. Each stack should be independent of the underlying platform. E.g for the the cloud stack, you probably want to leverage the likes of Docker, Cloud Foundry, Kubernetes, … Open Standards have proven key (look at the history of the Internet, or in IoT and more recently: MQTT) for enabling interoperability too. Of course, each component/service of your IoT stacks will need to expose well-defined APIs, as it’s what enables composition/reuse by others who add value on top of the stack.
  • #14: So what do we do at Eclipse for IoT? Well, for the past 5 years, we’ve been working hard on creating a forum where individual and companies work together to create the software that can be used to create Open IoT Stacks. [ We actually do much more than being a pure software provider - more on that towards the end of the presentation…]
  • #15: To update this slide → make a screenshot of https://iot.eclipse.org/member
  • #16: If you’ve been following us (we’ve been around for 5 years now!) from the beginning, and even if you have not, you realize we’re this open source community providing key components and libraries – let’s call them building blocks – that can be used to create an IoT solution. Want an MQTT protocol stack? Sure, you can get it from Eclipse Paho. A security layer for your microcontrollers? Maybe you will use Eclipse tinydtls… But more recently, we’ve seen a trend towards delivering more integrated platforms/stacks that take the building blocks I just mentioned, and integrate them in a readily usable stack. Much like the LAMP (Linux-Apache-MySQL-PHP) stack for the WWW, if you will.
  • #21: Benjamin