Open IoT
Mike Milinkovich @mmilinkov [email protected] The Internet of Things will be built on open source The Internet of Things is NOT a Market Scale Innovation
Open Source enables: • Permissionless innovation • Innovation through integration • Far higher levels of experimentation Connect and Interoperate Developers The Power of Developer Choice A Current Example
Google Trends for “MQTT”
Open sourced here The Money Will Not Be In Software
Source: http://www.bloomberg.com/news/articles/2015-02-05/six-things-technology-has-made-insanely-cheap Connect and Manage Devices IoT?
In reality... In reality...
… Internet of Silos fragmentation fragmentation complexity fragmentation complexity lock-in Eclipse IoT
Vision
Founded in 2011 by IBM, Eurotech, Sierra Wireless Founded in 2011 by IBM, Eurotech, Sierra Wireless 20 open-source projects* Lots of Java but also C, C++, Python, Go, .Net, …
→IoT Standards →Services & Frameworks
* and counting! Eclipse IoT Projects End-to-end IoT? End-to-end IoT? End-to-end IoT? End-to-end IoT? CONNECT CONNECT MANAGE CONNECT MANAGE ANALYZE Connecting things to the IoT? Network is often not reliable Bandwidth == $$$ Different communication patterns Connecting things to the IoT CoAP « HTTP over UDP » Expose your device as a resource on the Internet of Things MQTT Publish/Subscribe model TCP-based CoAP: The web-of-things /on
/on /on /red /green /blue /mtbf
/walk /buttons /hand/left/raise /buttons/1/push /eye/picture /bat-level
/engine/status /position /CO2 /fuel /noise /lights/on
Eclipse Californium Focus on scalability and usability To be used in IoT cloud servers or M2M/IoT devices running Java Includes DTLS implementation (Scandium), HTTP/CoAP bridge, Plugtests, …
http://eclipse.org/californium Californium 101 CoapServer, CoapResource, CoapExchange
1.Implement custom resources (extend CoapResource) 2.Add resources to the CoAP server 3.Start the server
MQTT: Publish & Subscribe
BROKE R Eclipse Paho Open-source MQTT clients Pick your language! Java JavaScript C/C++, Objective C Go, Lua, Python, .NET, WinRT, …
http://eclipse.org/paho Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org) C implementation Pretty scalable (1000 clients == 3MB RAM) But also… Moquette (Java, Based on Netty and LMAX disruptor) VerneMQ (Erlang) Mosca (Node.js)
⇒ https://github.com/mqtt/mqtt.github.io/wiki/servers CONNECT MANAGE ANALYZE ✔ CONNECT MANAGE ANALYZE ✔ ??? Yup, lots of aspects to manage Network → PPP cellular connection, WiFi hotspot, Zigbee coordination, VPN, firewall … → offline/online mode Applications → Remote install, start, stop, configure, … → Sandboxing Hardware
Gateways to the rescue! Gateway Gateway Eclipse Kura
Applications
App 1 App 2 . . . . App n
Connectivity and Delivery
Network Configuration
Network Management Field Operation &
Management Protocols
Gateway Basic Services Administration GUI
Device Abstraction
OSGi Application Container Java VM
Linux Hardware Kura API OSGi services that you can re-use in your own components ClockService DataService, CloudService CryptoService (AES, base64, SHA-1) PositionService (geolocation) … and many others And of course you can leverage a huge ecosystem of Java and OSGi libraries Device Management is also... LightweightM2M
LWM2M is an Open Mobile Alliance Standard Device Management on top of CoAP Eclipse Leshan and Wakaama are two implementations CONNECT MANAGE ANALYZE ✔ ✔ End-user interaction JavaFX Charts
Eclipse BIRT
Smartphone app (e.g Android) https://www.eclipse.org/paho/clients/android
MQTT + WebSockets = ♡ https://www.eclipse.org/paho/clients/js
CONNECT MANAGE ANALYZE ✔ ✔ ✔ Eclipse IoT is also…
Flexible Framework Based on Java and OSGi
Huge number of “bindings”: KNX, Nest, Philips HUE, … Eclipse IoT is also... Server Platform
Software provisioning https://projects.eclipse.org/proposals/hawkbit Uniform service interface for Telemetry and Command & Control https://projects.eclipse.org/proposals/hono Eclipse IoT is also… Industrial IoT
Open source implementations of IEC standards Eclipse neoSCADA: Siemens S7 PLC, IEC 60870-4- 105, … 4DIAC: 61499 Rise V2G: IEC 15118 Eclipse IoT is also... Information Models
Eclipse Vorto allows to create and manage device descriptions + associated toolchains (code generators)
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!
Thank you! Questions?
[email protected] @mmilinkov
http://iot.eclipse.org http://iot.eclipse.org/java