SlideShare a Scribd company logo
MILAN november 28th/29th, 2014 
Giulio Santoli 
L'approccio Model-Driven Development per lo sviluppo Agile 
nell'ambito dell'Internet of Things. 
giulio_santoli@it.ibm.com
MILAN november 28th/29th, 2014 – Giulio Santoli 
Internet of Things is 
on the crest of a wave…
MILAN november 28th/29th, 2014 – Giulio Santoli 
Hype cycle for emerging technologies 2014 
Internet of Things 
is here!
MILAN november 28th/29th, 2014 – Giulio Santoli 
The World is changing… by 2020 
9 billion devices around the world are currently connected 
to the Internet, including computers and smartphones 
The number is 
expected to 
increase 
dramatically within 
the next decade, 
with estimates 
ranging from 30 
billion devices 
The Internet of 
Things has the 
potential to create 
economic impact 
of $8.9 trillion 
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 minutes • ... 
1 rack = 273M msg/sec 
21M concurrent connections 
DMZ-ready, FIPS 140-2 
deny-based access control
MILAN november 28th/29th, 2014 – Giulio Santoli 
https://developer.ibm.com/messaging/messagesight
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 
Simple, like 2+2 
+ = 
IBM IoT Foundation IBM Bluemix
MILAN november 28th/29th, 2014 – Giulio Santoli 
https://quickstart.internetofthings.ibmcloud.com
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 
events 
Devices 
IBM IoT Foundation 
Apps 
PUBLISH 
RECEIVE 
commands 
PUBLISH 
commands 
REGISTER 
devices 
GENERATE 
API keys 
HTTP HTTP 
RECEIVE 
events 
(and services) 
MQTT MQTT
MILAN november 28th/29th, 2014 – Giulio Santoli 
tcp://<org-id>.messaging.internetofthings.ibmcloud.com:1883 
ssl://<org-id>.messaging.internetofthings.ibmcloud.com:8883 
Apps & Services 
key: a-myorg-hketyuionf 
token: AB3ur51jL+3awe0kl 
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> 
https://developer.ibm.com/iot/recipes/improvise-application-development 
Example 
MQTT Host
MILAN november 28th/29th, 2014 – Giulio Santoli 
Devices 
org=myorg 
type=mydevicetype 
id=mydeviceid 
auth-method=token 
auth-token=Gh3e(EA998fart4 
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 } } 
https://developer.ibm.com/iot/recipes/improvise-registered-devices 
https://developer.ibm.com/iot/recipes/improvise-commands 
Example
MILAN november 28th/29th, 2014 – Giulio Santoli 
REST API Examples 
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 
curl --user “<key>:<token>" https://internetofthings.ibmcloud.com/api/v0001/organizations/<org-id>/devices 
https://developer.ibm.com/iot/recipes/api-documentation 
Example: get all devices
MILAN november 28th/29th, 2014 – Giulio Santoli 
Collect and Visualize data 
https://github.com/ibm-messaging/iot-visualization
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 
Rhapsody & Rasbperry Pi
MILAN november 28th/29th, 2014 – Giulio Santoli 
Create your Internet of Things 
application with IBM Bluemix!
MILAN november 28th/29th, 2014 – Giulio Santoli 
But it’s not over….. 
…more sessions yet to come 
TODAY 
Bluemix session 
at 14:40 
Cloud Track 
Room BL.27.0.5 
TOMORROW 
Mobile session 
at 14:10 
Mobile Track 
Room BL.27.0.5 
TOMORROW 
Keynote IBM 
at 10:10 
Room BL.27.0.1
MILAN november 28th/29th, 2014 – Giulio Santoli 
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. 
© 2014 IBM Corporation 
IBM Security Systems 
24 
ibm.biz/bluemixeurope 
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.
MILAN november 28th/29th, 2014 – Giulio Santoli 
Informix embedded & Shaspa SmartGate 
• Energy Generation 
• Sub Metering 
• Lighting Control 
• Environmental 
• Monitoring 
• HVAC 
• Security 
• Smart Metering
MILAN november 28th/29th, 2014 – Giulio Santoli 
Informix embedded & Shaspa SmartGate 
Service 
Providers 
Maintenance 
Security 
Health 
Energy 
Media 
Telephony 
Others 
Energy Generation 
Lighting Control 
HVAC Sub Metering 
Smart Metering 
Network 
Access 
IoT Gateway 
Environmental KPI Monitoring 
Security
MILAN november 28th/29th, 2014 – Giulio Santoli 
http://www-01.ibm.com/software/data/informix/downloads.html

More Related Content

