Slide 1

Slide 1 text

© 2016 IBM Corporation The Cuddly, Throwable Application Server

Slide 2

Slide 2 text

@holly_cummins ?

Slide 3

Slide 3 text

@holly_cummins

Slide 4

Slide 4 text

@holly_cummins

Slide 5

Slide 5 text

@holly_cummins

Slide 6

Slide 6 text

@holly_cummins

Slide 7

Slide 7 text

@holly_cummins What is the Bluemix Garage? (It’s not actually a Garage.)

Slide 8

Slide 8 text

@holly_cummins

Slide 9

Slide 9 text

@holly_cummins http://ibm.biz/ bluemixgaragelondon

Slide 10

Slide 10 text

@holly_cummins “Computers in the future may weigh no more than 1.5 tons.” - Popular Mechanics, 1949

Slide 11

Slide 11 text

@holly_cummins “I think there is a world market for maybe five computers.” — Thomas Watson, chairman of IBM 1943

Slide 12

Slide 12 text

@holly_cummins Then: HARDware

Slide 13

Slide 13 text

@holly_cummins Now: Everyware

Slide 14

Slide 14 text

@holly_cummins Next: Connected-ware

Slide 15

Slide 15 text

@holly_cummins Why care about the Internet of Things?

Slide 16

Slide 16 text

@holly_cummins Why care about the Internet of Things? This could really benefit my business

Slide 17

Slide 17 text

@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!”

Slide 18

Slide 18 text

@holly_cummins Poll-time.

Slide 19

Slide 19 text

@holly_cummins

Slide 20

Slide 20 text

@holly_cummins +

Slide 21

Slide 21 text

@holly_cummins +

Slide 22

Slide 22 text

@holly_cummins It was cool. But it couldn’t move around much.

Slide 23

Slide 23 text

@holly_cummins pcDuino

Slide 24

Slide 24 text

@holly_cummins pcDuino

Slide 25

Slide 25 text

@holly_cummins pcDuino £60

Slide 26

Slide 26 text

@holly_cummins pcDuino £60 Dual-core CPU 4 GB flash storage 1 GB RAM “Arduino-ish” pins Wi-fi Battery connector

Slide 27

Slide 27 text

@holly_cummins embedded application server Sensors Liberty Architecture

Slide 28

Slide 28 text

@holly_cummins A bit of textile engineering.

Slide 29

Slide 29 text

@holly_cummins A bit more textile engineering.

Slide 30

Slide 30 text

@holly_cummins Ta-daa!

Slide 31

Slide 31 text

@holly_cummins Ta-daa! Presenting: The WebSphere Sphere

Slide 32

Slide 32 text

@holly_cummins Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”)

Slide 33

Slide 33 text

@holly_cummins Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”) (“the world’s first throwable application server”)

Slide 34

Slide 34 text

@holly_cummins

Slide 35

Slide 35 text

@holly_cummins Throwable technology. Not so silly after all.

Slide 36

Slide 36 text

@holly_cummins Remind you of anything?

Slide 37

Slide 37 text

@holly_cummins Not really. It’s very lumpy, isn’t it?

Slide 38

Slide 38 text

@holly_cummins It’s a computer case

Slide 39

Slide 39 text

@holly_cummins Interfacing the ball to the computer LED sequins

Slide 40

Slide 40 text

@holly_cummins Soft circuits

Slide 41

Slide 41 text

@holly_cummins Soft circuits Conductive thread

Slide 42

Slide 42 text

@holly_cummins Soft circuits £6.78 Conductive thread

Slide 43

Slide 43 text

@holly_cummins Soft circuits £6.78 Conductive thread Stainless steel

Slide 44

Slide 44 text

@holly_cummins Soft circuits £6.78 Conductive thread Solderable Stainless steel

Slide 45

Slide 45 text

@holly_cummins Soft circuits £6.78 Conductive thread Solderable Sewable Stainless steel

Slide 46

Slide 46 text

@holly_cummins http://pcduino.local

Slide 47

Slide 47 text

@holly_cummins –My Mother “Holly, why would anyone want an application server in a cuddly ball?”

Slide 48

Slide 48 text

@holly_cummins Who wouldn’t want an application server in a cuddly ball?

Slide 49

Slide 49 text

@holly_cummins So … did it work?

Slide 50

Slide 50 text

@holly_cummins So … did it work?

Slide 51

Slide 51 text

@holly_cummins So … did it work? pcDuino could never display on any monitor.

Slide 52

Slide 52 text

@holly_cummins … and then what happened?

Slide 53

Slide 53 text

@holly_cummins … and then what happened? Wires snapped. Many times.

