Open Source IoT @ Eclipse Ian Skerrett Eclipse Foundation Ian.Skerrett@eclipse.org @IanSkerrett
IoT is Big!
Open Wins 1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 3
1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 4
Open Wins 1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 5
MQTT – Open Wins 1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 6
IoT Today 1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 7
Lots of IoT Partner Programs IoT Partner Program … IoT Partner Program … IoT Partner Program … IoT Partner Program … IoT Partner Program IoT Partner Program IoT Partner Program IoT Partner Program
1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 9
IoT Developer Enablement
1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 11
1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 12 Developers Build Cool Stuff
IoT Developer Enablement 0.05 0.260.010.03 0.64 0.02 Have you ever used any open hardware environments like Raspberry 1 2 3 4 5 6 Eclipse Community Survey 2014
http://www.flickr.com/photos/90514086@N00/952121271/ http://www.flickr.com/photos/cyberslayer/952 complexity
IoT Architectures New and Existing Devices IoT Gateways Network/Wireless Services Backend Systems
Connecting
Greenfield and Legacy
Open Solutions New and Existing Devices IoT Gateways Network/Wireless Services Backend Systems Open Standards and Open Source to Connect and Manage
Open IoT Stack Connectivity - MQTT - CoAP - LWM2M IoT Gateway Services - Remote management - Application management IoT Applications IoT Solution Frameworks - Home Automation - SCADA - OM2M Reporting Developer Tools (IDE, etc.) Open & Commercial Hardware
Connect and Manage with Open Standards New and Existing Devices CoAP LWM2M Many Open Standards
MQTT - Simple Publish/Subscribe protocol - Small footprint - Minimal on-the-wire formal and payload - MQTT Client (Java, JS, C, C++, Python, etc.) MQTT Client MQTT Broker Mosquitto MQTT Broker (C Code)
Constrained Application Protocol (CoAP) • RESTful protocol designed from scratch • Transparent mapping to HTTP • Works over UDP • DTLS Security Californium - CoAP Core - DTLS - CoAP Tools - Java implementations REST Interface
Lightweight M2M - Standard for device management - Based on CoAP Wakaama LWM2M Client (C/C++) Leshan LWM2M Server (Java)
IoT Gateway Services IoT Gateways Java and OSGi
IoT Gateways • Gateway management • How to manage remote gateways and keep them up to date • How to manage connectivity • • Manage deployed applications • Gateways become an application container • Remote configuration • Remote update
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
Open IoT Stack: IoT Solution Frameworks Connectivity - MQTT - CoAP - LWM2M IoT Gateway Services - Remote management - Application management IoT Applications IoT Solution Frameworks - Home Automation - SCADA - OM2M Open & Commercial Hardware
IoT Solutions – Home Automation
Intranet of Things for Home Automation
Event BusEvent Bus Persistence ServicesPersistence ServicesAutomation LogicAutomation Logic User InterfacesUser Interfaces Item RegistryItem Registry Hue Binding Hue Binding Samsun g Binding Samsun g Binding Bluetoot h Binding Bluetoot h Binding Sonos Binding Sonos Binding HueHue BluetoothBluetooth SamsungSamsung SonosSonos ......
Eclipse SCADA • Eclipse SCADA is a open source SCADA platform implemented in Java • Provides a comprehensive, state of the art SCADA system, built on modern technologies and open to interface with as many other systems as possible • Allow easy integration between hardware (field devices) and business applications (e.g. ERP)
Eclipse SCADA – Key Features •Data Acquisition •Alarms & Events •Historical Data •Configuration •GUI/HMI
Eclipse SCADA – Supported Protocols • Modbus • Siemens S7 • “exec” (shell script execution) • JDBC • REST • MQTT • A custom Arduino UDP protocol • • Supported through openSCADA • OPC DA 2.0 (Utgard; can't be included with Eclipse SCADA because of licensing issues) • IEC 60870-5-104 (will be reintegrated with Eclipse SCADA in release 0.3) • SNMP (will be integrated with Eclipse SCADA in release 0.3) •
Visual Interface
Smart M2M standard (ETSI M2M) n Provide a horizontal M2M service platform with a generic set of service capabilities to enable M2M interoperability in terms of communication and data. n n Define a Service Capability Layer (SCL) on top of connectivity layers: q SCL deployed in network server, gateways and devices. q SCL enables discovery, registration, authentication, data-transfer using containers, publish/subscribe, groups, access rights, security, etc. q n Interface with existing technologies: q Multiple communication protocol binding. q Re-use existing remote device management. q Interwork with vendor-specific and legacy devices. . Source: ETSI M2M 35
M2M Server End user devices 36 M2M gateway Data Analytic SCADA Interface HTTP/CoAP HTTP/CoAP HTTP/CoAP HTTP/CoAP MQTT PHIDGETS ZIGBEE 6LoW PAN KNX Network domain Device and Gateway domain OM2M architecture
OM2M building blocks Device Management LightWeigthM2 M OMA-DM Interworking Proxy MQTT ZIGBEE Communication Protocol Binding COAP HTTP Additional Services DataCentric Routing Autonomic Computing Security TLS-PSK Java Runtime Environment OSGi EQUINOX framework Operating System Generic ProcessingCORE Hardware Yourplugin! KNX 6LowPAN TLS
Eclipse Open IoT Stack Connectivity - MQTT - CoAP - LWM2M IoT Gateway Services - Remote management - Application management IoT Applications IoT Solution Frameworks - Home Automation - SCADA - OM2M Reporting Developer Tools (IDE, etc.) Open & Commercial Hardware
Open Stack for IoT New and Existing Devices IoT Gateways Network/Wireless Services Backend Systems Open IoT Stack
Commercial Ecosystem Open IoT Stack for Java
More Info: iot.eclipse.org
Join Eclipse IoT 1. Join the community 2. Download project and try it out 3. Use the sandbox servers 4. Contribute feedback to a project 5. Propose your own project 6. Join the Eclipse IoT Working Group Copyright (c) 2014 Eclipse Foundation, licensed under the EPL- 1.0 42
Questions @ianskerrett Ian.Skerrett@eclipse.org
Backup

Using open source for IoT

  • 1.
    Open Source IoT@ Eclipse Ian Skerrett Eclipse Foundation Ian.Skerrett@eclipse.org @IanSkerrett
  • 2.
  • 3.
    Open Wins 1/29/15 Copyright(c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 3
  • 4.
    1/29/15 Copyright (c)2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 4
  • 5.
    Open Wins 1/29/15 Copyright(c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 5
  • 6.
    MQTT – OpenWins 1/29/15 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 6
  • 7.
    IoT Today 1/29/15 Copyright(c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 7
  • 8.
    Lots of IoTPartner Programs IoT Partner Program … IoT Partner Program … IoT Partner Program … IoT Partner Program … IoT Partner Program IoT Partner Program IoT Partner Program IoT Partner Program
  • 9.
    1/29/15 Copyright (c)2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 9
  • 10.
  • 11.
    1/29/15 Copyright (c)2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 11
  • 12.
    1/29/15 Copyright (c)2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 12 Developers Build Cool Stuff
  • 13.
    IoT Developer Enablement 0.05 0.260.010.03 0.64 0.02 Haveyou ever used any open hardware environments like Raspberry 1 2 3 4 5 6 Eclipse Community Survey 2014
  • 14.
  • 15.
    IoT Architectures New andExisting Devices IoT Gateways Network/Wireless Services Backend Systems
  • 16.
  • 17.
  • 18.
    Open Solutions New andExisting Devices IoT Gateways Network/Wireless Services Backend Systems Open Standards and Open Source to Connect and Manage
  • 19.
    Open IoT Stack Connectivity -MQTT - CoAP - LWM2M IoT Gateway Services - Remote management - Application management IoT Applications IoT Solution Frameworks - Home Automation - SCADA - OM2M Reporting Developer Tools (IDE, etc.) Open & Commercial Hardware
  • 20.
    Connect and Managewith Open Standards New and Existing Devices CoAP LWM2M Many Open Standards
  • 21.
    MQTT - Simple Publish/Subscribe protocol - Smallfootprint - Minimal on-the-wire formal and payload - MQTT Client (Java, JS, C, C++, Python, etc.) MQTT Client MQTT Broker Mosquitto MQTT Broker (C Code)
  • 22.
    Constrained Application Protocol(CoAP) • RESTful protocol designed from scratch • Transparent mapping to HTTP • Works over UDP • DTLS Security Californium - CoAP Core - DTLS - CoAP Tools - Java implementations REST Interface
  • 23.
    Lightweight M2M - Standardfor device management - Based on CoAP Wakaama LWM2M Client (C/C++) Leshan LWM2M Server (Java)
  • 24.
    IoT Gateway Services IoTGateways Java and OSGi
  • 25.
    IoT Gateways • Gatewaymanagement • How to manage remote gateways and keep them up to date • How to manage connectivity • • Manage deployed applications • Gateways become an application container • Remote configuration • Remote update
  • 26.
    Java VM OSGi ApplicationContainer 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
  • 27.
    Open IoT Stack:IoT Solution Frameworks Connectivity - MQTT - CoAP - LWM2M IoT Gateway Services - Remote management - Application management IoT Applications IoT Solution Frameworks - Home Automation - SCADA - OM2M Open & Commercial Hardware
  • 28.
    IoT Solutions –Home Automation
  • 29.
    Intranet of Thingsfor Home Automation
  • 30.
    Event BusEvent Bus PersistenceServicesPersistence ServicesAutomation LogicAutomation Logic User InterfacesUser Interfaces Item RegistryItem Registry Hue Binding Hue Binding Samsun g Binding Samsun g Binding Bluetoot h Binding Bluetoot h Binding Sonos Binding Sonos Binding HueHue BluetoothBluetooth SamsungSamsung SonosSonos ......
  • 31.
    Eclipse SCADA • EclipseSCADA is a open source SCADA platform implemented in Java • Provides a comprehensive, state of the art SCADA system, built on modern technologies and open to interface with as many other systems as possible • Allow easy integration between hardware (field devices) and business applications (e.g. ERP)
  • 32.
    Eclipse SCADA –Key Features •Data Acquisition •Alarms & Events •Historical Data •Configuration •GUI/HMI
  • 33.
    Eclipse SCADA –Supported Protocols • Modbus • Siemens S7 • “exec” (shell script execution) • JDBC • REST • MQTT • A custom Arduino UDP protocol • • Supported through openSCADA • OPC DA 2.0 (Utgard; can't be included with Eclipse SCADA because of licensing issues) • IEC 60870-5-104 (will be reintegrated with Eclipse SCADA in release 0.3) • SNMP (will be integrated with Eclipse SCADA in release 0.3) •
  • 34.
  • 35.
    Smart M2M standard(ETSI M2M) n Provide a horizontal M2M service platform with a generic set of service capabilities to enable M2M interoperability in terms of communication and data. n n Define a Service Capability Layer (SCL) on top of connectivity layers: q SCL deployed in network server, gateways and devices. q SCL enables discovery, registration, authentication, data-transfer using containers, publish/subscribe, groups, access rights, security, etc. q n Interface with existing technologies: q Multiple communication protocol binding. q Re-use existing remote device management. q Interwork with vendor-specific and legacy devices. . Source: ETSI M2M 35
  • 36.
    M2M Server End user devices 36 M2Mgateway Data Analytic SCADA Interface HTTP/CoAP HTTP/CoAP HTTP/CoAP HTTP/CoAP MQTT PHIDGETS ZIGBEE 6LoW PAN KNX Network domain Device and Gateway domain OM2M architecture
  • 37.
    OM2M building blocks Device Management LightWeigthM2 M OMA-DM InterworkingProxy MQTT ZIGBEE Communication Protocol Binding COAP HTTP Additional Services DataCentric Routing Autonomic Computing Security TLS-PSK Java Runtime Environment OSGi EQUINOX framework Operating System Generic ProcessingCORE Hardware Yourplugin! KNX 6LowPAN TLS
  • 38.
    Eclipse Open IoTStack Connectivity - MQTT - CoAP - LWM2M IoT Gateway Services - Remote management - Application management IoT Applications IoT Solution Frameworks - Home Automation - SCADA - OM2M Reporting Developer Tools (IDE, etc.) Open & Commercial Hardware
  • 39.
    Open Stack forIoT New and Existing Devices IoT Gateways Network/Wireless Services Backend Systems Open IoT Stack
  • 40.
  • 41.
  • 42.
    Join Eclipse IoT 1.Join the community 2. Download project and try it out 3. Use the sandbox servers 4. Contribute feedback to a project 5. Propose your own project 6. Join the Eclipse IoT Working Group Copyright (c) 2014 Eclipse Foundation, licensed under the EPL- 1.0 42
  • 43.
  • 44.

Editor's Notes

  • #3 Eventhoughitmightseemcrazy,analystsagreetosaythatbillions ofdeviceswillbeconnectedby the end of 2020 ;perhapsaround50 billion 2
  • #4 Hopefully it is not a too controversial statement that openness will always win over closed proprietary. This is especially true for technology that is expected to be broadly adopted. In fact the Internet was createdon open standards and open source software. There are enough cases studies and proof points that technology based on the principles of openness make it much easier and faster for technology to be adopted. It is the transactional costs of proprietary solutions, ex bi-lateral agreements, purchase costs, competitiveness that limit adoption of technology. 3
  • #5 There are lots of examples. Does anyone believe the Internet would be as successful as it is today if Tim Berners-Lee has created a Silicon Valley start-up company to commercialize what he called the www. There were already many successful online communities, AOL andCompuserve, that were widely used. The WWW changed everything since anyone could participate and create something without asking for permissions or negotiating an agreement withCompuserveor AOL. 4
  • #6 In fact, the Internet is now run on open source software and open standards. Proprietary solutions still exist but it is clear who won. 5
  • #8 Today M2M is not openand I don’t see much of a developer community. 7
  • #9 8
  • #10 Lots of proprietarysilos. Proprietary SDKS, proprietary protocols, proprietary solutions 9
  • #12 Therehas been a very important trend in the last 5-10 years that can’t be ignored in any technology industry and that is the importance of developers. Gone are the days of the top-down sales and procurement approach to technology distribution. Developers have become incredibly important in determining the success of new technology. If a technology is embraced by a large developer community the adoption of the technology will increase. A recent book by Stephen O’Grady documents the rise of the importance of the developer. His point is that developer are certainly the New Kingmakers for technology adoption. 11
  • #13 A developer community will do a number of things for the technology: Increase the usefulness of the technology through add-ons, applications, and information resources. Source of innovation of how the technology can be used and applied. 12
  • #15 Animportant issue with IoT is the complexity of creating an IoT solution. There are a lot of pieces for to an IoT solution that need to be put together. 14
  • #16 Infact the complexity can be viewed from the typical IoT architecture. 1) you have to deal with different types of devices that may have different hardware platforms, operating systems, software stacks. 2) these devices typically connect to some type of IoT gateway that is responsible for managing the devices and connecting them to the Internet, 3) the gateways and some devices will need to have some type of network connectivity, eitherWifi, mobile, satellite, and 4) the IoT application needs to integrate with the existing enterprise and backend system, ex. Databases, CRM, ERP, etc. 15
  • #17 A key aspect of IoT is connecting devices, sensors, actuatorsto the Internet. These devices range fromwearables, toairplances, to home, factories, etc. 16
  • #18 In fact, a key aspect is thatthe devices might be brand new or existing. For instance, connectingwearablesor wind farm technology presents a set of issues that might be different than upgrading an existing factory floor or a building to IoT. 17
  • #19 To simplify thecreation of these solutions we believe the industry will required some core building blocks that create an abstraction layer to reduce the complexity. Similar the start of the WWW, lots of people would create their own http server but now there are a few open source http servers that people use instead. Eclipse IoT and the Open IoT Stack for Java developers will be these set of core building blocks. 18
  • #20 19
  • #21 A key part forthe success of IoT will be to have a set of core open standards. MQTT,CoAP, LWM2M are some of these standards that will make it possible to connect different types of devices. Eclipse has open source implementations to these IoT standards. 20
  • #22 Eclipse IoTprovides implementation to the MQTT protocol. EclipsePahois a set of MQTT client libraries andMosquittois a MQTT broker. 21
  • #23 Eclipse Californiumimplements theCoAPprotocol, including DTLS and some testing tools. 22
  • #24 The OMA Lightweight M2M providesa standard for device management. It is based onCoAP. Eclipse IoT has a client implementation inWakaamaand can connect to the open source server calledLeshan. 23
  • #25 In addition to open standardsto connect devices, creating IoT Gateways is an important piece to connect and manage IoT solutions. Eclipse IoT provides two sets of services for building IoT Gateways: 1) Eclipse Kura, for Java applications and 2) Mihini, forLuabased solutions. 24
  • #26 Two key issues with building IoT gatewaysare 1) how to manage them remotely and the connectivity they require and 2)hwoto manage the applications that are deployed on the gateway. 25
  • #27 Eclipse Kura provides a set of Java andOSGiservices that allow you to build IoT gateways. 26
  • #28 27
  • #31 [Kai] [Transition] für den Bereich UIs hat openHAB einiges im Angebot >
  • #34 33
  • #37 36
  • #39 38