Exposing M2M to the REST of us


Published on

In the ”Internet of Things” (IoT) vision the physical world blends with virtual one, while machine-to-machine interaction improve our daily life. Clearly, how these virtual objects are exposed to us is critical, so that their user interface must be designed to support the easiness of usage that is driven by the users’ needs, which is different from what machines requires. These two requirements must be solved, and an integrated solution should emerge, if we want to bring the IoT to the 50 billions network that is predicted to became in the next years.

Published in: Technology
1 Comment
  • LOL RFC 1149... the april fools joke which just keeps giving
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Exposing M2M to the REST of us

  1. Exposing M2Mto the REST of us@matteocollina
  2. Matteo CollinaPh.D. Student @University of Bologna@matteocollina matteocollina.com
  3. http://500px.com/photo/20389019We are #coders
  4. http://500px.com/photo/32597639We are no Jedi
  5. http://500px.com/photo/20388963We #codeapps
  6. Did you seeit cominghttp://www.flickr.com/photos/12738000@N00/360231193/
  7. Stevedid.http://www.flickr.com/photos/noppyfoto/6216399465/
  8. Thanks.http://www.flickr.com/photos/noppyfoto/6216399465/
  9. They didn’t!...
  10. We don’t#code forthis phoneanymore!
  11. 7:11 PMiPadHow do we #code an App?
  12. 7:11 PMiPadWe #code a response tosome kind of user action
  13. Pop-up DialogOKThis message comefrom the server!CancelWeb ServerTapWe #code a remoteweb server
  14. Web and Mobileapps are based onHTTPREST
  15. REpresentationalState Tranfer = REST
  16. http://500px.com/photo/20591939Things aredifferent
  17. http://500px.com/photo/4766384In the future, this chainwill be connected tothe Internet
  18. http://500px.com/photo/26425201We want to #codethe (real) world.
  19. Arduino is an opensource microcontrollerthat you can use to hackthingshttp://www.flickr.com/photos/mattrichardson/5029708468/
  20. The Internet isour pillar 
  21. http://500px.com/photo/20050837we want to monitor theseating of this room?What if
  22. http://500px.com/photo/20050837we measure people’semotions?Can
  23. When you sit,we can receivean event
  24. The world isevent based!
  25. Our controlroom is in theCloud
  26. How can we make Things talk?http://www.flickr.com/photos/iboy_daniel/77412822/in/photostream/
  27. Pidgeons are not acommunicationprotocolSee RFC1149 http://500px.com/photo/32895129
  28. http://www.flickr.com/photos/clearlyambiguous/48185613/HTTP is slow and safe
  29. We need afast, binaryprotocolhttp://www.flickr.com/photos/grrphoto/305649629
  30. • Binary• Publish/Subscribe• Free• Standard (in a few months)
  31. How to useon
  32. Download PubSubClient,the library for
  33. on Arduino: SetupString server = String("qest.me");PubSubClient client =PubSubClient(server,1883,callback);
  34. if (!client.connected()) {client.connect("arduino");}client.loop();char s[10];itoa(get_temperature(), s, 10);client.publish("temp", s);on Arduino: publishing
  35. if (!client.connected()) {client.connect("arduino");}client.loop();char s[10];itoa(get_temperature(), s, 10);client.publish("temp", s);This is called a topic,and it is where we publishdata on MQTT.on Arduino: publishing
  36. Your app cannot serve twomasters.http://500px.com/photo/35382862
  37. QESTA MQTT/REST bridgeqest.me
  38. • MQTT broker• REST interface• can be deployed ontop of very pub/subsystems• built in node.jsQESTREST ServerRedisMQTT ServerQESTData LayerHTTP Clients MQTT Clients
  39. • Ascoltatori: the pub/sub library for node backed byRedis, MongoDB,AMQP (RabbitMQ), ZeroMQ, MQTT(Mosquitto) or just plain node: https://github.com/mcollina/ascoltatori• Mosca, the multi-transport MQTT broker for node.js.It supports AMQP, Redis, ZeroMQ or just MQTT:https://github.com/mcollina/mosca• MQTT.js, the MQTT library for node: https://github.com/adamvr/MQTT.jsQEST’s pillars
  40. Strings are themost commondata format.http://500px.com/photo/28990737
  41. Not thesestrings.http://500px.com/photo/28990737
  42. Strings are notthe better wayof sending dataWhat else
  43. There are LOTsof choices• JSON• MessagePack• BSON• Bysant• ProtobufSize mattersif we pay forevery bytesent!
  44. There are LOTsof choices
  45. There are LOTsof choicesDevelopers think in Listsand Maps, not in nodesand children.XML will not play a majorrole in the Internet ofThings
  46. • What devices can a user monitor?• What devices can listen to the state ofother devices?• Who can access the devices state?• Is the communication secure?Security Issues
  47. We need tointerconnect UsersSocial profiles tothe Devices!
  48. http://500px.com/photo/31083423We need a Bridge betweenthe REST and the“Things” world
  49. http://500px.com/photo/31083423• Multiple communicationprotocols• Data representation• Security and provisioningWe need to address:From an end-userperspective
  50. (bridge in Italian)
  51. http://eclipse.org/proposals/technology.ponte/
  52. The initial contribution is QEST
  53. will play well with the others
  54. http://www.flickr.com/photos/oneaustin/1261907803DEMO!
  55. http://500px.com/photo/26425201Ruby on Railshas drasticallychanged howweb apps arebuiltA 10-minutes blog videochanged everything
  56. http://500px.com/photo/26425201We aim to aRails-likeexperience forthe IoTOur goal is to deliver a10-minutes M2M app video
  57. Credits• Font Awesome for theIcons.• Flickr and 500px for LOTSof CC images :).• Keynotopia for the iPadmockups
  58. Matteo Collina (matteo.collina2@unibo.it)Thank You!@matteocollinahttp://www.flickr.com/photos/axel-d/479627824/
  59. http://500px.com/photo/31083423Bridging two worldshttp://eclipse.org/proposals/technology.ponte/