Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Building the Internet of Things
with Open Source
Mike Milinkovich, Eclipse Foundation
@mmilinkov
IoT?
Applications
Collect, exchange
& analyze data
IoT?
Applications
Sensing / Actuating
Interact with the
physical world
Collect, exchange
& analyze data
IoT?
Applications
Networking & Data
Communications
Sensing / Actuating
Interact with the
physical world
Bridge the physical world
to the Internet
Collect, exchange
& analyze data
Typical IoT Architecture
Devices
(sensors & actuators)
Applications
telemetry
commands
telemetry
commands
IoT Cloud Platform
Gateway
Role & Characteristics
DEVICE GATEWAY CLOUD PLATFORM
constrained
low-power
specialized
connectivity
messaging
edge computing
scale out
integration
data analytics
IoT Device Stack
Hardware Abstraction Layer (HAL)
OS / RTOS
Communication
Field protocols IoT protocols
DEVICE
RemoteManagement
App 1 App 2 …
Remote Management
Communication
Hardware Abstraction
Layer (HAL)
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, …
Connectivity
Field protocols IoT protocols
IoT Gateway Stack
GATEWAY
Data Management & Messaging
RemoteManagement
Application Runtime
OS / RTOS
App 1 App 2 …
Data Management &
Messaging
Network Management
connect to different types of networks
ensure reliability, security (VPN, firewall, …)
local persistence (network latency)
offline mode
data analytics at the edge
Network Management
Application Runtime
Virtual Machine / Application container
IoT Cloud Platform Stack
CLOUD PLATFORM
Device Management
Data Management
Event Management & Analytics
Connectivity
MessageRouting
Device Registry
Application Enablement
App 1 App 2 …
Connectivity Message Routing
ingest and normalize huge amounts of data into
an enterprise backend
Device Registry Device Management
identify devices, allow for over-the-air software
provisioning, configuration changes, …
Data Management
scalable data store, time series
IoT Cloud Platform Stack (cont’d)
CLOUD PLATFORM
Device Management
Data Management
Event Management & Analytics
Connectivity
MessageRouting
Device Registry
Application Enablement
App 1 App 2 …
Event Management &
Analytics
scalable event processing
create reports, graphs, dashboards, …
make decisions based on the data
Application Enablement
expose API for application integration
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Characteristics of Open IoT Stacks
loosely coupled
modular
platform-independant
based on open standards
API, API, API!
Eclipse IoT?
Eclipse IoT is an open source community aimed at
building and promoting
open source software & open collaboration models
needed to create an Open Internet of Things
Eclipse IoT…
from building blocks … to stacks
OS Stack for IoT Devices
Hardware Abstraction Layer (HAL)
OS / RTOS
Communication
Field protocols IoT protocols
DEVICE
RemoteManagement
App 1 App 2 …
Wakaama
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”
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
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
OS Stack for IoT Gateways
OSGi implementation
GATEWAY
Data Management & Messaging
RemoteManagement
OS / RTOS
App 1 App 2 …
Connectivity
Field protocols IoT protocols
Network Management
Native support for MQTT
Serial, RS-485, BLE, MODBUS, OPC-UA,
CAN Bus, …
NAT, firewall, modem configuration, …
Remote Management over MQTT
Milo
Application Runtime
Java VM
OSGi Application Container
Device Abstraction
Gateway Basic Services
Network Configuration
Network Management Field
Protocols
Connectivity and Delivery
AdministrationGUI
Operation&
Management
Linux
Hardware
App 1 App 2 App n. . . .
Applications
Eclipse Kura
OS Stack for Home Automation
Data Management & Messaging
OSGi implementation
GATEWAY
RemoteManagement
OS / RTOS
App 1 App 2 …
Connectivity
Field protocols IoT protocols
Rule engine to orchestrate “things”
Home automation protocols such as
Belkin WeMo, LIFX, Philips Hue, …
(see openHAB.org)
Remote firmware update through the GW
Web UI and API for remote control
Network Management
Application Runtime
OS Stack for IoT Cloud
CLOUD PLATFORM
OS Stack for IoT Cloud
CLOUD PLATFORM
Device Management
Device Registry
OS Stack for IoT Cloud
CLOUD PLATFORM
Device Management
Device Registry
OMA LWM2M implementation in Java
built on top of Eclipse Californium (CoAP)
Manage software upgrade campaigns
independently of the actual DM protocol
Eclipse Leshan
Java implementation of OMA LWM2M
Sandbox hosted at http://leshan.eclipse.org
Eclipse hawkBit
OS Stack for IoT Cloud
CLOUD PLATFORM
MessageRouting
OS Stack for IoT Cloud
CLOUD PLATFORM
C implementation of an MQTT server
MQTT 3.1.1 compliant
Scalable (1000 clients = 3MB RAM)
Extensible (e.g authentication plug-ins)
MessageRouting
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?
↳…
OS Stack for IoT Cloud Platform
Abstract the actual communication
protocols via “protocol adapters”
Deploy on:
CLOUD PLATFORM
Device Management
Data Management
Event Management & Analytics
Connectivity
MessageRouting
Device Registry
Application Enablement
App 1 App 2 …
Kapua Integration platform for IoT Services
Kapua NoSQL data store
Kapua REST API
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.0AMQP 1.0MQTT
Eclipse Kapua
Future EclipseIoT stack on Cloud FoundryRouter
Eclipse ACS
<<Hono Adapter>>
<<Hono Adapter>>
UAA
Kapua Web
Console
Kapua
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Eclipse ACS (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
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Eclipse Vorto
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Eclipse IoT Community
2.2 26* 170+ 110K
million
lines of code
projects developers monthly
visitors
* and counting!
Virtual IoT Meetup
Bi-weekly webinars with IoT experts
1,200 members
http://www.meetup.com/Virtual-IoT
2016-09-eclipse-iot-cf-summit
Get Involved! Use Eclipse IoT Technology in
your products
Open bugs / fix bugs
Request new features
Write articles, tutorials
Participate on the mailing lists
Come to EclipseCon/IoT!
Propose your project!
iot.eclipse.org
Learn more on Wednesday
Dr. Steffen Evers, Bosch Software Innovations
“Building an Open Framework for Cloud-based
IoT Solutions”
Wednesday, September 28 • 11:10 - 11:40
43
Thank you!
@mmilinkov
mike@eclipse.org

More Related Content

2016-09-eclipse-iot-cf-summit

  • 1. Building the Internet of Things with Open Source Mike Milinkovich, Eclipse Foundation @mmilinkov
  • 3. IoT? Applications Sensing / Actuating Interact with the physical world Collect, exchange & analyze data
  • 4. IoT? Applications Networking & Data Communications Sensing / Actuating Interact with the physical world Bridge the physical world to the Internet Collect, exchange & analyze data
  • 5. Typical IoT Architecture Devices (sensors & actuators) Applications telemetry commands telemetry commands IoT Cloud Platform Gateway
  • 6. Role & Characteristics DEVICE GATEWAY CLOUD PLATFORM constrained low-power specialized connectivity messaging edge computing scale out integration data analytics
  • 7. IoT Device Stack Hardware Abstraction Layer (HAL) OS / RTOS Communication Field protocols IoT protocols DEVICE RemoteManagement App 1 App 2 … Remote Management Communication Hardware Abstraction Layer (HAL) 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, …
  • 8. Connectivity Field protocols IoT protocols IoT Gateway Stack GATEWAY Data Management & Messaging RemoteManagement Application Runtime OS / RTOS App 1 App 2 … Data Management & Messaging Network Management connect to different types of networks ensure reliability, security (VPN, firewall, …) local persistence (network latency) offline mode data analytics at the edge Network Management Application Runtime Virtual Machine / Application container
  • 9. IoT Cloud Platform Stack CLOUD PLATFORM Device Management Data Management Event Management & Analytics Connectivity MessageRouting Device Registry Application Enablement App 1 App 2 … Connectivity Message Routing ingest and normalize huge amounts of data into an enterprise backend Device Registry Device Management identify devices, allow for over-the-air software provisioning, configuration changes, … Data Management scalable data store, time series
  • 10. IoT Cloud Platform Stack (cont’d) CLOUD PLATFORM Device Management Data Management Event Management & Analytics Connectivity MessageRouting Device Registry Application Enablement App 1 App 2 … Event Management & Analytics scalable event processing create reports, graphs, dashboards, … make decisions based on the data Application Enablement expose API for application integration
  • 12. Characteristics of Open IoT Stacks loosely coupled modular platform-independant based on open standards API, API, API!
  • 13. Eclipse IoT? Eclipse IoT is an open source community aimed at building and promoting open source software & open collaboration models needed to create an Open Internet of Things
  • 14. Eclipse IoT… from building blocks … to stacks
  • 15. OS Stack for IoT Devices Hardware Abstraction Layer (HAL) OS / RTOS Communication Field protocols IoT protocols DEVICE RemoteManagement App 1 App 2 … Wakaama 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”
  • 16. 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
  • 17. 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
  • 18. OS Stack for IoT Gateways OSGi implementation GATEWAY Data Management & Messaging RemoteManagement OS / RTOS App 1 App 2 … Connectivity Field protocols IoT protocols Network Management Native support for MQTT Serial, RS-485, BLE, MODBUS, OPC-UA, CAN Bus, … NAT, firewall, modem configuration, … Remote Management over MQTT Milo Application Runtime
  • 19. Java VM OSGi Application Container Device Abstraction Gateway Basic Services Network Configuration Network Management Field Protocols Connectivity and Delivery AdministrationGUI Operation& Management Linux Hardware App 1 App 2 App n. . . . Applications Eclipse Kura
  • 20. OS Stack for Home Automation Data Management & Messaging OSGi implementation GATEWAY RemoteManagement OS / RTOS App 1 App 2 … Connectivity Field protocols IoT protocols Rule engine to orchestrate “things” Home automation protocols such as Belkin WeMo, LIFX, Philips Hue, … (see openHAB.org) Remote firmware update through the GW Web UI and API for remote control Network Management Application Runtime
  • 21. OS Stack for IoT Cloud CLOUD PLATFORM
  • 22. OS Stack for IoT Cloud CLOUD PLATFORM Device Management Device Registry
  • 23. OS Stack for IoT Cloud CLOUD PLATFORM Device Management Device Registry OMA LWM2M implementation in Java built on top of Eclipse Californium (CoAP) Manage software upgrade campaigns independently of the actual DM protocol
  • 24. Eclipse Leshan Java implementation of OMA LWM2M Sandbox hosted at http://leshan.eclipse.org
  • 26. OS Stack for IoT Cloud CLOUD PLATFORM MessageRouting
  • 27. OS Stack for IoT Cloud CLOUD PLATFORM C implementation of an MQTT server MQTT 3.1.1 compliant Scalable (1000 clients = 3MB RAM) Extensible (e.g authentication plug-ins) MessageRouting
  • 28. 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? ↳…
  • 29. OS Stack for IoT Cloud Platform Abstract the actual communication protocols via “protocol adapters” Deploy on: CLOUD PLATFORM Device Management Data Management Event Management & Analytics Connectivity MessageRouting Device Registry Application Enablement App 1 App 2 … Kapua Integration platform for IoT Services Kapua NoSQL data store Kapua REST API
  • 30. 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.0AMQP 1.0MQTT
  • 32. Future EclipseIoT stack on Cloud FoundryRouter Eclipse ACS <<Hono Adapter>> <<Hono Adapter>> UAA Kapua Web Console Kapua
  • 35. Eclipse ACS (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
  • 39. Eclipse IoT Community 2.2 26* 170+ 110K million lines of code projects developers monthly visitors * and counting!
  • 40. Virtual IoT Meetup Bi-weekly webinars with IoT experts 1,200 members http://www.meetup.com/Virtual-IoT
  • 42. Get Involved! Use Eclipse IoT Technology in your products Open bugs / fix bugs Request new features Write articles, tutorials Participate on the mailing lists Come to EclipseCon/IoT! Propose your project! iot.eclipse.org
  • 43. Learn more on Wednesday Dr. Steffen Evers, Bosch Software Innovations “Building an Open Framework for Cloud-based IoT Solutions” Wednesday, September 28 • 11:10 - 11:40 43