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

M2M for Java Developers - MQTT with Eclipse Paho

May 06, 2015

Download

Technology

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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