© 2013 IBM Corporation
Arduinos,!
Application Servers,!
and me
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/arduino-app-server
Presented at QCon London
www.qconlondon.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
?
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
“Computers in the future may weigh
no more than 1.5 tons.”
!
Popular Mechanics,
1949
!
© 2013 IBM Corporation
@holly_cummins
“I think there is a world market for
maybe five computers.”
	
 	
 	
 	
Thomas Watson
chairman of IBM
1943
© 2013 IBM Corporation
@holly_cummins
Then: HARDware
© 2013 IBM Corporation
@holly_cummins
Now: Everyware
© 2013 IBM Corporation
@holly_cummins
Next: Connected-ware
© 2013 IBM Corporation
@holly_cummins
Why care about the Internet of Things?
© 2013 IBM Corporation
@holly_cummins
Why care about the Internet of Things?
It’s the future.
© 2013 IBM Corporation
@holly_cummins
Why care about the Internet of Things?
It’s the future.
“This could really benefit my
business.”
© 2013 IBM Corporation
@holly_cummins
Why care about the Internet of Things?
It’s the future.
“This could really benefit my
business.”
“This is so FUN and COOL and
OOH I made it LIGHT UP!”
© 2013 IBM Corporation
@holly_cummins
Poll-time.
© 2013 IBM Corporation
@holly_cummins
Hmm.
We’ll come back to this.
© 2013 IBM Corporation
@holly_cummins
Working with IoT
© 2013 IBM Corporation
@holly_cummins
Working with IoT: step 1
© 2013 IBM Corporation
@holly_cummins
Working with IoT: step 1
“No, I did NOT mean jot. I meant iot. Gah!”
© 2013 IBM Corporation
@holly_cummins
Working with IoT: step 1
“No, I did NOT mean jot. I meant iot. Gah!”
© 2013 IBM Corporation
@holly_cummins
Working with IoT: step 2
Get some kit
© 2013 IBM Corporation
@holly_cummins
Taxonomy of embedded devices
© 2013 IBM Corporation
@holly_cummins
Taxonomy of embedded devices
Microcontroller
© 2013 IBM Corporation
@holly_cummins
Taxonomy of embedded devices
Microcontroller
Sort-of-a-computer
© 2013 IBM Corporation
@holly_cummins
Taxonomy of embedded devices
Microcontroller
Sort-of-a-computer
Microprocessor
© 2013 IBM Corporation
@holly_cummins
Taxonomy of embedded devices
Microcontroller
Sort-of-a-computer
Microprocessor
Really-a-computer
© 2013 IBM Corporation
@holly_cummins
The microcontroller zoo
© 2013 IBM Corporation
@holly_cummins
The microcontroller zoo
PIC (£2)
© 2013 IBM Corporation
@holly_cummins
The microcontroller zoo
PIC (£2)
Arduino (£23)
© 2013 IBM Corporation
@holly_cummins
The microcontroller zoo
PIC (£2)
Arduino (£23)
Arduino-compatible (£9)
© 2013 IBM Corporation
@holly_cummins
The microcontroller zoo
PIC (£2)
Arduino (£23)
Arduino-compatible (£9)
NetDuino (£48)
© 2013 IBM Corporation
@holly_cummins
The microcontroller zoo
PIC (£2)
Arduino (£23)
Arduino-compatible (£9)
NetDuino (£48)
.NET micro platform
© 2013 IBM Corporation
@holly_cummins
Arduino
© 2013 IBM Corporation
@holly_cummins
Arduino
No on-board ethernet
© 2013 IBM Corporation
@holly_cummins
Arduino
No on-board ethernet
Thing, but no internet
© 2013 IBM Corporation
@holly_cummins
Arduino
No on-board ethernet
Thing, but no internet
Can buy an ethernet shield (£10)
© 2013 IBM Corporation
@holly_cummins
Arduino
No on-board ethernet
Thing, but no internet
Can buy an ethernet shield (£10)
Can buy wi-fi shield (£36, and no WPA2)
© 2013 IBM Corporation
@holly_cummins
Arduino
No on-board ethernet
Thing, but no internet
Can buy an ethernet shield (£10)
Can buy wi-fi shield (£36, and no WPA2)
Can buy a raspberry pi (£20)
© 2013 IBM Corporation
@holly_cummins
Arduino
No on-board ethernet
Thing, but no internet
Can buy an ethernet shield (£10)
Can buy wi-fi shield (£36, and no WPA2)
Can buy a raspberry pi (£20)
Can find a raspberry pi in a drawer
(free!)
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
No flash storage
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
No flash storage
No pins
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
No flash storage
No pins
Netduino (£48)
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
No flash storage
No pins
Netduino (£48)
.NET based
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
No flash storage
No pins
Netduino (£48)
.NET based
pcDuino (£50)
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
No flash storage
No pins
Netduino (£48)
.NET based
pcDuino (£50)
BeagleBone black (£42)
© 2013 IBM Corporation
@holly_cummins
The single board computer zoo
Rasberry pi (£25)
No wi-fi
No flash storage
No pins
Netduino (£48)
.NET based
pcDuino (£50)
BeagleBone black (£42)
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
Limited RAM
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
Limited RAM
Old-model processor
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
Limited RAM
Old-model processor
SD storage
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
Limited RAM
Old-model processor
SD storage
Needs Arduino for IoT applications
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
Limited RAM
Old-model processor
SD storage
Needs Arduino for IoT applications
USB is not my friend
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
Limited RAM
Old-model processor
SD storage
Needs Arduino for IoT applications
USB is not my friend
Insufficient power for reliable wi-fi
© 2013 IBM Corporation
@holly_cummins
Raspberry Pi
£25
Huge community
Well-supported
Slow
Limited RAM
Old-model processor
SD storage
Needs Arduino for IoT applications
USB is not my friend
Insufficient power for reliable wi-fi
Contention if used for wi-fi and Arduino
© 2013 IBM Corporation
@holly_cummins
pcDuino
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
1 GB RAM
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
1 GB RAM
4 GB Flash Storage
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
1 GB RAM
4 GB Flash Storage
On-board wi-fi
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
1 GB RAM
4 GB Flash Storage
On-board wi-fi
Arduino-compatible pins (sort of)
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
1 GB RAM
4 GB Flash Storage
On-board wi-fi
Arduino-compatible pins (sort of)
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
1 GB RAM
4 GB Flash Storage
On-board wi-fi
Arduino-compatible pins (sort of)
Connectors for battery (sort of)
© 2013 IBM Corporation
@holly_cummins
pcDuino
£50
Powerful
1 GHz ARM A7Cortex Dual core
1 GB RAM
4 GB Flash Storage
On-board wi-fi
Arduino-compatible pins (sort of)
Connectors for battery (sort of)
© 2013 IBM Corporation
@holly_cummins
Going mobile
© 2013 IBM Corporation
@holly_cummins
Going mobile
PcDuino
battery
interface
© 2013 IBM Corporation
@holly_cummins
Going mobile
Popular
embeddable
battery
PcDuino
battery
interface
© 2013 IBM Corporation
@holly_cummins
Going mobile
Popular
embeddable
battery
PcDuino
battery
interface
© 2013 IBM Corporation
@holly_cummins
Going mobile
Popular
embeddable
battery
PcDuino
battery
interface
JST-PH
© 2013 IBM Corporation
@holly_cummins
Going mobile
Popular
embeddable
battery
PcDuino
battery
interface
JST-PH
© 2013 IBM Corporation
@holly_cummins
Going mobile
Popular
embeddable
battery
PcDuino
battery
interface
JST-PH
JST-SH
© 2013 IBM Corporation
@holly_cummins
BeagleBone black
£42!
1 GHz processor!
Not arduino-compatible
out of the box
© 2013 IBM Corporation
@holly_cummins
Arduino Yún
© 2013 IBM Corporation
@holly_cummins
Arduino Yún
£57
© 2013 IBM Corporation
@holly_cummins
Arduino Yún
£57
A microcontroller …
© 2013 IBM Corporation
@holly_cummins
Arduino Yún
£57
A microcontroller …
sharing a chip with an Atheros
microprocessor
© 2013 IBM Corporation
@holly_cummins
Arduino Yún
£57
A microcontroller …
sharing a chip with an Atheros
microprocessor
… that runs Linux (limited)
© 2013 IBM Corporation
@holly_cummins
Arduino Yún
£57
A microcontroller …
sharing a chip with an Atheros
microprocessor
… that runs Linux (limited)
… and has WiFi and ethernet
© 2013 IBM Corporation
@holly_cummins
Embedded devices are changing
Modern microcontrollers are
more powerful than
microprocessors from a few
years ago
© 2013 IBM Corporation
@holly_cummins
Why is more powerful better?
You can do more!!
You can know less!
© 2013 IBM Corporation
@holly_cummins
Why is more powerful better?
You can do more!!
You can know less!different things
© 2013 IBM Corporation
@holly_cummins
Why is less powerful better
© 2013 IBM Corporation
@holly_cummins
Why is less powerful better
Smaller
© 2013 IBM Corporation
@holly_cummins
Why is less powerful better
Smaller
Lower power consumption
© 2013 IBM Corporation
@holly_cummins
Why is less powerful better
Smaller
Lower power consumption
Cheaper!
© 2013 IBM Corporation
@holly_cummins
Why is less powerful better
Smaller
Lower power consumption
Cheaper!
Can buy a PIC microcontroller for
£2
© 2013 IBM Corporation
@holly_cummins
Why is more powerful better?
You can have an application
server!!
JPA!
Rest!
WebSockets!
CDI
© 2013 IBM Corporation
@holly_cummins
Ubiquitous computing++
© 2013 IBM Corporation
@holly_cummins
Ubiquitous computing++
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
50 MB download
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
50 MB download
60 MB footprint for biggish JEE app
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
50 MB download
60 MB footprint for biggish JEE app
Starts in under 5s
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
50 MB download
60 MB footprint for biggish JEE app
Starts in under 5s
Entirely modular and dynamic
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
50 MB download
60 MB footprint for biggish JEE app
Starts in under 5s
Entirely modular and dynamic
Powered by OSGi …
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
50 MB download
60 MB footprint for biggish JEE app
Starts in under 5s
Entirely modular and dynamic
Powered by OSGi …
(originally designed for embedded systems)
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
A great fit for embeddables
Very very lightweight
50 MB download
60 MB footprint for biggish JEE app
Starts in under 5s
Entirely modular and dynamic
Powered by OSGi …
(originally designed for embedded systems)
No restarts!
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
Free tools
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
Free tools
Free for development
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
Free tools
Free for development
New licensing: free for small-scale
production
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
Free tools
Free for development
New licensing: free for small-scale
production
Up 2 GB RAM free per organisation
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
Free tools
Free for development
New licensing: free for small-scale
production
Up 2 GB RAM free per organisation
A great fit for embedables
© 2013 IBM Corporation
@holly_cummins
WebSphere Liberty Profile
Free tools
Free for development
New licensing: free for small-scale
production
Up 2 GB RAM free per organisation
A great fit for embedables
Unlikely to use 2 GB RAM on a raspberry pi
© 2013 IBM Corporation
@holly_cummins
Where have I seen this before?
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
Density
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
Density
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
Small download
Density
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density Elasticity
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density Elasticity
© 2013 IBM Corporation
@holly_cummins
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density Elasticity
© 2013 IBM Corporation
@holly_cummins
Enable and disable
function
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density Elasticity
© 2013 IBM Corporation
@holly_cummins
Enable and disable
function
For extra points, do it
dynamically
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density Elasticity
© 2013 IBM Corporation
@holly_cummins
Enable and disable
function
For extra points, do it
dynamically
Easy install
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density Elasticity
© 2013 IBM Corporation
@holly_cummins
Enable and disable
function
For extra points, do it
dynamically
Easy install
Easy uninstall
Cloud-Embeddable convergence
Small download
Small memory
footprint
Density Elasticity
© 2013 IBM Corporation
@holly_cummins
© 2013 IBM Corporation
@holly_cummins
Managing headless devices
© 2013 IBM Corporation
@holly_cummins
Managing headless devices
© 2013 IBM Corporation
@holly_cummins
Managing headless devices
Most single-board
computers accessible
with HDMI display and
USB keyboard.
© 2013 IBM Corporation
@holly_cummins
Managing headless devices
Most single-board
computers accessible
with HDMI display and
USB keyboard.
Works fine…
© 2013 IBM Corporation
@holly_cummins
Managing headless devices
Most single-board
computers accessible
with HDMI display and
USB keyboard.
Works fine…
If you have a display and
cable and keyboard
© 2013 IBM Corporation
@holly_cummins
Managing headless devices
Most single-board
computers accessible
with HDMI display and
USB keyboard.
Works fine…
If you have a display and
cable and keyboard
If the display drivers
support the display
© 2013 IBM Corporation
@holly_cummins
Managing headless devices
Most single-board
computers accessible
with HDMI display and
USB keyboard.
Works fine…
If you have a display and
cable and keyboard
If the display drivers
support the display
© 2013 IBM Corporation
@holly_cummins
Workflow for “pi and seek”
© 2013 IBM Corporation
@holly_cummins
Workflow for “pi and seek”
Ethernet cable
© 2013 IBM Corporation
@holly_cummins
Workflow for “pi and seek”
Ethernet cable
DHCP
© 2013 IBM Corporation
@holly_cummins
Workflow for “pi and seek”
Ethernet cable
DHCP
Network sharing
© 2013 IBM Corporation
@holly_cummins
Getting a connection
© 2013 IBM Corporation
@holly_cummins
Finding the IP address
my-mac:~ holly$ ifconfig | grep -A3 bridge100	
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu
	 options=3<RXCSUM,TXCSUM>	
	 ether 3e:07:54:e0:26:64 	
	 inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255	