L'approccio Model-Driven Development per lo sviluppo Agile nell'ambito dell'Internet of Things - Giulio Santoli - - Codemotion Milan 2014

  • 1. MILAN november 28th/29th, 2014 Giulio Santoli L'approccio Model-Driven Development per lo sviluppo Agile nell'ambito dell'Internet of Things. giulio_santoli@it.ibm.com
  • 2. MILAN november 28th/29th, 2014 – Giulio Santoli Internet of Things is on the crest of a wave…
  • 3. MILAN november 28th/29th, 2014 – Giulio Santoli Hype cycle for emerging technologies 2014 Internet of Things is here!
  • 4. MILAN november 28th/29th, 2014 – Giulio Santoli The World is changing… by 2020 9 billion devices around the world are currently connected to the Internet, including computers and smartphones The number is expected to increase dramatically within the next decade, with estimates ranging from 30 billion devices The Internet of Things has the potential to create economic impact of $8.9 trillion Source: IDC, December 2013
  • 5. 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
  • 6. 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)
  • 7. 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 minutes • ... 1 rack = 273M msg/sec 21M concurrent connections DMZ-ready, FIPS 140-2 deny-based access control
  • 8. MILAN november 28th/29th, 2014 – Giulio Santoli https://developer.ibm.com/messaging/messagesight
  • 9. 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
  • 10. MILAN november 28th/29th, 2014 – Giulio Santoli http://m2m.demos.ibm.com/connectedCar.html#connectedCar http://tiny.cc/ws0zpx
  • 11. MILAN november 28th/29th, 2014 – Giulio Santoli Simple, like 2+2 + = IBM IoT Foundation IBM Bluemix
  • 12. MILAN november 28th/29th, 2014 – Giulio Santoli https://quickstart.internetofthings.ibmcloud.com
  • 13. MILAN november 28th/29th, 2014 – Giulio Santoli https://quickstart.internetofthings.ibmcloud.com https://github.com/ibm-messaging/iot-arduino
  • 14. MILAN november 28th/29th, 2014 – Giulio Santoli events Devices IBM IoT Foundation Apps PUBLISH RECEIVE commands PUBLISH commands REGISTER devices GENERATE API keys HTTP HTTP RECEIVE events (and services) MQTT MQTT
  • 15. MILAN november 28th/29th, 2014 – Giulio Santoli tcp://<org-id>.messaging.internetofthings.ibmcloud.com:1883 ssl://<org-id>.messaging.internetofthings.ibmcloud.com:8883 Apps & Services key: a-myorg-hketyuionf token: AB3ur51jL+3awe0kl 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> https://developer.ibm.com/iot/recipes/improvise-application-development Example MQTT Host
  • 16. MILAN november 28th/29th, 2014 – Giulio Santoli Devices org=myorg type=mydevicetype id=mydeviceid auth-method=token auth-token=Gh3e(EA998fart4 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 } } https://developer.ibm.com/iot/recipes/improvise-registered-devices https://developer.ibm.com/iot/recipes/improvise-commands Example
  • 17. MILAN november 28th/29th, 2014 – Giulio Santoli REST API Examples 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 curl --user “<key>:<token>" https://internetofthings.ibmcloud.com/api/v0001/organizations/<org-id>/devices https://developer.ibm.com/iot/recipes/api-documentation Example: get all devices
  • 18. MILAN november 28th/29th, 2014 – Giulio Santoli Collect and Visualize data https://github.com/ibm-messaging/iot-visualization
  • 19. 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
  • 20. MILAN november 28th/29th, 2014 – Giulio Santoli http://www.ibm.com/developerworks/downloads/r/rhapsodydeveloper
  • 21. MILAN november 28th/29th, 2014 – Giulio Santoli Rhapsody & Rasbperry Pi
  • 22. MILAN november 28th/29th, 2014 – Giulio Santoli Create your Internet of Things application with IBM Bluemix!
  • 23. MILAN november 28th/29th, 2014 – Giulio Santoli But it’s not over….. …more sessions yet to come TODAY Bluemix session at 14:40 Cloud Track Room BL.27.0.5 TOMORROW Mobile session at 14:10 Mobile Track Room BL.27.0.5 TOMORROW Keynote IBM at 10:10 Room BL.27.0.1
  • 24. MILAN november 28th/29th, 2014 – Giulio Santoli 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. © 2014 IBM Corporation IBM Security Systems 24 ibm.biz/bluemixeurope 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.
  • 25. MILAN november 28th/29th, 2014 – Giulio Santoli Informix embedded & Shaspa SmartGate • Energy Generation • Sub Metering • Lighting Control • Environmental • Monitoring • HVAC • Security • Smart Metering
  • 26. MILAN november 28th/29th, 2014 – Giulio Santoli Informix embedded & Shaspa SmartGate Service Providers Maintenance Security Health Energy Media Telephony Others Energy Generation Lighting Control HVAC Sub Metering Smart Metering Network Access IoT Gateway Environmental KPI Monitoring Security
  • 27. MILAN november 28th/29th, 2014 – Giulio Santoli http://www-01.ibm.com/software/data/informix/downloads.html