codemotion milano 2014 - ibm internet of things - giulio santoli
TRANSCRIPT
MILAN november 28th/29th, 2014
Giulio Santoli
IBM Solutions for the Internet of Things: IoT Foundation, MQTT
Message Sight and Rational Rhapsody
MILAN november 28th/29th, 2014 – Giulio Santoli
Hype cycle for emerging technologies 2014Internet of Things
is here!
MILAN november 28th/29th, 2014 – Giulio Santoli
The number is expected to
increase
dramatically within the next decade,
with estimates
ranging from 30 billion devices
9 billion devices around the world are currently connected
to the Internet, including computers and smartphones
The Internet of Things has the
potential to create economic impact
of $8.9 trillion
The World is changing… by 2020
Source: IDC, December 2013
MILAN november 28th/29th, 2014 – Giulio Santoli
Everything is connected…
My tells my that the is over
My tells my to open the garage and start my
My tells my that an intruder is entred
A tells my to tell my that a arrived
MILAN november 28th/29th, 2014 – Giulio Santoli
MQTT, a messaging protocol for IoT
Open (standard, 40+ client implementations)
Lightweight (minimal overhead, efficient format, tiny clients)
Reliable (QoS for reliability in unrealiable neworks)
Simple (43-pages specification, connect/publish/subscribe)
Late 90s Aug 2010 Nov 2011 Sep 2014
Invented by and Published by Eclipse M2m Standard
(v. 3.1.1)
MILAN november 28th/29th, 2014 – Giulio Santoli
MQTT brokers
Appliance Cloud Open Source
• IBM Message Sight • IBM IoT Foundation• HiveMQ
• Eurotech EDC• Litmus Loop
• ...
• Mosquitto (C)
• Mosca (NodeJS)
• Moquette (Java)• RSMB (C)
• ...Up & running in <30 minutes1 rack = 273M msg/sec21M concurrent connectionsDMZ-ready, FIPS 140-2 deny-based access control
MILAN november 28th/29th, 2014 – Giulio Santoli
http://m2m.demos.ibm.com/collaboration.html#starfighter
https://hub.jazz.net/project/spirit/MQTT%20Starfighter%20Server/overview
MILAN november 28th/29th, 2014 – Giulio Santoli
http://m2m.demos.ibm.com/connectedCar.html#connectedCar
http://tiny.cc/ws0zpx
MILAN november 28th/29th, 2014 – Giulio Santoli
https://quickstart.internetofthings.ibmcloud.com
https://github.com/ibm-messaging/iot-arduino
MILAN november 28th/29th, 2014 – Giulio Santoli
Devices
IBM IoT Foundation
Apps
PUBLISH
RECEIVE
events
commands
PUBLISHcommands
REGISTERdevices
GENERATEAPI keys
HTTP HTTP
RECEIVEevents
(and services)
MQTT MQTT
MILAN november 28th/29th, 2014 – Giulio Santoli
https://developer.ibm.com/iot/recipes/improvise-application-development
username � <key>
password � <token>
clientid � a:<orgid>:<app-id>
publishes � iot-2/type/<type-id>/id/<device-id>/cmd/<cmd-id>/fmt/<format-id>
subscribes � iot-2/type/<type-id>/id/<device-id>/evt/<event-id>/fmt/<format-id>
Apps & Serviceskey: a-myorg-hketyuionf
token: AB3ur51jL+3awe0kl
Example
tcp://<org-id>.messaging.internetofthings.ibmcloud.com:1883
ssl://<org-id>.messaging.internetofthings.ibmcloud.com:8883
MQTT Host
MILAN november 28th/29th, 2014 – Giulio Santoli
Devices
https://developer.ibm.com/iot/recipes/improvise-registered-devices
https://developer.ibm.com/iot/recipes/improvise-commands
username � use-token-auth
password � <auth-token>
clientid � d:<orgid>:<type-id>:<divice-id>
publishes � iot-2/evt/<event-id>/fmt/<format>
subscribes � iot-2/cmd/<cmd-type>/fmt/<format-id>
payload � {“d”: {“name1”: “value1”, “name2”: intvalue } }
org=myorg
type=mydevicetype
id=mydeviceid
auth-method=token
auth-token=Gh3e(EA998fart4
Example
MILAN november 28th/29th, 2014 – Giulio Santoli
View an organization (GET):https://internetofthings.ibmcloud.com/api/v0001/organizations/<org-id>
List all devices (GET) / Registr a device (POST):https://internetofthings.ibmcloud.com/api/v0001/organizations/<org-id>/devices
Historical data for a device (GET):https://internetofthings.ibmcloud.com/api/v0001/historian/<org-id>/<type-id>/<id>?filter
REST API Examples
https://developer.ibm.com/iot/recipes/api-documentation
curl --user “<key>:<token>" https://internetofthings.ibmcloud.com/api/v0001/organizations/<org-id>/devices
Example: get all devices
MILAN november 28th/29th, 2014 – Giulio Santoli
https://github.com/ibm-messaging/iot-visualization
Collect and Visualize data
MILAN november 28th/29th, 2014 – Giulio Santoli
UML is dead, long live to UML
IBM Rational Developer for Model-Driven Development in C/C++, Java and Ada
MILAN november 28th/29th, 2014 – Giulio Santoli
http://www.ibm.com/developerworks/downloads/r/rhapsodydeveloper
MILAN november 28th/29th, 2014 – Giulio Santoli
Create your Internet of Thingsapplication with IBM Bluemix!
MILAN november 28th/29th, 2014 – Giulio Santoli
But it’s not over…..…more sessions yet to come
TODAYBluemix sessionat 14:40Cloud Track Room BL.27.0.5
TOMORROWMobile sessionat 14:10Mobile Track Room BL.27.0.5
TOMORROWKeynote IBMat 10:10Room BL.27.0.1
MILAN november 28th/29th, 2014 – Giulio Santoli
© 2014 IBM Corporation
IBM Security Systems
24
www.ibm.com/security
© Copyright IBM Corporation 2014. All rights reserved. The information contained in these materials is provided for informational purposes
only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use
of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any
warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement
governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in
all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole
discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any
way. IBM, the IBM logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United
States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
Statement of Good Security Practices: IT system security involves protecting systems and information through prevention, detection and response
to improper access from within and outside your enterprise. Improper access can result in information being altered, destroyed or misappropriated
or can result in damage to or misuse of your systems, including to attack others. No IT system or product should be considered completely secure
and no single product or security measure can be completely effective in preventing improper access. IBM systems and products are designed to
be part of a comprehensive security approach, which will necessarily involve additional operational procedures, and may require other systems,
products or services to be most effective. IBM DOES NOT WARRANT THAT SYSTEMS AND PRODUCTS ARE IMMUNE FROM THE
MALICIOUS OR ILLEGAL CONDUCT OF ANY PARTY.
ibm.biz/bluemixeurope
© Copyright IBM Corporation 2014. All rights reserved. The information contained in these materials is provided for informational purposes
only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use
of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any
warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement
governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in
all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole
discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any
way. IBM, the IBM logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United
States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
Statement of Good Security Practices: IT system security involves protecting systems and information through prevention, detection and response
to improper access from within and outside your enterprise. Improper access can result in information being altered, destroyed or misappropriated
or can result in damage to or misuse of your systems, including to attack others. No IT system or product should be considered completely secure
and no single product or security measure can be completely effective in preventing improper access. IBM systems and products are designed to
be part of a comprehensive security approach, which will necessarily involve additional operational procedures, and may require other systems,
products or services to be most effective. IBM DOES NOT WARRANT THAT SYSTEMS AND PRODUCTS ARE IMMUNE FROM THE
MALICIOUS OR ILLEGAL CONDUCT OF ANY PARTY.