the cuddly throwable application server
TRANSCRIPT
© 2016 IBM Corporation
The
Cuddly, Throwable Application Server
@holly_cummins
?
@holly_cummins
@holly_cummins
@holly_cummins
@holly_cummins
@holly_cummins
What is the Bluemix Garage? (It’s not actually a Garage.)
@holly_cummins
@holly_cummins
“Computers in the future may weigh no more than 1.5 tons.”
- Popular Mechanics, 1949
@holly_cummins
“I think there is a world market for maybe five computers.” — Thomas Watson, chairman of
IBM1943
@holly_cummins
Then: HARDware
@holly_cummins
Now: Everyware
@holly_cummins
Next: Connected-ware
@holly_cummins
Why care about the Internet of Things?
@holly_cummins
Why care about the Internet of Things?
This could really benefit my business
@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!”
@holly_cummins
Poll-time.
@holly_cummins
@holly_cummins
+
@holly_cummins
+
@holly_cummins
It was cool.
But it couldn’t move around much.
@holly_cummins
pcDuino
@holly_cummins
pcDuino
@holly_cummins
pcDuino£60
@holly_cummins
pcDuino£60
Dual-core CPU
4 GB flash storage
1 GB RAM
“Arduino-ish” pins
Wi-fiBattery
connector
@holly_cummins
embedded application
server
Sensors
Liberty
Architecture
@holly_cummins
A bit of textile engineering.
@holly_cummins
A bit more textile engineering.
@holly_cummins
Ta-daa!
@holly_cummins
Ta-daa!
Presenting: The WebSphere Sphere
@holly_cummins
Ta-daa!
Presenting: The WebSphere Sphere
(“the cuddly application server”)
@holly_cummins
Ta-daa!
Presenting: The WebSphere Sphere
(“the cuddly application server”)(“the world’s first throwable application server”)
@holly_cummins
@holly_cummins
Throwable technology. Not so silly after all.
@holly_cummins
Remind you of anything?
@holly_cummins
Not really. It’s very lumpy, isn’t it?
@holly_cumminsIt’s a computer case
@holly_cummins
Interfacing the ball to the computer
LED sequins
@holly_cummins
Soft circuits
@holly_cummins
Soft circuits
Conductive thread
@holly_cummins
Soft circuits
£6.78Conductive thread
@holly_cummins
Soft circuits
£6.78Conductive thread
Stainless steel
@holly_cummins
Soft circuits
£6.78Conductive thread
Solderable
Stainless steel
@holly_cummins
Soft circuits
£6.78Conductive thread
Solderable
Sewable
Stainless steel
@holly_cummins
–My Mother
“Holly, why would anyone want an application server in a cuddly ball?”
@holly_cummins
Who wouldn’t want an application server in
a cuddly ball?
@holly_cummins
So … did it work?
@holly_cummins
So … did it work?
@holly_cummins
So … did it work?
pcDuino could never display on any monitor.
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
Wires snapped.
Many times.
@holly_cummins
… and then what happened?
Wires snapped.
Many times.Inside a unit that had to be disassembled before any repair could be done.
@holly_cummins
… and then what happened?
• Connectors are not as easy as one might hope
@holly_cummins
… and then what happened?
• Connectors are not as easy as one might hopePcDuino
battery interface
@holly_cummins
… and then what happened?
• Connectors are not as easy as one might hope
Popular embeddable
battery
PcDuino battery
interface
@holly_cummins
… and then what happened?
• Connectors are not as easy as one might hope
Popular embeddable
battery
PcDuino battery
interface
@holly_cummins
… and then what happened?
• Connectors are not as easy as one might hope
Popular embeddable
battery
PcDuino battery
interface
JST-PH
@holly_cummins
… and then what happened?
• Connectors are not as easy as one might hope
Popular embeddable
battery
PcDuino battery
interface
JST-PH
@holly_cummins
… and then what happened?
• Connectors are not as easy as one might hope
Popular embeddable
battery
PcDuino battery
interface
JST-PHJST-SH
@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
@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
!&!^@*!
@holly_cummins
It’s ok! I wired in a battery.
@holly_cummins
… and then what happened?
LiPoly battery. Standard 3.3V output.
@holly_cummins
… and then what happened?
Battery voltage isn’t enough for LEDs.
Or sensors.
LiPoly battery. Standard 3.3V output.
@holly_cummins
@holly_cummins
It’s ok! I used a USB battery.
@holly_cummins
It’s ok! I used a USB battery.
@holly_cummins
It’s ok! I used a USB battery.
Un-covered metal batteries short pins.
@holly_cummins
It’s ok! I added a sock.
@holly_cummins
It’s ok! I added a sock.
@holly_cummins
It’s ok! I added a sock.
Child will never miss it.
I’ve fixed this for you.
SI’ve fixed this for you.
@holly_cummins
A USB power connector lived
here
… and then what happened?
@holly_cummins
… and then what happened?
Another USB power connector
lived here
@holly_cummins
… and then what happened?
What does that mean in practice?
@holly_cummins
… and then what happened?
What does that mean in practice?
Normally, 0 = bounce.With insufficient voltage, pin is always 0.
@holly_cummins
… and then what happened?
So it infinitely … oh. Oh dear.
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
Motion sensor started smoking, stopped working.
Had to buy a new one.
@holly_cummins
pcDuino stopped working. Had to buy a new one :(
… and then what happened?
@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?”
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
It worked faultlessly.Twice in a row.
@holly_cummins
pcDuino
useful stuff
The physical world …
@holly_cummins
pcDuino
useful stuff
The physical world …
bulky protective padding
@holly_cummins
pcDuino
useful stuff
… doesn’t fit in hand-luggage. The physical world …
bulky protective padding
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
Not supposed to look like
that.
@holly_cummins
… and then what happened?
Pin on power board snapped. Remnants of pin in PCB hole.
Not supposed to look like
that.
@holly_cummins… and then what happened?
@holly_cummins
Solder burns on kitchen counter.
… and then what happened?
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
No power to pcDuino.
@holly_cummins
… and then what happened?
It’s ok! I bought a better powerboost.
@holly_cummins
… and then what happened?
@holly_cummins
… and then what happened?
No power to pcDuino. Still.
@holly_cummins
… and then what happened?
There’s actually a hole in the battery under all that
tape.
@holly_cummins
What could possibly go wrong with a damaged
LiPo battery?
@holly_cummins
It’s ok! I bought a new battery. (and the damaged one isn’t in my house anymore)
@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.
@holly_cummins
- My partner
“Holly, I keep telling you you should refuse to do
this talk anymore.”
@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.)
@holly_cummins
IoT development checklist
@holly_cummins
Look before you leap.
IoT development checklist
@holly_cummins
Look before you leap.
You will need:
IoT development checklist
@holly_cummins
Look before you leap.
You will need:
• Spare money
IoT development checklist
@holly_cummins
Look before you leap.
You will need:
• Spare money
• A lot of time
IoT development checklist
@holly_cummins
Look before you leap.
You will need:
• Spare money
• A lot of time
• A high tolerance for stress
IoT development checklist
@holly_cummins
–Thomas Edison
I have not failed. I've just found 10,000 ways that won't work.
@holly_cummins
But … what does
it all mean?
http://www.commitstrip.com/en/2016/05/26/the-internet-of-things-a-revolution/
@holly_cummins
This is important.
@holly_cummins
This is important-ish.
@holly_cummins
@holly_cummins
Single-board computers are an
amazing revolution.
@holly_cummins
Single-board computers are an
amazing revolution.
@holly_cummins
Single-board computers are an
amazing revolution.
Application servers are lighter than you think.
@holly_cummins
Single-board computers are an
amazing revolution.
Application servers are lighter than you think.
@holly_cummins
Single-board computers are an
amazing revolution.
Application servers are lighter than you think.
Java EE is really handy.
@holly_cummins
@holly_cummins
@holly_cummins
@holly_cummins
@holly_cummins
@holly_cummins
@holly_cummins
WebSphere Liberty installs only the Java EE features needed.
@holly_cummins
WebSphere Liberty installs only the Java EE features needed.
@holly_cummins
WebSphere Liberty installs only the Java EE features needed.
For my application, that’s a lot of features.
@holly_cummins
WebSphere Liberty installs only the Java EE features needed.
For my application, that’s a lot of features.
@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. )
@holly_cummins
@holly_cummins
But is it IoT?
@holly_cummins
embedded application
server
Sensors
Liberty
Architecture
@holly_cummins
@holly_cummins
@holly_cummins
Thing
@holly_cummins
Embedded thing
@holly_cummins
Very very embedded thing
@holly_cummins
Very very embedded thing
Network, but not internet
@holly_cummins
@holly_cummins
No machine-to-machine
@holly_cummins
Sensors
@holly_cummins
Sensors
@holly_cummins
Bluemix and IoT
@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)
@holly_cummins
www.wasdev.net
Any questions? www.wasdev.net
ibm.biz/bluemixgaragelondon https://github.com/holly-cummins/throwable-application-server
@holly_cummins