!
my-mac:~ holly$ nmap -sn 192.168.2.0/24	
!
Starting Nmap 6.47 ( http://nmap.org ) at 2015-02-28 16:26 GMT	
Strange error from connect (65):No route to host	
Nmap scan report for 192.168.2.3	
Host is up (0.00056s latency).	
Nmap done: 256 IP addresses (1 host up) scanned in 4.16 seconds
© 2013 IBM Corporation
@holly_cummins
A bit of textile engineering.
© 2013 IBM Corporation
@holly_cummins
A bit of textile engineering.
© 2013 IBM Corporation
@holly_cummins
Ta-daa!
© 2013 IBM Corporation
@holly_cummins
Ta-daa!
Presenting:
The WebSphere Sphere
© 2013 IBM Corporation
@holly_cummins
Ta-daa!
Presenting:
The WebSphere Sphere
(“the cuddly application server”)
© 2013 IBM Corporation
@holly_cummins
Remind you of anything?
© 2013 IBM Corporation
@holly_cummins
Um. But it’s lumpy.
© 2013 IBM Corporation
@holly_cummins
Um. But it’s lumpy.
Software faults can be corrected
without re-typing the whole
program.
© 2013 IBM Corporation
@holly_cummins
Um. But it’s lumpy.
Software faults can be corrected
without re-typing the whole
program.
Lucky software engineers.
© 2013 IBM Corporation
@holly_cummins
Um. But it’s lumpy.
Software faults can be corrected
without re-typing the whole
program.
Lucky software engineers.
Iterative development of
physical things is hard.
© 2013 IBM Corporation
@holly_cummins
It’s a computer case
© 2013 IBM Corporation
@holly_cummins
Architecture
Sensors
SSID:
WebSphereembedded
application
server
© 2013 IBM Corporation
@holly_cummins
Interfacing the ball to the computer
LED sequins
© 2013 IBM Corporation
@holly_cummins
Soft circuits
Conductive thread !
Stainless steel!
Sewable!
£6.78
© 2013 IBM Corporation
@holly_cummins
Soft-hard connections
Normal jumper lead!
Strip connector off one side!
Solder to sewable eye
© 2013 IBM Corporation
@holly_cummins
The physical world
© 2013 IBM Corporation
@holly_cummins
The physical world
Shorts
© 2013 IBM Corporation
@holly_cummins
The physical world
Shorts
Extra-bad on a pcDuino, because
they take down whole computer
© 2013 IBM Corporation
@holly_cummins
The physical world
Shorts
Extra-bad on a pcDuino, because
they take down whole computer
Loose connections
© 2013 IBM Corporation
@holly_cummins
The physical world
Shorts
Extra-bad on a pcDuino, because
they take down whole computer
Loose connections
Extra bad in something sealed
© 2013 IBM Corporation
@holly_cummins
Shields
© 2013 IBM Corporation
@holly_cummins
Shields
Daughter-boards for Arduino
© 2013 IBM Corporation
@holly_cummins
Shields
Daughter-boards for Arduino
Re-arrange pins
© 2013 IBM Corporation
@holly_cummins
Shields
Daughter-boards for Arduino
Re-arrange pins
Provide extra function
© 2013 IBM Corporation
@holly_cummins
Shields
Daughter-boards for Arduino
Re-arrange pins
Provide extra function
Provide mechanical protection if a
computer is crammed inside a
ball
© 2013 IBM Corporation
@holly_cummins
Let’s have a play
http://10.12.5.15:9080/sphere
© 2013 IBM Corporation
@holly_cummins
But is it really IoT?
© 2013 IBM Corporation
@holly_cummins
But is it really IoT?
Definitely embedded.
© 2013 IBM Corporation
@holly_cummins
But is it really IoT?
Definitely embedded.
Very very embedded.
© 2013 IBM Corporation
@holly_cummins
But is it really IoT?
Definitely embedded.
Very very embedded.
One thing.
© 2013 IBM Corporation
@holly_cummins
But is it really IoT?
Definitely embedded.
Very very embedded.
One thing.
Network, but not internet.
© 2013 IBM Corporation
@holly_cummins
But is it really IoT?
Definitely embedded.
Very very embedded.
One thing.
Network, but not internet.
No machine-to-machine.
© 2013 IBM Corporation
@holly_cummins
M2M
MQTT!
Lightweight messaging protocol!
OASIS standard!
Widely supported!
Widely used
© 2013 IBM Corporation
@holly_cummins
Revised architecture
© 2013 IBM Corporation
@holly_cummins
Revised architecture
Same
source
© 2013 IBM Corporation
@holly_cummins
!
Demo-time	

(again)	

sphere.mybluemix.net/	

www.wasdev.net
© 2013 IBM Corporation
@holly_cummins
Bluemix and IoT foundation
	 	 // 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/+");
© 2013 IBM Corporation
@holly_cummins
www.wasdev.net
!
Any questions?	

 !
www.wasdev.net	

@holly_cummins
Come see the Liberty car on
the IBM stand today and
tomorrow …
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/arduino-
app-server

When Arduino Meets Application Server: Love at Second Sight

  • 1.
    © 2013 IBMCorporation Arduinos,! Application Servers,! and me
  • 2.
    InfoQ.com: News &Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /arduino-app-server
  • 3.
    Presented at QConLondon www.qconlondon.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  • 4.
    © 2013 IBMCorporation @holly_cummins
  • 5.
    © 2013 IBMCorporation @holly_cummins ?
  • 6.
    © 2013 IBMCorporation @holly_cummins
  • 7.
    © 2013 IBMCorporation @holly_cummins
  • 8.
    © 2013 IBMCorporation @holly_cummins
  • 9.
    © 2013 IBMCorporation @holly_cummins
  • 10.
    © 2013 IBMCorporation @holly_cummins
  • 11.
    © 2013 IBMCorporation @holly_cummins
  • 12.
    © 2013 IBMCorporation @holly_cummins “Computers in the future may weigh no more than 1.5 tons.” ! Popular Mechanics, 1949 !
  • 13.
    © 2013 IBMCorporation @holly_cummins “I think there is a world market for maybe five computers.” Thomas Watson chairman of IBM 1943
  • 14.
    © 2013 IBMCorporation @holly_cummins Then: HARDware
  • 15.
    © 2013 IBMCorporation @holly_cummins Now: Everyware
  • 16.
    © 2013 IBMCorporation @holly_cummins Next: Connected-ware
  • 17.
    © 2013 IBMCorporation @holly_cummins Why care about the Internet of Things?
  • 18.
    © 2013 IBMCorporation @holly_cummins Why care about the Internet of Things? It’s the future.
  • 19.
    © 2013 IBMCorporation @holly_cummins Why care about the Internet of Things? It’s the future. “This could really benefit my business.”
  • 20.
    © 2013 IBMCorporation @holly_cummins Why care about the Internet of Things? It’s the future. “This could really benefit my business.” “This is so FUN and COOL and OOH I made it LIGHT UP!”
  • 21.
    © 2013 IBMCorporation @holly_cummins Poll-time.
  • 22.
    © 2013 IBMCorporation @holly_cummins Hmm. We’ll come back to this.
  • 23.
    © 2013 IBMCorporation @holly_cummins Working with IoT
  • 24.
    © 2013 IBMCorporation @holly_cummins Working with IoT: step 1
  • 25.
    © 2013 IBMCorporation @holly_cummins Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!”
  • 26.
    © 2013 IBMCorporation @holly_cummins Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!”
  • 27.
    © 2013 IBMCorporation @holly_cummins Working with IoT: step 2 Get some kit
  • 28.
    © 2013 IBMCorporation @holly_cummins Taxonomy of embedded devices
  • 29.
    © 2013 IBMCorporation @holly_cummins Taxonomy of embedded devices Microcontroller
  • 30.
    © 2013 IBMCorporation @holly_cummins Taxonomy of embedded devices Microcontroller Sort-of-a-computer
  • 31.
    © 2013 IBMCorporation @holly_cummins Taxonomy of embedded devices Microcontroller Sort-of-a-computer Microprocessor
  • 32.
    © 2013 IBMCorporation @holly_cummins Taxonomy of embedded devices Microcontroller Sort-of-a-computer Microprocessor Really-a-computer
  • 33.
    © 2013 IBMCorporation @holly_cummins The microcontroller zoo
  • 34.
    © 2013 IBMCorporation @holly_cummins The microcontroller zoo PIC (£2)
  • 35.
    © 2013 IBMCorporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23)
  • 36.
    © 2013 IBMCorporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23) Arduino-compatible (£9)
  • 37.
    © 2013 IBMCorporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23) Arduino-compatible (£9) NetDuino (£48)
  • 38.
    © 2013 IBMCorporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23) Arduino-compatible (£9) NetDuino (£48) .NET micro platform
  • 39.
    © 2013 IBMCorporation @holly_cummins Arduino
  • 40.
    © 2013 IBMCorporation @holly_cummins Arduino No on-board ethernet
  • 41.
    © 2013 IBMCorporation @holly_cummins Arduino No on-board ethernet Thing, but no internet
  • 42.
    © 2013 IBMCorporation @holly_cummins Arduino No on-board ethernet Thing, but no internet Can buy an ethernet shield (£10)
  • 43.
    © 2013 IBMCorporation @holly_cummins Arduino No on-board ethernet Thing, but no internet Can buy an ethernet shield (£10) Can buy wi-fi shield (£36, and no WPA2)
  • 44.
    © 2013 IBMCorporation @holly_cummins Arduino No on-board ethernet Thing, but no internet Can buy an ethernet shield (£10) Can buy wi-fi shield (£36, and no WPA2) Can buy a raspberry pi (£20)
  • 45.
    © 2013 IBMCorporation @holly_cummins Arduino No on-board ethernet Thing, but no internet Can buy an ethernet shield (£10) Can buy wi-fi shield (£36, and no WPA2) Can buy a raspberry pi (£20) Can find a raspberry pi in a drawer (free!)
  • 46.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo
  • 47.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25)
  • 48.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi
  • 49.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage
  • 50.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins
  • 51.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins Netduino (£48)
  • 52.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins Netduino (£48) .NET based
  • 53.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins Netduino (£48) .NET based pcDuino (£50)
  • 54.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins Netduino (£48) .NET based pcDuino (£50) BeagleBone black (£42)
  • 55.
    © 2013 IBMCorporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins Netduino (£48) .NET based pcDuino (£50) BeagleBone black (£42)
  • 56.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi
  • 57.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25
  • 58.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community
  • 59.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported
  • 60.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow
  • 61.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM
  • 62.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor
  • 63.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor SD storage
  • 64.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor SD storage Needs Arduino for IoT applications
  • 65.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor SD storage Needs Arduino for IoT applications USB is not my friend
  • 66.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor SD storage Needs Arduino for IoT applications USB is not my friend Insufficient power for reliable wi-fi
  • 67.
    © 2013 IBMCorporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor SD storage Needs Arduino for IoT applications USB is not my friend Insufficient power for reliable wi-fi Contention if used for wi-fi and Arduino
  • 68.
    © 2013 IBMCorporation @holly_cummins pcDuino
  • 69.
    © 2013 IBMCorporation @holly_cummins pcDuino £50
  • 70.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful
  • 71.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core
  • 72.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM
  • 73.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM 4 GB Flash Storage
  • 74.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM 4 GB Flash Storage On-board wi-fi
  • 75.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM 4 GB Flash Storage On-board wi-fi Arduino-compatible pins (sort of)
  • 76.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM 4 GB Flash Storage On-board wi-fi Arduino-compatible pins (sort of)
  • 77.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM 4 GB Flash Storage On-board wi-fi Arduino-compatible pins (sort of) Connectors for battery (sort of)
  • 78.
    © 2013 IBMCorporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM 4 GB Flash Storage On-board wi-fi Arduino-compatible pins (sort of) Connectors for battery (sort of)
  • 79.
    © 2013 IBMCorporation @holly_cummins Going mobile
  • 80.
    © 2013 IBMCorporation @holly_cummins Going mobile PcDuino battery interface
  • 81.
    © 2013 IBMCorporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface
  • 82.
    © 2013 IBMCorporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface
  • 83.
    © 2013 IBMCorporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface JST-PH
  • 84.
    © 2013 IBMCorporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface JST-PH
  • 85.
    © 2013 IBMCorporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface JST-PH JST-SH
  • 86.
    © 2013 IBMCorporation @holly_cummins BeagleBone black £42! 1 GHz processor! Not arduino-compatible out of the box
  • 87.
    © 2013 IBMCorporation @holly_cummins Arduino Yún
  • 88.
    © 2013 IBMCorporation @holly_cummins Arduino Yún £57
  • 89.
    © 2013 IBMCorporation @holly_cummins Arduino Yún £57 A microcontroller …
  • 90.
    © 2013 IBMCorporation @holly_cummins Arduino Yún £57 A microcontroller … sharing a chip with an Atheros microprocessor
  • 91.
    © 2013 IBMCorporation @holly_cummins Arduino Yún £57 A microcontroller … sharing a chip with an Atheros microprocessor … that runs Linux (limited)
  • 92.
    © 2013 IBMCorporation @holly_cummins Arduino Yún £57 A microcontroller … sharing a chip with an Atheros microprocessor … that runs Linux (limited) … and has WiFi and ethernet
  • 93.
    © 2013 IBMCorporation @holly_cummins Embedded devices are changing Modern microcontrollers are more powerful than microprocessors from a few years ago
  • 94.
    © 2013 IBMCorporation @holly_cummins Why is more powerful better? You can do more!! You can know less!
  • 95.
    © 2013 IBMCorporation @holly_cummins Why is more powerful better? You can do more!! You can know less!different things
  • 96.
    © 2013 IBMCorporation @holly_cummins Why is less powerful better
  • 97.
    © 2013 IBMCorporation @holly_cummins Why is less powerful better Smaller
  • 98.
    © 2013 IBMCorporation @holly_cummins Why is less powerful better Smaller Lower power consumption
  • 99.
    © 2013 IBMCorporation @holly_cummins Why is less powerful better Smaller Lower power consumption Cheaper!
  • 100.
    © 2013 IBMCorporation @holly_cummins Why is less powerful better Smaller Lower power consumption Cheaper! Can buy a PIC microcontroller for £2
  • 101.
    © 2013 IBMCorporation @holly_cummins Why is more powerful better? You can have an application server!! JPA! Rest! WebSockets! CDI
  • 102.
    © 2013 IBMCorporation @holly_cummins Ubiquitous computing++
  • 103.
    © 2013 IBMCorporation @holly_cummins Ubiquitous computing++
  • 104.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile
  • 105.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables
  • 106.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight
  • 107.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download
  • 108.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download 60 MB footprint for biggish JEE app
  • 109.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download 60 MB footprint for biggish JEE app Starts in under 5s
  • 110.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download 60 MB footprint for biggish JEE app Starts in under 5s Entirely modular and dynamic
  • 111.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download 60 MB footprint for biggish JEE app Starts in under 5s Entirely modular and dynamic Powered by OSGi …
  • 112.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download 60 MB footprint for biggish JEE app Starts in under 5s Entirely modular and dynamic Powered by OSGi … (originally designed for embedded systems)
  • 113.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download 60 MB footprint for biggish JEE app Starts in under 5s Entirely modular and dynamic Powered by OSGi … (originally designed for embedded systems) No restarts!
  • 114.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile
  • 115.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile Free tools
  • 116.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile Free tools Free for development
  • 117.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile Free tools Free for development New licensing: free for small-scale production
  • 118.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile Free tools Free for development New licensing: free for small-scale production Up 2 GB RAM free per organisation
  • 119.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile Free tools Free for development New licensing: free for small-scale production Up 2 GB RAM free per organisation A great fit for embedables
  • 120.
    © 2013 IBMCorporation @holly_cummins WebSphere Liberty Profile Free tools Free for development New licensing: free for small-scale production Up 2 GB RAM free per organisation A great fit for embedables Unlikely to use 2 GB RAM on a raspberry pi
  • 121.
    © 2013 IBMCorporation @holly_cummins Where have I seen this before?
  • 122.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence
  • 123.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence Density
  • 124.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence Density
  • 125.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence Small download Density
  • 126.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density
  • 127.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 128.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 129.
    © 2013 IBMCorporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 130.
    © 2013 IBMCorporation @holly_cummins Enable and disable function Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 131.
    © 2013 IBMCorporation @holly_cummins Enable and disable function For extra points, do it dynamically Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 132.
    © 2013 IBMCorporation @holly_cummins Enable and disable function For extra points, do it dynamically Easy install Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 133.
    © 2013 IBMCorporation @holly_cummins Enable and disable function For extra points, do it dynamically Easy install Easy uninstall Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 134.
    © 2013 IBMCorporation @holly_cummins
  • 135.
    © 2013 IBMCorporation @holly_cummins Managing headless devices
  • 136.
    © 2013 IBMCorporation @holly_cummins Managing headless devices
  • 137.
    © 2013 IBMCorporation @holly_cummins Managing headless devices Most single-board computers accessible with HDMI display and USB keyboard.
  • 138.
    © 2013 IBMCorporation @holly_cummins Managing headless devices Most single-board computers accessible with HDMI display and USB keyboard. Works fine…
  • 139.
    © 2013 IBMCorporation @holly_cummins Managing headless devices Most single-board computers accessible with HDMI display and USB keyboard. Works fine… If you have a display and cable and keyboard
  • 140.
    © 2013 IBMCorporation @holly_cummins Managing headless devices Most single-board computers accessible with HDMI display and USB keyboard. Works fine… If you have a display and cable and keyboard If the display drivers support the display
  • 141.
    © 2013 IBMCorporation @holly_cummins Managing headless devices Most single-board computers accessible with HDMI display and USB keyboard. Works fine… If you have a display and cable and keyboard If the display drivers support the display
  • 142.
    © 2013 IBMCorporation @holly_cummins Workflow for “pi and seek”
  • 143.
    © 2013 IBMCorporation @holly_cummins Workflow for “pi and seek” Ethernet cable
  • 144.
    © 2013 IBMCorporation @holly_cummins Workflow for “pi and seek” Ethernet cable DHCP
  • 145.
    © 2013 IBMCorporation @holly_cummins Workflow for “pi and seek” Ethernet cable DHCP Network sharing
  • 146.
    © 2013 IBMCorporation @holly_cummins Getting a connection
  • 147.
    © 2013 IBMCorporation @holly_cummins Finding the IP address my-mac:~ holly$ ifconfig | grep -A3 bridge100 bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu options=3<RXCSUM,TXCSUM> ether 3e:07:54:e0:26:64 inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255 ! my-mac:~ holly$ nmap -sn 192.168.2.0/24 ! Starting Nmap 6.47 ( http://nmap.org ) at 2015-02-28 16:26 GMT Strange error from connect (65):No route to host Nmap scan report for 192.168.2.3 Host is up (0.00056s latency). Nmap done: 256 IP addresses (1 host up) scanned in 4.16 seconds
  • 148.
    © 2013 IBMCorporation @holly_cummins A bit of textile engineering.
  • 149.
    © 2013 IBMCorporation @holly_cummins A bit of textile engineering.
  • 150.
    © 2013 IBMCorporation @holly_cummins Ta-daa!
  • 151.
    © 2013 IBMCorporation @holly_cummins Ta-daa! Presenting: The WebSphere Sphere
  • 152.
    © 2013 IBMCorporation @holly_cummins Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”)
  • 153.
    © 2013 IBMCorporation @holly_cummins Remind you of anything?
  • 154.
    © 2013 IBMCorporation @holly_cummins Um. But it’s lumpy.
  • 155.
    © 2013 IBMCorporation @holly_cummins Um. But it’s lumpy. Software faults can be corrected without re-typing the whole program.
  • 156.
    © 2013 IBMCorporation @holly_cummins Um. But it’s lumpy. Software faults can be corrected without re-typing the whole program. Lucky software engineers.
  • 157.
    © 2013 IBMCorporation @holly_cummins Um. But it’s lumpy. Software faults can be corrected without re-typing the whole program. Lucky software engineers. Iterative development of physical things is hard.
  • 158.
    © 2013 IBMCorporation @holly_cummins It’s a computer case
  • 159.
    © 2013 IBMCorporation @holly_cummins Architecture Sensors SSID: WebSphereembedded application server
  • 160.
    © 2013 IBMCorporation @holly_cummins Interfacing the ball to the computer LED sequins
  • 161.
    © 2013 IBMCorporation @holly_cummins Soft circuits Conductive thread ! Stainless steel! Sewable! £6.78
  • 162.
    © 2013 IBMCorporation @holly_cummins Soft-hard connections Normal jumper lead! Strip connector off one side! Solder to sewable eye
  • 163.
    © 2013 IBMCorporation @holly_cummins The physical world
  • 164.
    © 2013 IBMCorporation @holly_cummins The physical world Shorts
  • 165.
    © 2013 IBMCorporation @holly_cummins The physical world Shorts Extra-bad on a pcDuino, because they take down whole computer
  • 166.
    © 2013 IBMCorporation @holly_cummins The physical world Shorts Extra-bad on a pcDuino, because they take down whole computer Loose connections
  • 167.
    © 2013 IBMCorporation @holly_cummins The physical world Shorts Extra-bad on a pcDuino, because they take down whole computer Loose connections Extra bad in something sealed
  • 168.
    © 2013 IBMCorporation @holly_cummins Shields
  • 169.
    © 2013 IBMCorporation @holly_cummins Shields Daughter-boards for Arduino
  • 170.
    © 2013 IBMCorporation @holly_cummins Shields Daughter-boards for Arduino Re-arrange pins
  • 171.
    © 2013 IBMCorporation @holly_cummins Shields Daughter-boards for Arduino Re-arrange pins Provide extra function
  • 172.
    © 2013 IBMCorporation @holly_cummins Shields Daughter-boards for Arduino Re-arrange pins Provide extra function Provide mechanical protection if a computer is crammed inside a ball
  • 173.
    © 2013 IBMCorporation @holly_cummins Let’s have a play http://10.12.5.15:9080/sphere
  • 174.
    © 2013 IBMCorporation @holly_cummins But is it really IoT?
  • 175.
    © 2013 IBMCorporation @holly_cummins But is it really IoT? Definitely embedded.
  • 176.
    © 2013 IBMCorporation @holly_cummins But is it really IoT? Definitely embedded. Very very embedded.
  • 177.
    © 2013 IBMCorporation @holly_cummins But is it really IoT? Definitely embedded. Very very embedded. One thing.
  • 178.
    © 2013 IBMCorporation @holly_cummins But is it really IoT? Definitely embedded. Very very embedded. One thing. Network, but not internet.
  • 179.
    © 2013 IBMCorporation @holly_cummins But is it really IoT? Definitely embedded. Very very embedded. One thing. Network, but not internet. No machine-to-machine.
  • 180.
    © 2013 IBMCorporation @holly_cummins M2M MQTT! Lightweight messaging protocol! OASIS standard! Widely supported! Widely used
  • 181.
    © 2013 IBMCorporation @holly_cummins Revised architecture
  • 182.
    © 2013 IBMCorporation @holly_cummins Revised architecture Same source
  • 183.
    © 2013 IBMCorporation @holly_cummins ! Demo-time (again) sphere.mybluemix.net/ www.wasdev.net
  • 184.
    © 2013 IBMCorporation @holly_cummins Bluemix and IoT foundation // 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/+");
  • 185.
    © 2013 IBMCorporation @holly_cummins www.wasdev.net ! Any questions? ! www.wasdev.net @holly_cummins Come see the Liberty car on the IBM stand today and tomorrow …
  • 186.
    Watch the videowith slide synchronization on InfoQ.com! http://www.infoq.com/presentations/arduino- app-server