Download - The Cuddly Throwable Application Server

Transcript
Page 1: The Cuddly Throwable Application Server

© 2016 IBM Corporation

The

Cuddly, Throwable Application Server

Page 2: The Cuddly Throwable Application Server

@holly_cummins

?

Page 3: The Cuddly Throwable Application Server

@holly_cummins

Page 4: The Cuddly Throwable Application Server

@holly_cummins

Page 5: The Cuddly Throwable Application Server

@holly_cummins

Page 6: The Cuddly Throwable Application Server

@holly_cummins

Page 7: The Cuddly Throwable Application Server

@holly_cummins

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

Page 8: The Cuddly Throwable Application Server

@holly_cummins

Page 9: The Cuddly Throwable Application Server

@holly_cummins

http://ibm.biz/bluemixgaragelondon

Page 10: The Cuddly Throwable Application Server

@holly_cummins

“Computers in the future may weigh no more than 1.5 tons.”

- Popular Mechanics, 1949

Page 11: The Cuddly Throwable Application Server

@holly_cummins

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

IBM1943

Page 12: The Cuddly Throwable Application Server

@holly_cummins

Then: HARDware

Page 13: The Cuddly Throwable Application Server

@holly_cummins

Now: Everyware

Page 14: The Cuddly Throwable Application Server

@holly_cummins

Next: Connected-ware

Page 15: The Cuddly Throwable Application Server

@holly_cummins

Why care about the Internet of Things?

Page 16: The Cuddly Throwable Application Server

@holly_cummins

Why care about the Internet of Things?

This could really benefit my business

Page 17: The Cuddly Throwable Application Server

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

Page 18: The Cuddly Throwable Application Server

@holly_cummins

Poll-time.

Page 19: The Cuddly Throwable Application Server

@holly_cummins

Page 20: The Cuddly Throwable Application Server

@holly_cummins

+

Page 21: The Cuddly Throwable Application Server

@holly_cummins

+

Page 22: The Cuddly Throwable Application Server

@holly_cummins

It was cool.

But it couldn’t move around much.

Page 23: The Cuddly Throwable Application Server

@holly_cummins

pcDuino

Page 24: The Cuddly Throwable Application Server

@holly_cummins

pcDuino

Page 25: The Cuddly Throwable Application Server

@holly_cummins

pcDuino£60

Page 26: The Cuddly Throwable Application Server

@holly_cummins

pcDuino£60

Dual-core CPU

4 GB flash storage

1 GB RAM

“Arduino-ish” pins

Wi-fiBattery

connector

Page 27: The Cuddly Throwable Application Server

@holly_cummins

embedded application

server

Sensors

Liberty

Architecture

Page 28: The Cuddly Throwable Application Server

@holly_cummins

A bit of textile engineering.

Page 29: The Cuddly Throwable Application Server

@holly_cummins

A bit more textile engineering.

Page 30: The Cuddly Throwable Application Server

@holly_cummins

Ta-daa!

Page 31: The Cuddly Throwable Application Server

@holly_cummins

Ta-daa!

Presenting: The WebSphere Sphere

Page 32: The Cuddly Throwable Application Server

@holly_cummins

Ta-daa!

Presenting: The WebSphere Sphere

(“the cuddly application server”)

Page 33: The Cuddly Throwable Application Server

@holly_cummins

Ta-daa!

Presenting: The WebSphere Sphere

(“the cuddly application server”)(“the world’s first throwable application server”)

Page 34: The Cuddly Throwable Application Server

@holly_cummins

Page 35: The Cuddly Throwable Application Server

@holly_cummins

Throwable technology. Not so silly after all.

Page 36: The Cuddly Throwable Application Server

@holly_cummins

Remind you of anything?

Page 37: The Cuddly Throwable Application Server

@holly_cummins

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

Page 38: The Cuddly Throwable Application Server

@holly_cumminsIt’s a computer case

Page 39: The Cuddly Throwable Application Server

@holly_cummins

Interfacing the ball to the computer

LED sequins

Page 40: The Cuddly Throwable Application Server

@holly_cummins

Soft circuits

Page 41: The Cuddly Throwable Application Server

@holly_cummins

Soft circuits

Conductive thread

Page 42: The Cuddly Throwable Application Server

@holly_cummins

Soft circuits

£6.78Conductive thread

Page 43: The Cuddly Throwable Application Server

@holly_cummins

Soft circuits

£6.78Conductive thread

Stainless steel

Page 44: The Cuddly Throwable Application Server

@holly_cummins

Soft circuits

£6.78Conductive thread

Solderable

Stainless steel

Page 45: The Cuddly Throwable Application Server

@holly_cummins

Soft circuits

£6.78Conductive thread

Solderable

Sewable

Stainless steel

Page 46: The Cuddly Throwable Application Server

@holly_cummins

http://pcduino.local

Page 47: The Cuddly Throwable Application Server

@holly_cummins

–My Mother

“Holly, why would anyone want an application server in a cuddly ball?”

