m2m for java developers - mqtt with eclipse paho

32
M2M for Java Developers MQTT with Eclipse Paho 17-07-2013 -- #democampstuttgart Dominik Obermaier -- dc-square GmbH

Upload: dominik-obermaier

Post on 06-May-2015

2.985 views

Category:

Technology


4 download

DESCRIPTION

Used Software in this talk: HiveMQ MQTT Server - http://www.hivemq.com Paho - http://www.eclipse.org/paho/ Mobile devices like smartphones and tablet computers became an integral part of our modern world and single-board computers like Raspberry Pi are cheaper today than at any time before. Simple and open Machine-to-Machine (M2M) protocols like MQTT enable these devices to communicate in an efficient manner, even in scenarios with unreliable und instable networks. This talk shows how Eclipse Paho - an Eclipse umbrella project for M2M protocols - can be utilized for professional and personal projects to build efficient and scalable solutions for (mobile) devices.

TRANSCRIPT

Page 1: M2M for Java Developers - MQTT with Eclipse Paho

M2M for Java DevelopersMQTT with Eclipse Paho

17-07-2013 -- #democampstuttgartDominik Obermaier -- dc-square GmbH

Page 2: M2M for Java Developers - MQTT with Eclipse Paho

Dominik Obermaier@dobermai

MQTT Enthusiastloves OSS

passionateArchitect & Maker Co-Founder dc-square

likes Open Source Hardware

Page 3: M2M for Java Developers - MQTT with Eclipse Paho

Dominik Obermaier@dobermai

MQTT Enthusiastloves OSS

passionateArchitect & Maker Co-Founder dc-square

likes Open Source HardwareK Who not?!?

Page 4: M2M for Java Developers - MQTT with Eclipse Paho

M2M?

Page 5: M2M for Java Developers - MQTT with Eclipse Paho

TECHNOLOGY THAT SUPPORTS WIRED

OR WIRELESS COMMUNICATION

BETWEEN DEVICES

Page 6: M2M for Java Developers - MQTT with Eclipse Paho

Why should

we care?

Page 7: M2M for Java Developers - MQTT with Eclipse Paho

2010 2015 2020

~6.909.000.000 ~7.302.000.000 ~7.675.000.000

~12.500.000.000 ~25.000.000.000 ~50.000.000.000

[1]Source: http://www.un.org/esa/population/publications/wpp2008/wpp2008_highlights.pdf

[1]

[2]Source: http://share.cisco.com/internet-of-things.html

[2]

“Things” in the Internet

Page 8: M2M for Java Developers - MQTT with Eclipse Paho

Things?

Page 9: M2M for Java Developers - MQTT with Eclipse Paho
Page 10: M2M for Java Developers - MQTT with Eclipse Paho
Page 11: M2M for Java Developers - MQTT with Eclipse Paho
Page 12: M2M for Java Developers - MQTT with Eclipse Paho
Page 13: M2M for Java Developers - MQTT with Eclipse Paho
Page 14: M2M for Java Developers - MQTT with Eclipse Paho
Page 15: M2M for Java Developers - MQTT with Eclipse Paho
Page 16: M2M for Java Developers - MQTT with Eclipse Paho
Page 17: M2M for Java Developers - MQTT with Eclipse Paho

Which protocol

?

Page 18: M2M for Java Developers - MQTT with Eclipse Paho
Page 19: M2M for Java Developers - MQTT with Eclipse Paho

Why MQTT?✓ Simple

✓ Efficient

✓ Publish / Subscribe

✓ Quality of Service Levels

✓ Last Will and Testament

✓ Designed for unreliable networks

Page 20: M2M for Java Developers - MQTT with Eclipse Paho

Why MQTT?✓ Simple

✓ Efficient

✓ Publish / Subscribe

✓ Quality of Service Levels

✓ Last Will and Testament

✓ Designed for unreliable networksK Wireless? Yep, then it probably is unreliable

Page 21: M2M for Java Developers - MQTT with Eclipse Paho

Publish / Subscribe

Page 22: M2M for Java Developers - MQTT with Eclipse Paho

OMG! Sounds like programming in C!

Page 23: M2M for Java Developers - MQTT with Eclipse Paho
Page 24: M2M for Java Developers - MQTT with Eclipse Paho

What about Java?

Page 25: M2M for Java Developers - MQTT with Eclipse Paho
Page 26: M2M for Java Developers - MQTT with Eclipse Paho

What is Paho?

✓ Scalable Open Source Implementations of M2M standard protocols

✓ Focus on MQTT

✓ Implementations in Java, Javascript, Lua and C

✓ Eclipse Incubator

Page 27: M2M for Java Developers - MQTT with Eclipse Paho

What is Paho?

✓ Scalable Open Source Implementations of M2M standard protocols

✓ Focus on MQTT

✓ Implementations in Java, Javascript, Lua and C

✓ Eclipse Incubator

KRead: What is Paho at the moment

Page 28: M2M for Java Developers - MQTT with Eclipse Paho

Code! public void start() throws Exception { final String clientId = "eclipse_stuttgart_sub";

final MqttClient mqttClient = new MqttClient(BROKER_URL, clientId, new MemoryPersistence());

mqttClient.setCallback(new SubscribeCallback(mqttClient));

mqttClient.connect();

mqttClient.subscribe(TOPIC_SUBSCRIPTION, QUALITY_OF_SERVICE_LEVEL);

}

Page 29: M2M for Java Developers - MQTT with Eclipse Paho

Moar Code!public class SubscribeCallback implements MqttCallback {

@Override public void connectionLost(Throwable cause) {}

@Override public void deliveryComplete(MqttDeliveryToken token) {}

@Override public void messageArrived(MqttTopic topic,

MqttMessage message)throws Exception {

System.out.println("Message arrived. Topic: "

topic.getName() + ", QoS: " + message.getQos() + ", message: " + new String(message.getPayload(), Charset.forName("UTF-8")));

}}

Page 30: M2M for Java Developers - MQTT with Eclipse Paho

DEMO!

Page 31: M2M for Java Developers - MQTT with Eclipse Paho

Other Eclipse M2M Projects

Page 32: M2M for Java Developers - MQTT with Eclipse Paho

Credits✓ Scared Cat Picture by http://www.flickr.com/photos/dat-pics/

✓ Thanks Vincent Le Moign for the awesome Icon Set

✓ Rest of pictures licensed from different people from 500px.com

✓ MQTT Logo by http://www.mqtt.org