Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Cuddly Throwable Application Server

1,786 views

Published on

Computers are getting small enough and cheap enough that they’re almost disposable. It’s possible to sock computers away almost anywhere, and to connect almost anything to the internet. At the same time, the Java stacks that we know and love are also getting lighter and cheaper. That combination means it’s possible to put a full spec-compliant Java EE server on ridiculously cheap hardware, and then throw it around the room without worrying too much about breaking stuff.

Source code: https://github.com/holly-cummins/throwable-application-server

Published in: Software
  • Be the first to comment

  • Be the first to like this

The Cuddly Throwable Application Server

  1. 1. © 2016 IBM Corporation The Cuddly, Throwable Application Server
  2. 2. @holly_cummins ?
  3. 3. @holly_cummins
  4. 4. @holly_cummins
  5. 5. @holly_cummins
  6. 6. @holly_cummins
  7. 7. @holly_cummins What is the Bluemix Garage? (It’s not actually a Garage.)
  8. 8. @holly_cummins
  9. 9. @holly_cummins http://ibm.biz/ bluemixgaragelondon
  10. 10. @holly_cummins “Computers in the future may weigh no more than 1.5 tons.” - Popular Mechanics, 1949
  11. 11. @holly_cummins “I think there is a world market for maybe five computers.” — Thomas Watson, chairman of IBM 1943
  12. 12. @holly_cummins Then: HARDware
  13. 13. @holly_cummins Now: Everyware
  14. 14. @holly_cummins Next: Connected-ware
  15. 15. @holly_cummins Why care about the Internet of Things?
  16. 16. @holly_cummins Why care about the Internet of Things? This could really benefit my business
  17. 17. @holly_cummins Why care about the Internet of Things? This could really benefit my business This is so FUN and COOL and OOH I made it LIGHT UP!”
  18. 18. @holly_cummins Poll-time.
  19. 19. @holly_cummins
  20. 20. @holly_cummins +
  21. 21. @holly_cummins +
  22. 22. @holly_cummins It was cool. But it couldn’t move around much.
  23. 23. @holly_cummins pcDuino
  24. 24. @holly_cummins pcDuino
  25. 25. @holly_cummins pcDuino £60
  26. 26. @holly_cummins pcDuino £60 Dual-core CPU 4 GB flash storage 1 GB RAM “Arduino-ish” pins Wi-fi Battery connector
  27. 27. @holly_cummins embedded application server Sensors Liberty Architecture
  28. 28. @holly_cummins A bit of textile engineering.
  29. 29. @holly_cummins A bit more textile engineering.
  30. 30. @holly_cummins Ta-daa!
  31. 31. @holly_cummins Ta-daa! Presenting: The WebSphere Sphere
  32. 32. @holly_cummins Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”)
  33. 33. @holly_cummins Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”)(“the world’s first throwable application server”)
  34. 34. @holly_cummins
  35. 35. @holly_cummins Throwable technology. Not so silly after all.
  36. 36. @holly_cummins Remind you of anything?
  37. 37. @holly_cummins Not really. It’s very lumpy, isn’t it?
  38. 38. @holly_cummins It’s a computer case
  39. 39. @holly_cummins Interfacing the ball to the computer LED sequins
  40. 40. @holly_cummins Soft circuits
  41. 41. @holly_cummins Soft circuits Conductive thread
  42. 42. @holly_cummins Soft circuits £6.78 Conductive thread
  43. 43. @holly_cummins Soft circuits £6.78 Conductive thread Stainless steel
  44. 44. @holly_cummins Soft circuits £6.78 Conductive thread Solderable Stainless steel
  45. 45. @holly_cummins Soft circuits £6.78 Conductive thread Solderable Sewable Stainless steel
  46. 46. @holly_cummins http://pcduino.local
  47. 47. @holly_cummins –My Mother “Holly, why would anyone want an application server in a cuddly ball?”
  48. 48. @holly_cummins Who wouldn’t want an application server in a cuddly ball?
  49. 49. @holly_cummins So … did it work?
  50. 50. @holly_cummins So … did it work?
  51. 51. @holly_cummins So … did it work? pcDuino could never display on any monitor.
  52. 52. @holly_cummins … and then what happened?
  53. 53. @holly_cummins … and then what happened? Wires snapped. Many times.
  54. 54. @holly_cummins … and then what happened? Wires snapped. Many times. Inside a unit that had to be disassembled before any repair could be done.
  55. 55. @holly_cummins … and then what happened? • Connectors are not as easy as one might hope
  56. 56. @holly_cummins … and then what happened? • Connectors are not as easy as one might hopePcDuino battery interface
  57. 57. @holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface
  58. 58. @holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface
  59. 59. @holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface JST-PH
  60. 60. @holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface JST-PH
  61. 61. @holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface JST-PH JST-SH
  62. 62. @holly_cummins “The board features a difficult-to-get JST-SH connector. You won't find a battery with a ready-made five-pin JST-SH connector. ” http://wt.tuxomania.net
  63. 63. @holly_cummins “The board features a difficult-to-get JST-SH connector. You won't find a battery with a ready-made five-pin JST-SH connector. ” http://wt.tuxomania.net !&!^@*!
  64. 64. @holly_cummins It’s ok! I wired in a battery.
  65. 65. @holly_cummins … and then what happened? LiPoly battery. Standard 3.3V output.
  66. 66. @holly_cummins … and then what happened? Battery voltage isn’t enough for LEDs. Or sensors. LiPoly battery. Standard 3.3V output.
  67. 67. @holly_cummins
  68. 68. @holly_cummins It’s ok! I used a USB battery.
  69. 69. @holly_cummins It’s ok! I used a USB battery.
  70. 70. @holly_cummins It’s ok! I used a USB battery. Un-covered metal batteries short pins.
  71. 71. @holly_cummins It’s ok! I added a sock.
  72. 72. @holly_cummins It’s ok! I added a sock.
  73. 73. @holly_cummins It’s ok! I added a sock. Child will never miss it.
  74. 74. I’ve fixed this for you.
  75. 75. S I’ve fixed this for you.
  76. 76. @holly_cummins A USB power connector lived here … and then what happened?
  77. 77. @holly_cummins … and then what happened? Another USB power connector lived here
  78. 78. @holly_cummins … and then what happened? What does that mean in practice?
  79. 79. @holly_cummins … and then what happened? What does that mean in practice? Normally, 0 = bounce. With insufficient voltage, pin is always 0.
  80. 80. @holly_cummins … and then what happened? So it infinitely … oh. Oh dear.
  81. 81. @holly_cummins … and then what happened?
  82. 82. @holly_cummins … and then what happened?
  83. 83. @holly_cummins … and then what happened? Motion sensor started smoking, stopped working. Had to buy a new one.
  84. 84. @holly_cummins pcDuino stopped working. Had to buy a new one :( … and then what happened?
  85. 85. @holly_cummins –My mother “Holly, I saw a video of your sphere talk. I thought you handled the fact that the demo failed really well. Are there any videos where it actually works?”
  86. 86. @holly_cummins … and then what happened?
  87. 87. @holly_cummins … and then what happened? It worked faultlessly. Twice in a row.
  88. 88. @holly_cummins pcDuino useful stuff The physical world …
  89. 89. @holly_cummins pcDuino useful stuff The physical world … bulky protective padding
  90. 90. @holly_cummins pcDuino useful stuff … doesn’t fit in hand-luggage. The physical world … bulky protective padding
  91. 91. @holly_cummins … and then what happened?
  92. 92. @holly_cummins … and then what happened?
  93. 93. @holly_cummins … and then what happened? Not supposed to look like that.
  94. 94. @holly_cummins … and then what happened? Pin on power board snapped. Remnants of pin in PCB hole. Not supposed to look like that.
  95. 95. @holly_cummins … and then what happened?
  96. 96. @holly_cummins Solder burns on kitchen counter. … and then what happened?
  97. 97. @holly_cummins … and then what happened?
  98. 98. @holly_cummins … and then what happened? No power to pcDuino.
  99. 99. @holly_cummins … and then what happened? It’s ok! I bought a better powerboost.
  100. 100. @holly_cummins … and then what happened?
  101. 101. @holly_cummins … and then what happened? No power to pcDuino. Still.
  102. 102. @holly_cummins … and then what happened? There’s actually a hole in the battery under all that tape.
  103. 103. @holly_cummins What could possibly go wrong with a damaged LiPo battery?
  104. 104. @holly_cummins It’s ok! I bought a new battery. (and the damaged one isn’t in my house anymore)
  105. 105. @holly_cummins It’s ok! I bought a new battery. (and the damaged one isn’t in my house anymore) It’s ok! I bought two new batteries.
  106. 106. @holly_cummins - My partner “Holly, I keep telling you you should refuse to do this talk anymore.”
  107. 107. @holly_cummins - My partner “Holly, I keep telling you you should refuse to do this talk anymore.” (I didn’t even tell him about the exploding batteries.)
  108. 108. @holly_cummins IoT development checklist
  109. 109. @holly_cummins Look before you leap. IoT development checklist
  110. 110. @holly_cummins Look before you leap. You will need: IoT development checklist
  111. 111. @holly_cummins Look before you leap. You will need: • Spare money IoT development checklist
  112. 112. @holly_cummins Look before you leap. You will need: • Spare money • A lot of time IoT development checklist
  113. 113. @holly_cummins Look before you leap. You will need: • Spare money • A lot of time • A high tolerance for stress IoT development checklist
  114. 114. @holly_cummins –Thomas Edison I have not failed. I've just found 10,000 ways that won't work.
  115. 115. @holly_cummins But … what does it all mean?
  116. 116. http://www.commitstrip.com/en/2016/05/26/the-internet-of-things-a-revolution/
  117. 117. @holly_cummins This is important.
  118. 118. @holly_cummins This is important-ish.
  119. 119. @holly_cummins
  120. 120. @holly_cummins Single-board computers are an amazing revolution.
  121. 121. @holly_cummins Single-board computers are an amazing revolution.
  122. 122. @holly_cummins Single-board computers are an amazing revolution. Application servers are lighter than you think.
  123. 123. @holly_cummins Single-board computers are an amazing revolution. Application servers are lighter than you think.
  124. 124. @holly_cummins Single-board computers are an amazing revolution. Application servers are lighter than you think. Java EE is really handy.
  125. 125. @holly_cummins
  126. 126. @holly_cummins
  127. 127. @holly_cummins
  128. 128. @holly_cummins
  129. 129. @holly_cummins
  130. 130. @holly_cummins
  131. 131. @holly_cummins WebSphere Liberty installs only the Java EE features needed.
  132. 132. @holly_cummins WebSphere Liberty installs only the Java EE features needed.
  133. 133. @holly_cummins WebSphere Liberty installs only the Java EE features needed. For my application, that’s a lot of features.
  134. 134. @holly_cummins WebSphere Liberty installs only the Java EE features needed. For my application, that’s a lot of features.
  135. 135. @holly_cummins WebSphere Liberty installs only the Java EE features needed. For my application, that’s a lot of features. (I used a lot of programming models. )
  136. 136. @holly_cummins
  137. 137. @holly_cummins But is it IoT?
  138. 138. @holly_cummins embedded application server Sensors Liberty Architecture
  139. 139. @holly_cummins
  140. 140. @holly_cummins
  141. 141. @holly_cummins Thing
  142. 142. @holly_cummins Embedded thing
  143. 143. @holly_cummins Very very embedded thing
  144. 144. @holly_cummins Very very embedded thing Network, but not internet
  145. 145. @holly_cummins
  146. 146. @holly_cummins No machine-to-machine
  147. 147. @holly_cummins Sensors
  148. 148. @holly_cummins Sensors
  149. 149. @holly_cummins http://sphere.mybluemix.net/
  150. 150. @holly_cummins Bluemix and IoT
  151. 151. @holly_cummins // parse VCAP_SERVICES String VCAP_SERVICES = System.getenv("VCAP_SERVICES"); JSONObject vcap = new JSONObject(VCAP_SERVICES); JSONArray json = vcap.getJSONArray("iotf-service"); JSONObject credentials = json.getJSONObject(0).getJSONObject("credentials"); String host = (String) credentials.get("mqtt_host"); Integer port = (Integer) credentials.get("mqtt_u_port"); … MqttClient client = new MqttClient(uri, id); MqttConnectOptions opts = new MqttConnectOptions(); opts.setUserName(username); opts.setPassword(password.toCharArray()); client.connect(opts); client.setCallback(this); client.subscribe("iot-2/type/+/id/+/evt/+/fmt/+"); Everything is a service (12-factor style)
  152. 152. @holly_cummins www.wasdev.net Any questions? www.wasdev.net ibm.biz/bluemixgaragelondon https://github.com/holly-cummins/throwable-application-server @holly_cummins

×