Slide 54

Slide 54 text

@holly_cummins … and then what happened? Wires snapped. Many times. Inside a unit that had to be disassembled before any repair could be done.

Slide 55

Slide 55 text

@holly_cummins … and then what happened? • Connectors are not as easy as one might hope

Slide 56

Slide 56 text

@holly_cummins … and then what happened? • Connectors are not as easy as one might hope PcDuino battery interface

Slide 57

Slide 57 text

@holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface

Slide 58

Slide 58 text

@holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface

Slide 59

Slide 59 text

@holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface JST-PH

Slide 60

Slide 60 text

@holly_cummins … and then what happened? • Connectors are not as easy as one might hope Popular embeddable battery PcDuino battery interface JST-PH

Slide 61

Slide 61 text

@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

Slide 62

Slide 62 text

@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

Slide 63

Slide 63 text

@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 !&!^@*!

Slide 64

Slide 64 text

@holly_cummins It’s ok! I wired in a battery.

Slide 65

Slide 65 text

@holly_cummins … and then what happened? LiPoly battery. Standard 3.3V output.

Slide 66

Slide 66 text

@holly_cummins … and then what happened? Battery voltage isn’t enough for LEDs. Or sensors. LiPoly battery. Standard 3.3V output.

Slide 67

Slide 67 text

@holly_cummins

Slide 68

Slide 68 text

@holly_cummins It’s ok! I used a USB battery.

Slide 69

Slide 69 text

@holly_cummins It’s ok! I used a USB battery.

Slide 70

Slide 70 text

@holly_cummins It’s ok! I used a USB battery. Un-covered metal batteries short pins.

Slide 71

Slide 71 text

@holly_cummins It’s ok! I added a sock.

Slide 72

Slide 72 text

@holly_cummins It’s ok! I added a sock.

Slide 73

Slide 73 text

@holly_cummins It’s ok! I added a sock. Child will never miss it.

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

No content

Slide 76

Slide 76 text

I’ve fixed this for you.

Slide 77

Slide 77 text

S I’ve fixed this for you.

Slide 78

Slide 78 text

@holly_cummins A USB power connector lived here … and then what happened?

Slide 79

Slide 79 text

@holly_cummins … and then what happened? Another USB power connector lived here

Slide 80

Slide 80 text

@holly_cummins … and then what happened? What does that mean in practice?

Slide 81

Slide 81 text

@holly_cummins … and then what happened? What does that mean in practice? Normally, 0 = bounce. With insufficient voltage, pin is always 0.

Slide 82

Slide 82 text

@holly_cummins … and then what happened? So it infinitely … oh. Oh dear.

Slide 83

Slide 83 text

@holly_cummins … and then what happened?

Slide 84

Slide 84 text

@holly_cummins … and then what happened?

Slide 85

Slide 85 text

@holly_cummins … and then what happened? Motion sensor started smoking, stopped working. Had to buy a new one.

Slide 86

Slide 86 text

@holly_cummins pcDuino stopped working. Had to buy a new one :( … and then what happened?

Slide 87

Slide 87 text

@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?”

Slide 88

Slide 88 text

@holly_cummins … and then what happened?

Slide 89

Slide 89 text

@holly_cummins … and then what happened? It worked faultlessly. Twice in a row.

Slide 90

Slide 90 text

@holly_cummins pcDuino useful stuff The physical world …

Slide 91

Slide 91 text

@holly_cummins pcDuino useful stuff The physical world … bulky protective padding

Slide 92

Slide 92 text

@holly_cummins pcDuino useful stuff … doesn’t fit in hand-luggage. The physical world … bulky protective padding

Slide 93

Slide 93 text

@holly_cummins … and then what happened?

Slide 94

Slide 94 text

@holly_cummins … and then what happened?

Slide 95

Slide 95 text

@holly_cummins … and then what happened? Not supposed to look like that.

Slide 96

Slide 96 text

@holly_cummins … and then what happened? Pin on power board snapped. Remnants of pin in PCB hole. Not supposed to look like that.

Slide 97

Slide 97 text

@holly_cummins … and then what happened?

Slide 98

Slide 98 text

@holly_cummins Solder burns on kitchen counter. … and then what happened?

Slide 99

Slide 99 text

@holly_cummins … and then what happened?

Slide 100

Slide 100 text

@holly_cummins … and then what happened? No power to pcDuino.

Slide 101

Slide 101 text

@holly_cummins … and then what happened? It’s ok! I bought a better powerboost.

Slide 102

Slide 102 text

@holly_cummins … and then what happened?

Slide 103

Slide 103 text

@holly_cummins … and then what happened? No power to pcDuino. Still.

Slide 104

Slide 104 text

@holly_cummins … and then what happened? There’s actually a hole in the battery under all that tape.

Slide 105

Slide 105 text

@holly_cummins What could possibly go wrong with a damaged LiPo battery?

Slide 106

Slide 106 text

No content

Slide 107

Slide 107 text

@holly_cummins It’s ok! I bought a new battery. (and the damaged one isn’t in my house anymore)

Slide 108

Slide 108 text

@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.

Slide 109

Slide 109 text

@holly_cummins - My partner “Holly, I keep telling you you should refuse to do this talk anymore.”

Slide 110

Slide 110 text

@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.)