Page 48: The Cuddly Throwable Application Server

@holly_cummins

Who wouldn’t want an application server in

a cuddly ball?

Page 49: The Cuddly Throwable Application Server

@holly_cummins

So … did it work?

Page 50: The Cuddly Throwable Application Server

@holly_cummins

So … did it work?

Page 51: The Cuddly Throwable Application Server

@holly_cummins

So … did it work?

pcDuino could never display on any monitor.

Page 52: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 53: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Wires snapped.

Many times.

Page 54: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Wires snapped.

Many times.Inside a unit that had to be disassembled before any repair could be done.

Page 55: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

• Connectors are not as easy as one might hope

Page 56: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

• Connectors are not as easy as one might hopePcDuino

battery interface

Page 57: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

• Connectors are not as easy as one might hope

Popular embeddable

battery

PcDuino battery

interface

Page 58: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

• Connectors are not as easy as one might hope

Popular embeddable

battery

PcDuino battery

interface

Page 59: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

• Connectors are not as easy as one might hope

Popular embeddable

battery

PcDuino battery

interface

JST-PH

Page 60: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

• Connectors are not as easy as one might hope

Popular embeddable

battery

PcDuino battery

interface

JST-PH

Page 61: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

• Connectors are not as easy as one might hope

Popular embeddable

battery

PcDuino battery

interface

JST-PHJST-SH

Page 62: The Cuddly Throwable Application Server

@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

Page 63: The Cuddly Throwable Application Server

@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

!&!^@*!

Page 64: The Cuddly Throwable Application Server

@holly_cummins

It’s ok! I wired in a battery.

Page 65: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

LiPoly battery. Standard 3.3V output.

Page 66: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Battery voltage isn’t enough for LEDs.

Or sensors.

LiPoly battery. Standard 3.3V output.

Page 67: The Cuddly Throwable Application Server

@holly_cummins

Page 68: The Cuddly Throwable Application Server

@holly_cummins

It’s ok! I used a USB battery.

Page 69: The Cuddly Throwable Application Server

@holly_cummins

It’s ok! I used a USB battery.

Page 70: The Cuddly Throwable Application Server

@holly_cummins

It’s ok! I used a USB battery.

Un-covered metal batteries short pins.

Page 71: The Cuddly Throwable Application Server

@holly_cummins

It’s ok! I added a sock.

Page 72: The Cuddly Throwable Application Server

@holly_cummins

It’s ok! I added a sock.

Page 73: The Cuddly Throwable Application Server

@holly_cummins

It’s ok! I added a sock.

Child will never miss it.

Page 74: The Cuddly Throwable Application Server
Page 75: The Cuddly Throwable Application Server
Page 76: The Cuddly Throwable Application Server

I’ve fixed this for you.

Page 77: The Cuddly Throwable Application Server

SI’ve fixed this for you.

Page 78: The Cuddly Throwable Application Server

@holly_cummins

A USB power connector lived

here

… and then what happened?

Page 79: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Another USB power connector

lived here

Page 80: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

What does that mean in practice?

Page 81: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

What does that mean in practice?

Normally, 0 = bounce.With insufficient voltage, pin is always 0.

Page 82: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

So it infinitely … oh. Oh dear.

Page 83: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 84: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 85: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Motion sensor started smoking, stopped working.

Had to buy a new one.

Page 86: The Cuddly Throwable Application Server

@holly_cummins

