L'approccio Model-Driven Development per lo sviluppo Agile nell'ambito dell'Internet of Things -...

27
MILAN november 28 th /29 th , 2014 [email protected] Giulio Santoli L'approccio Model-Driven Development per lo sviluppo Agile nell'ambito dell'Internet of Things.

description

Come possono coesistere le metodologie Agile e l'approccio Model-Driven Development per lo sviluppo di applicazioni rivolte al paradigma dell'Internet of Things? Vediamo come sia possibile coinciliare agilmente tutto ciò e sviluppare un'applicazione embedded in UML che dialoga con un servizio in esecuzione sul Cloud Bluemix.

Transcript of L'approccio Model-Driven Development per lo sviluppo Agile nell'ambito dell'Internet of Things -...

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

MILAN november 28th/29th, 2014

[email protected]

Giulio Santoli

L'approccio Model-Driven Development per lo sviluppo Agile

nell'ambito dell'Internet of Things.

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

MILAN november 28th/29th, 2014 – Giulio Santoli

Internet of Things ison the crest of a wave…

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

MILAN november 28th/29th, 2014 – Giulio Santoli

Hype cycle for emerging technologies 2014Internet of Things

is here!

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

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

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

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

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

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)

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

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

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

MILAN november 28th/29th, 2014 – Giulio Santoli

https://developer.ibm.com/messaging/messagesight

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

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

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

MILAN november 28th/29th, 2014 – Giulio Santoli

http://m2m.demos.ibm.com/connectedCar.html#connectedCar

http://tiny.cc/ws0zpx

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

MILAN november 28th/29th, 2014 – Giulio Santoli

IBM BluemixIBM IoT Foundation

+ =

Simple, like 2+2

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

MILAN november 28th/29th, 2014 – Giulio Santoli

https://quickstart.internetofthings.ibmcloud.com

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

MILAN november 28th/29th, 2014 – Giulio Santoli

https://quickstart.internetofthings.ibmcloud.com

https://github.com/ibm-messaging/iot-arduino

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

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

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

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

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

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

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

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

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

MILAN november 28th/29th, 2014 – Giulio Santoli

https://github.com/ibm-messaging/iot-visualization

Collect and Visualize data

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

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

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

MILAN november 28th/29th, 2014 – Giulio Santoli

http://www.ibm.com/developerworks/downloads/r/rhapsodydeveloper

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

MILAN november 28th/29th, 2014 – Giulio Santoli

Rhapsody & Rasbperry Pi

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

MILAN november 28th/29th, 2014 – Giulio Santoli

Create your Internet of Thingsapplication with IBM Bluemix!

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

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

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

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.

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

MILAN november 28th/29th, 2014 – Giulio Santoli

• Energy Generation• Sub Metering• Lighting Control• Environmental• Monitoring• HVAC• Security• Smart Metering

Informix embedded & Shaspa SmartGate

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

MILAN november 28th/29th, 2014 – Giulio Santoli

Service

Providers

Maintenance

Security

Health

Energy

Media

Telephony

Others

Energy Generation

Lighting Control

Smart Metering

Sub MeteringHVAC

Environmental KPI Monitoring

Network

Access

IoT Gateway

Security

Informix embedded & Shaspa SmartGate

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

MILAN november 28th/29th, 2014 – Giulio Santoli

http://www-01.ibm.com/software/data/informix/downloads.html