Slide 111

Slide 111 text

@holly_cummins IoT development checklist

Slide 112

Slide 112 text

@holly_cummins Look before you leap. IoT development checklist

Slide 113

Slide 113 text

@holly_cummins Look before you leap. You will need: IoT development checklist

Slide 114

Slide 114 text

@holly_cummins Look before you leap. You will need: • Spare money IoT development checklist

Slide 115

Slide 115 text

@holly_cummins Look before you leap. You will need: • Spare money • A lot of time IoT development checklist

Slide 116

Slide 116 text

@holly_cummins Look before you leap. You will need: • Spare money • A lot of time • A high tolerance for stress IoT development checklist

Slide 117

Slide 117 text

@holly_cummins –Thomas Edison I have not failed. I've just found 10,000 ways that won't work.

Slide 118

Slide 118 text

@holly_cummins But … what does it all mean?

Slide 119

Slide 119 text

http://www.commitstrip.com/en/2016/05/26/the-internet-of-things-a-revolution/

Slide 120

Slide 120 text

@holly_cummins This is important.

Slide 121

Slide 121 text

@holly_cummins This is important-ish.

Slide 122

Slide 122 text

@holly_cummins

Slide 123

Slide 123 text

@holly_cummins Single-board computers are an amazing revolution.

Slide 124

Slide 124 text

@holly_cummins Single-board computers are an amazing revolution.

Slide 125

Slide 125 text

@holly_cummins Single-board computers are an amazing revolution. Application servers are lighter than you think.

Slide 126

Slide 126 text

@holly_cummins Single-board computers are an amazing revolution. Application servers are lighter than you think.

Slide 127

Slide 127 text

@holly_cummins Single-board computers are an amazing revolution. Application servers are lighter than you think. Java EE is really handy.

Slide 128

Slide 128 text

@holly_cummins

Slide 129

Slide 129 text

@holly_cummins

Slide 130

Slide 130 text

@holly_cummins

Slide 131

Slide 131 text

@holly_cummins

Slide 132

Slide 132 text

@holly_cummins

Slide 133

Slide 133 text

@holly_cummins

Slide 134

Slide 134 text

@holly_cummins WebSphere Liberty installs only the Java EE features needed.

Slide 135

Slide 135 text

@holly_cummins WebSphere Liberty installs only the Java EE features needed.

Slide 136

Slide 136 text

@holly_cummins WebSphere Liberty installs only the Java EE features needed. For my application, that’s a lot of features.

Slide 137

Slide 137 text

@holly_cummins WebSphere Liberty installs only the Java EE features needed. For my application, that’s a lot of features.

Slide 138

Slide 138 text

@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. )

Slide 139

Slide 139 text

@holly_cummins

Slide 140

Slide 140 text

@holly_cummins But is it IoT?

Slide 141

Slide 141 text

@holly_cummins embedded application server Sensors Liberty Architecture

Slide 142

Slide 142 text

@holly_cummins

Slide 143

Slide 143 text

@holly_cummins

Slide 144

Slide 144 text

@holly_cummins Thing

Slide 145

Slide 145 text

@holly_cummins Embedded thing

Slide 146

Slide 146 text

@holly_cummins Very very embedded thing

Slide 147

Slide 147 text

@holly_cummins Very very embedded thing Network, but not internet

Slide 148

Slide 148 text

@holly_cummins

Slide 149

Slide 149 text

@holly_cummins No machine-to-machine

Slide 150

Slide 150 text

@holly_cummins Sensors

Slide 151

Slide 151 text

@holly_cummins Sensors

Slide 152

Slide 152 text

@holly_cummins http://sphere.mybluemix.net/

Slide 153

Slide 153 text

@holly_cummins Bluemix and IoT

Slide 154

Slide 154 text

@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)

Slide 155

Slide 155 text

@holly_cummins www.wasdev.net Any questions? www.wasdev.net ibm.biz/bluemixgaragelondon https://github.com/holly-cummins/throwable-application-server @holly_cummins