M2M for Java Developers
MQTT with Eclipse Paho
Dominik Obermaier
@dobermai
excited about M2M
passionate
Architect & Maker

loves OSS
Co-Founder and
CTO at dc-square

lik...
Dominik Obermaier
@dobermai
excited about M2M

loves OSS

passionate
Architect & Maker

Co-Founder and
CTO at dc-square

l...
M2M?
TECHNOLOGY THA
T
SUPPORTS WIRED
OR WIRELESS
COMMUNICA
TION
BETWEEN DEVICES
Why
should
we
care?
“Things” in the Internet
2010

2015

2020

~6.909.000.000

~7.302.000.000

~7.675.000.000

[1]

[2]

~12.500.000.000 ~25.0...
“Things” in the Internet
People

Things

50,000,000,000

37,500,000,000

25,000,000,000

12,500,000,000

0
2010

2015

202...
“Things” in the Internet
People

Things

50,000,000,000

37,500,000,000

25,000,000,000

1.8x

12,500,000,000

0
2010

201...
“Things” in the Internet
People

Things

50,000,000,000

37,500,000,000

25,000,000,000

1.8x
3.4x

12,500,000,000

0
2010...
“Things” in the Internet
People

Things

50,000,000,000

6.5x

37,500,000,000

25,000,000,000

1.8x
3.4x

12,500,000,000

...
Things?
Another revolution?
Screenshot Taken from Oracle JavaOne Strategic Keynote 2013
IoT
Which
protocol
?
HTTP?
Request / Response
Verbose
Polling instead of Push
No quality of service
How to get notified if clients die?
Statele...
Why MQTT?
✓ Simple
✓ Efficient
✓ Publish / Subscribe
✓ Quality of Service Levels
✓ Last Will and Testament
✓ Designed for ...
Why MQTT?
✓ Simple
✓ Efficient
✓ Publish / Subscribe
✓ Quality of Service Levels
✓ Last Will and Testament
✓ Designed for ...
Publish / Subscribe
Broker Implementations
Broker Implementations
Broker Implementations
Broker Implementations
Broker Implementations
Broker Implementations
Broker Implementations

+ others
Broker Implementations

+ others
Extensive list of brokers available at http://mqtt.org/wiki/doku.php/brokers
Noooo! Sounds like
programming in C!
Java!
What is Paho?
✓ Scalable Open Source Implementations of M2M
standard protocols

✓ Focus on MQTT
✓ Implementations in Java,...
What is Paho?
K

Read: What is Paho at the moment

✓ Scalable Open Source Implementations of M2M
standard protocols

✓ Foc...
Code!
public void start() throws Exception {
final String clientId = "eclipsecon_sub";
final MqttClient mqttClient = new M...
Moar Code!

public class SubscribeCallback implements MqttCallback {
@Override
public void connectionLost(Throwable cause)...
DEMO!
Other Eclipse
M2M Projects
Other Eclipse
M2M Projects

+ others
THANK
YOU!
Credits
✓ Scared Cat Picture by http://www.flickr.com/photos/
dat-pics/

✓ Thanks Vincent Le Moign for the awesome Icon Se...
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
Upcoming SlideShare
Loading in …5
×

M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013

842
-1

Published on

Talk from the EclipseCon 2013.

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.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
842
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013

  1. 1. M2M for Java Developers MQTT with Eclipse Paho
  2. 2. Dominik Obermaier @dobermai excited about M2M passionate Architect & Maker loves OSS Co-Founder and CTO at dc-square likes Open Source Hardware
  3. 3. Dominik Obermaier @dobermai excited about M2M loves OSS passionate Architect & Maker Co-Founder and CTO at dc-square likes Open Source Hardware K Who not?!?
  4. 4. M2M?
  5. 5. TECHNOLOGY THA T SUPPORTS WIRED OR WIRELESS COMMUNICA TION BETWEEN DEVICES
  6. 6. Why should we care?
  7. 7. “Things” in the Internet 2010 2015 2020 ~6.909.000.000 ~7.302.000.000 ~7.675.000.000 [1] [2] ~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 [2]Source: http://share.cisco.com/internet-of-things.html
  8. 8. “Things” in the Internet People Things 50,000,000,000 37,500,000,000 25,000,000,000 12,500,000,000 0 2010 2015 2020
  9. 9. “Things” in the Internet People Things 50,000,000,000 37,500,000,000 25,000,000,000 1.8x 12,500,000,000 0 2010 2015 2020
  10. 10. “Things” in the Internet People Things 50,000,000,000 37,500,000,000 25,000,000,000 1.8x 3.4x 12,500,000,000 0 2010 2015 2020
  11. 11. “Things” in the Internet People Things 50,000,000,000 6.5x 37,500,000,000 25,000,000,000 1.8x 3.4x 12,500,000,000 0 2010 2015 2020
  12. 12. Things?
  13. 13. Another revolution?
  14. 14. Screenshot Taken from Oracle JavaOne Strategic Keynote 2013
  15. 15. IoT
  16. 16. Which protocol ?
  17. 17. HTTP? Request / Response Verbose Polling instead of Push No quality of service How to get notified if clients die? Stateless
  18. 18. Why MQTT? ✓ Simple ✓ Efficient ✓ Publish / Subscribe ✓ Quality of Service Levels ✓ Last Will and Testament ✓ Designed for unreliable networks
  19. 19. Why MQTT? ✓ Simple ✓ Efficient ✓ Publish / Subscribe ✓ Quality of Service Levels ✓ Last Will and Testament ✓ Designed for unreliable networks K Wireless? Yep, then it probably is unreliable
  20. 20. Publish / Subscribe
  21. 21. Broker Implementations
  22. 22. Broker Implementations
  23. 23. Broker Implementations
  24. 24. Broker Implementations
  25. 25. Broker Implementations
  26. 26. Broker Implementations
  27. 27. Broker Implementations + others
  28. 28. Broker Implementations + others Extensive list of brokers available at http://mqtt.org/wiki/doku.php/brokers
  29. 29. Noooo! Sounds like programming in C!
  30. 30. Java!
  31. 31. What is Paho? ✓ Scalable Open Source Implementations of M2M standard protocols ✓ Focus on MQTT ✓ Implementations in Java, Javascript, Lua, C, C++ and Python ✓ Eclipse Incubator
  32. 32. What is Paho? K Read: What is Paho at the moment ✓ Scalable Open Source Implementations of M2M standard protocols ✓ Focus on MQTT ✓ Implementations in Java, Javascript, Lua, C, C++ and Python ✓ Eclipse Incubator
  33. 33. Code! public void start() throws Exception { final String clientId = "eclipsecon_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); }
  34. 34. 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"))); }
  35. 35. DEMO!
  36. 36. Other Eclipse M2M Projects
  37. 37. Other Eclipse M2M Projects + others
  38. 38. THANK YOU!
  39. 39. 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 ✓ Paho Logo from http://wiki.eclipse.org/Paho/Branding
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×