pcDuino stopped working. Had to buy a new one :(

… and then what happened?

Page 87: The Cuddly Throwable Application Server

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

Page 88: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 89: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

It worked faultlessly.Twice in a row.

Page 90: The Cuddly Throwable Application Server

@holly_cummins

pcDuino

useful stuff

The physical world …

Page 91: The Cuddly Throwable Application Server

@holly_cummins

pcDuino

useful stuff

The physical world …

bulky protective padding

Page 92: The Cuddly Throwable Application Server

@holly_cummins

pcDuino

useful stuff

… doesn’t fit in hand-luggage. The physical world …

bulky protective padding

Page 93: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 94: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 95: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Not supposed to look like

that.

Page 96: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Pin on power board snapped. Remnants of pin in PCB hole.

Not supposed to look like

that.

Page 97: The Cuddly Throwable Application Server

@holly_cummins… and then what happened?

Page 98: The Cuddly Throwable Application Server

@holly_cummins

Solder burns on kitchen counter.

… and then what happened?

Page 99: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 100: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

No power to pcDuino.

Page 101: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

It’s ok! I bought a better powerboost.

Page 102: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

Page 103: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

No power to pcDuino. Still.

Page 104: The Cuddly Throwable Application Server

@holly_cummins

… and then what happened?

There’s actually a hole in the battery under all that

tape.

Page 105: The Cuddly Throwable Application Server

@holly_cummins

What could possibly go wrong with a damaged

LiPo battery?

Page 106: The Cuddly Throwable Application Server
Page 107: The Cuddly Throwable Application Server

@holly_cummins

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

Page 108: The Cuddly Throwable Application Server

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

Page 109: The Cuddly Throwable Application Server

@holly_cummins

- My partner

“Holly, I keep telling you you should refuse to do

this talk anymore.”

Page 110: The Cuddly Throwable Application Server

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

Page 111: The Cuddly Throwable Application Server

@holly_cummins

IoT development checklist

Page 112: The Cuddly Throwable Application Server

@holly_cummins

Look before you leap.

IoT development checklist

Page 113: The Cuddly Throwable Application Server

@holly_cummins

Look before you leap.

You will need:

IoT development checklist

Page 114: The Cuddly Throwable Application Server

@holly_cummins

Look before you leap.

You will need:

• Spare money

IoT development checklist

Page 115: The Cuddly Throwable Application Server

@holly_cummins

Look before you leap.

You will need:

• Spare money

• A lot of time

IoT development checklist

Page 116: The Cuddly Throwable Application Server

@holly_cummins

Look before you leap.

You will need:

• Spare money

• A lot of time

• A high tolerance for stress

IoT development checklist

Page 117: The Cuddly Throwable Application Server

@holly_cummins

–Thomas Edison

I have not failed. I've just found 10,000 ways that won't work.

Page 118: The Cuddly Throwable Application Server

@holly_cummins

But … what does

it all mean?

Page 119: The Cuddly Throwable Application Server

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

Page 120: The Cuddly Throwable Application Server

@holly_cummins

This is important.

Page 121: The Cuddly Throwable Application Server

@holly_cummins

This is important-ish.

Page 122: The Cuddly Throwable Application Server

@holly_cummins

Page 123: The Cuddly Throwable Application Server

@holly_cummins

Single-board computers are an

amazing revolution.

Page 124: The Cuddly Throwable Application Server

@holly_cummins

Single-board computers are an

amazing revolution.

Page 125: The Cuddly Throwable Application Server

@holly_cummins

Single-board computers are an

amazing revolution.

Application servers are lighter than you think.

Page 126: The Cuddly Throwable Application Server

@holly_cummins

Single-board computers are an

amazing revolution.

Application servers are lighter than you think.

Page 127: The Cuddly Throwable Application Server

@holly_cummins

Single-board computers are an

amazing revolution.

Application servers are lighter than you think.

Java EE is really handy.

Page 128: The Cuddly Throwable Application Server

@holly_cummins

Page 129: The Cuddly Throwable Application Server

@holly_cummins

Page 130: The Cuddly Throwable Application Server

@holly_cummins

Page 131: The Cuddly Throwable Application Server

@holly_cummins

Page 132: The Cuddly Throwable Application Server

@holly_cummins

Page 133: The Cuddly Throwable Application Server

@holly_cummins

Page 134: The Cuddly Throwable Application Server

@holly_cummins

WebSphere Liberty installs only the Java EE features needed.

Page 135: The Cuddly Throwable Application Server

@holly_cummins

WebSphere Liberty installs only the Java EE features needed.

Page 136: The Cuddly Throwable Application Server

@holly_cummins

WebSphere Liberty installs only the Java EE features needed.

For my application, that’s a lot of features.

Page 137: The Cuddly Throwable Application Server

@holly_cummins

WebSphere Liberty installs only the Java EE features needed.

For my application, that’s a lot of features.

Page 138: The Cuddly Throwable Application Server

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

Page 139: The Cuddly Throwable Application Server

@holly_cummins

Page 140: The Cuddly Throwable Application Server

@holly_cummins

But is it IoT?

Page 141: The Cuddly Throwable Application Server

@holly_cummins

embedded application

server

Sensors

Liberty

Architecture

Page 142: The Cuddly Throwable Application Server

@holly_cummins

Page 143: The Cuddly Throwable Application Server

@holly_cummins

Page 144: The Cuddly Throwable Application Server

@holly_cummins

Thing

Page 145: The Cuddly Throwable Application Server

@holly_cummins

Embedded thing

Page 146: The Cuddly Throwable Application Server

@holly_cummins

Very very embedded thing

Page 147: The Cuddly Throwable Application Server

@holly_cummins

Very very embedded thing

Network, but not internet

Page 148: The Cuddly Throwable Application Server

@holly_cummins

Page 149: The Cuddly Throwable Application Server

@holly_cummins

No machine-to-machine

Page 150: The Cuddly Throwable Application Server

@holly_cummins

Sensors

Page 151: The Cuddly Throwable Application Server

@holly_cummins

Sensors

Page 152: The Cuddly Throwable Application Server

@holly_cummins

http://sphere.mybluemix.net/

Page 153: The Cuddly Throwable Application Server

@holly_cummins

Bluemix and IoT

Page 154: The Cuddly Throwable Application Server

@holly_cummins

// parse VCAP_SERVICESString 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)

Page 155: The Cuddly Throwable Application Server

@holly_cummins

www.wasdev.net

Any questions? www.wasdev.net

ibm.biz/bluemixgaragelondon https://github.com/holly-cummins/throwable-application-server

@holly_cummins