SlideShare ist ein Scribd-Unternehmen logo
1 von 186
© 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

Weitere ähnliche Inhalte

Ähnlich wie When Arduino Meets Application Server: Love at Second Sight

Airstream extended
Airstream extendedAirstream extended
Airstream extended
Jitin Pillai
 
Innovation at Meraki
Innovation at MerakiInnovation at Meraki
Innovation at Meraki
Cisco Canada
 
Jmp303 the great howto 5
Jmp303 the great howto 5Jmp303 the great howto 5
Jmp303 the great howto 5
Mats Jansson
 
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT Group
 
Polycom RealPresence Trio 8800 for Microsoft Office 365 and Skype
Polycom RealPresence Trio 8800 for Microsoft Office 365 and SkypePolycom RealPresence Trio 8800 for Microsoft Office 365 and Skype
Polycom RealPresence Trio 8800 for Microsoft Office 365 and Skype
David J Rosenthal
 

Ähnlich wie When Arduino Meets Application Server: Love at Second Sight (20)

Intimate Things: How Wearables Are Changing The Internet of Things
Intimate Things: How Wearables Are Changing The Internet of ThingsIntimate Things: How Wearables Are Changing The Internet of Things
Intimate Things: How Wearables Are Changing The Internet of Things
 
Empowering Students with Mobility and BYOD Technology
Empowering Students with Mobility and BYOD TechnologyEmpowering Students with Mobility and BYOD Technology
Empowering Students with Mobility and BYOD Technology
 
Creating Compelling Mobile User Experiences
Creating Compelling Mobile User ExperiencesCreating Compelling Mobile User Experiences
Creating Compelling Mobile User Experiences
 
TCUK 2013 Presentation Adrian Warman
TCUK 2013 Presentation Adrian WarmanTCUK 2013 Presentation Adrian Warman
TCUK 2013 Presentation Adrian Warman
 
Eat your own dog food, ein Hobby wird zum Produkt
Eat your own dog food, ein Hobby wird zum ProduktEat your own dog food, ein Hobby wird zum Produkt
Eat your own dog food, ein Hobby wird zum Produkt
 
Superfast Business: Getting the most out of iPads
Superfast Business: Getting the most out of iPadsSuperfast Business: Getting the most out of iPads
Superfast Business: Getting the most out of iPads
 
Airstream extended
Airstream extendedAirstream extended
Airstream extended
 
Streaming media east a204 lurie final
Streaming media east a204 lurie finalStreaming media east a204 lurie final
Streaming media east a204 lurie final
 
Innovation at Meraki
Innovation at MerakiInnovation at Meraki
Innovation at Meraki
 
Mobile Development on a Shoestring Connection
Mobile Development on a Shoestring ConnectionMobile Development on a Shoestring Connection
Mobile Development on a Shoestring Connection
 
Thinking Strategically about IoT
Thinking Strategically about IoTThinking Strategically about IoT
Thinking Strategically about IoT
 
Jmp303 the great howto 5
Jmp303 the great howto 5Jmp303 the great howto 5
Jmp303 the great howto 5
 
Talk at the Landelijk Architecure Congress (NL)
Talk at the Landelijk Architecure Congress (NL)Talk at the Landelijk Architecure Congress (NL)
Talk at the Landelijk Architecure Congress (NL)
 
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
 
IoT Hardware – The Backbone of Smart Devices.pdf
IoT Hardware – The Backbone of Smart Devices.pdfIoT Hardware – The Backbone of Smart Devices.pdf
IoT Hardware – The Backbone of Smart Devices.pdf
 
Polycom RealPresence Trio 8800 for Microsoft Office 365 and Skype
Polycom RealPresence Trio 8800 for Microsoft Office 365 and SkypePolycom RealPresence Trio 8800 for Microsoft Office 365 and Skype
Polycom RealPresence Trio 8800 for Microsoft Office 365 and Skype
 
Working in the Cloud for the CRB
Working in the Cloud for the CRBWorking in the Cloud for the CRB
Working in the Cloud for the CRB
 
Stand Out Customer Experience
Stand Out Customer ExperienceStand Out Customer Experience
Stand Out Customer Experience
 
Technology update
Technology updateTechnology update
Technology update
 
Technology update
Technology updateTechnology update
Technology update
 

Mehr von C4Media

Mehr von C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

When Arduino Meets Application Server: Love at Second Sight

  • 1. © 2013 IBM Corporation 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 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
  • 4. © 2013 IBM Corporation @holly_cummins
  • 5. © 2013 IBM Corporation @holly_cummins ?
  • 6. © 2013 IBM Corporation @holly_cummins
  • 7. © 2013 IBM Corporation @holly_cummins
  • 8. © 2013 IBM Corporation @holly_cummins
  • 9. © 2013 IBM Corporation @holly_cummins
  • 10. © 2013 IBM Corporation @holly_cummins
  • 11. © 2013 IBM Corporation @holly_cummins
  • 12. © 2013 IBM Corporation @holly_cummins “Computers in the future may weigh no more than 1.5 tons.” ! Popular Mechanics, 1949 !
  • 13. © 2013 IBM Corporation @holly_cummins “I think there is a world market for maybe five computers.” Thomas Watson chairman of IBM 1943
  • 14. © 2013 IBM Corporation @holly_cummins Then: HARDware
  • 15. © 2013 IBM Corporation @holly_cummins Now: Everyware
  • 16. © 2013 IBM Corporation @holly_cummins Next: Connected-ware
  • 17. © 2013 IBM Corporation @holly_cummins Why care about the Internet of Things?
  • 18. © 2013 IBM Corporation @holly_cummins Why care about the Internet of Things? It’s the future.
  • 19. © 2013 IBM Corporation @holly_cummins Why care about the Internet of Things? It’s the future. “This could really benefit my business.”
  • 20. © 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!”
  • 21. © 2013 IBM Corporation @holly_cummins Poll-time.
  • 22. © 2013 IBM Corporation @holly_cummins Hmm. We’ll come back to this.
  • 23. © 2013 IBM Corporation @holly_cummins Working with IoT
  • 24. © 2013 IBM Corporation @holly_cummins Working with IoT: step 1
  • 25. © 2013 IBM Corporation @holly_cummins Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!”
  • 26. © 2013 IBM Corporation @holly_cummins Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!”
  • 27. © 2013 IBM Corporation @holly_cummins Working with IoT: step 2 Get some kit
  • 28. © 2013 IBM Corporation @holly_cummins Taxonomy of embedded devices
  • 29. © 2013 IBM Corporation @holly_cummins Taxonomy of embedded devices Microcontroller
  • 30. © 2013 IBM Corporation @holly_cummins Taxonomy of embedded devices Microcontroller Sort-of-a-computer
  • 31. © 2013 IBM Corporation @holly_cummins Taxonomy of embedded devices Microcontroller Sort-of-a-computer Microprocessor
  • 32. © 2013 IBM Corporation @holly_cummins Taxonomy of embedded devices Microcontroller Sort-of-a-computer Microprocessor Really-a-computer
  • 33. © 2013 IBM Corporation @holly_cummins The microcontroller zoo
  • 34. © 2013 IBM Corporation @holly_cummins The microcontroller zoo PIC (£2)
  • 35. © 2013 IBM Corporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23)
  • 36. © 2013 IBM Corporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23) Arduino-compatible (£9)
  • 37. © 2013 IBM Corporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23) Arduino-compatible (£9) NetDuino (£48)
  • 38. © 2013 IBM Corporation @holly_cummins The microcontroller zoo PIC (£2) Arduino (£23) Arduino-compatible (£9) NetDuino (£48) .NET micro platform
  • 39. © 2013 IBM Corporation @holly_cummins Arduino
  • 40. © 2013 IBM Corporation @holly_cummins Arduino No on-board ethernet
  • 41. © 2013 IBM Corporation @holly_cummins Arduino No on-board ethernet Thing, but no internet
  • 42. © 2013 IBM Corporation @holly_cummins Arduino No on-board ethernet Thing, but no internet Can buy an ethernet shield (£10)
  • 43. © 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)
  • 44. © 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)
  • 45. © 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!)
  • 46. © 2013 IBM Corporation @holly_cummins The single board computer zoo
  • 47. © 2013 IBM Corporation @holly_cummins The single board computer zoo Rasberry pi (£25)
  • 48. © 2013 IBM Corporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi
  • 49. © 2013 IBM Corporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage
  • 50. © 2013 IBM Corporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins
  • 51. © 2013 IBM Corporation @holly_cummins The single board computer zoo Rasberry pi (£25) No wi-fi No flash storage No pins Netduino (£48)
  • 52. © 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
  • 53. © 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)
  • 54. © 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)
  • 55. © 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)
  • 56. © 2013 IBM Corporation @holly_cummins Raspberry Pi
  • 57. © 2013 IBM Corporation @holly_cummins Raspberry Pi £25
  • 58. © 2013 IBM Corporation @holly_cummins Raspberry Pi £25 Huge community
  • 59. © 2013 IBM Corporation @holly_cummins Raspberry Pi £25 Huge community Well-supported
  • 60. © 2013 IBM Corporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow
  • 61. © 2013 IBM Corporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM
  • 62. © 2013 IBM Corporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor
  • 63. © 2013 IBM Corporation @holly_cummins Raspberry Pi £25 Huge community Well-supported Slow Limited RAM Old-model processor SD storage
  • 64. © 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
  • 65. © 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
  • 66. © 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
  • 67. © 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
  • 68. © 2013 IBM Corporation @holly_cummins pcDuino
  • 69. © 2013 IBM Corporation @holly_cummins pcDuino £50
  • 70. © 2013 IBM Corporation @holly_cummins pcDuino £50 Powerful
  • 71. © 2013 IBM Corporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core
  • 72. © 2013 IBM Corporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM
  • 73. © 2013 IBM Corporation @holly_cummins pcDuino £50 Powerful 1 GHz ARM A7Cortex Dual core 1 GB RAM 4 GB Flash Storage
  • 74. © 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
  • 75. © 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)
  • 76. © 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)
  • 77. © 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)
  • 78. © 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)
  • 79. © 2013 IBM Corporation @holly_cummins Going mobile
  • 80. © 2013 IBM Corporation @holly_cummins Going mobile PcDuino battery interface
  • 81. © 2013 IBM Corporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface
  • 82. © 2013 IBM Corporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface
  • 83. © 2013 IBM Corporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface JST-PH
  • 84. © 2013 IBM Corporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface JST-PH
  • 85. © 2013 IBM Corporation @holly_cummins Going mobile Popular embeddable battery PcDuino battery interface JST-PH JST-SH
  • 86. © 2013 IBM Corporation @holly_cummins BeagleBone black £42! 1 GHz processor! Not arduino-compatible out of the box
  • 87. © 2013 IBM Corporation @holly_cummins Arduino Yún
  • 88. © 2013 IBM Corporation @holly_cummins Arduino Yún £57
  • 89. © 2013 IBM Corporation @holly_cummins Arduino Yún £57 A microcontroller …
  • 90. © 2013 IBM Corporation @holly_cummins Arduino Yún £57 A microcontroller … sharing a chip with an Atheros microprocessor
  • 91. © 2013 IBM Corporation @holly_cummins Arduino Yún £57 A microcontroller … sharing a chip with an Atheros microprocessor … that runs Linux (limited)
  • 92. © 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
  • 93. © 2013 IBM Corporation @holly_cummins Embedded devices are changing Modern microcontrollers are more powerful than microprocessors from a few years ago
  • 94. © 2013 IBM Corporation @holly_cummins Why is more powerful better? You can do more!! You can know less!
  • 95. © 2013 IBM Corporation @holly_cummins Why is more powerful better? You can do more!! You can know less!different things
  • 96. © 2013 IBM Corporation @holly_cummins Why is less powerful better
  • 97. © 2013 IBM Corporation @holly_cummins Why is less powerful better Smaller
  • 98. © 2013 IBM Corporation @holly_cummins Why is less powerful better Smaller Lower power consumption
  • 99. © 2013 IBM Corporation @holly_cummins Why is less powerful better Smaller Lower power consumption Cheaper!
  • 100. © 2013 IBM Corporation @holly_cummins Why is less powerful better Smaller Lower power consumption Cheaper! Can buy a PIC microcontroller for £2
  • 101. © 2013 IBM Corporation @holly_cummins Why is more powerful better? You can have an application server!! JPA! Rest! WebSockets! CDI
  • 102. © 2013 IBM Corporation @holly_cummins Ubiquitous computing++
  • 103. © 2013 IBM Corporation @holly_cummins Ubiquitous computing++
  • 104. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile
  • 105. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables
  • 106. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight
  • 107. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile A great fit for embeddables Very very lightweight 50 MB download
  • 108. © 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
  • 109. © 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
  • 110. © 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
  • 111. © 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 …
  • 112. © 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)
  • 113. © 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!
  • 114. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile
  • 115. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile Free tools
  • 116. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile Free tools Free for development
  • 117. © 2013 IBM Corporation @holly_cummins WebSphere Liberty Profile Free tools Free for development New licensing: free for small-scale production
  • 118. © 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
  • 119. © 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
  • 120. © 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
  • 121. © 2013 IBM Corporation @holly_cummins Where have I seen this before?
  • 122. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence
  • 123. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence Density
  • 124. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence Density
  • 125. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence Small download Density
  • 126. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density
  • 127. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 128. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 129. © 2013 IBM Corporation @holly_cummins Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 130. © 2013 IBM Corporation @holly_cummins Enable and disable function Cloud-Embeddable convergence Small download Small memory footprint Density Elasticity
  • 131. © 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
  • 132. © 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
  • 133. © 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
  • 134. © 2013 IBM Corporation @holly_cummins
  • 135. © 2013 IBM Corporation @holly_cummins Managing headless devices
  • 136. © 2013 IBM Corporation @holly_cummins Managing headless devices
  • 137. © 2013 IBM Corporation @holly_cummins Managing headless devices Most single-board computers accessible with HDMI display and USB keyboard.
  • 138. © 2013 IBM Corporation @holly_cummins Managing headless devices Most single-board computers accessible with HDMI display and USB keyboard. Works fine…
  • 139. © 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
  • 140. © 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
  • 141. © 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
  • 142. © 2013 IBM Corporation @holly_cummins Workflow for “pi and seek”
  • 143. © 2013 IBM Corporation @holly_cummins Workflow for “pi and seek” Ethernet cable
  • 144. © 2013 IBM Corporation @holly_cummins Workflow for “pi and seek” Ethernet cable DHCP
  • 145. © 2013 IBM Corporation @holly_cummins Workflow for “pi and seek” Ethernet cable DHCP Network sharing
  • 146. © 2013 IBM Corporation @holly_cummins Getting a connection
  • 147. © 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
  • 148. © 2013 IBM Corporation @holly_cummins A bit of textile engineering.
  • 149. © 2013 IBM Corporation @holly_cummins A bit of textile engineering.
  • 150. © 2013 IBM Corporation @holly_cummins Ta-daa!
  • 151. © 2013 IBM Corporation @holly_cummins Ta-daa! Presenting: The WebSphere Sphere
  • 152. © 2013 IBM Corporation @holly_cummins Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”)
  • 153. © 2013 IBM Corporation @holly_cummins Remind you of anything?
  • 154. © 2013 IBM Corporation @holly_cummins Um. But it’s lumpy.
  • 155. © 2013 IBM Corporation @holly_cummins Um. But it’s lumpy. Software faults can be corrected without re-typing the whole program.
  • 156. © 2013 IBM Corporation @holly_cummins Um. But it’s lumpy. Software faults can be corrected without re-typing the whole program. Lucky software engineers.
  • 157. © 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.
  • 158. © 2013 IBM Corporation @holly_cummins It’s a computer case
  • 159. © 2013 IBM Corporation @holly_cummins Architecture Sensors SSID: WebSphereembedded application server
  • 160. © 2013 IBM Corporation @holly_cummins Interfacing the ball to the computer LED sequins
  • 161. © 2013 IBM Corporation @holly_cummins Soft circuits Conductive thread ! Stainless steel! Sewable! £6.78
  • 162. © 2013 IBM Corporation @holly_cummins Soft-hard connections Normal jumper lead! Strip connector off one side! Solder to sewable eye
  • 163. © 2013 IBM Corporation @holly_cummins The physical world
  • 164. © 2013 IBM Corporation @holly_cummins The physical world Shorts
  • 165. © 2013 IBM Corporation @holly_cummins The physical world Shorts Extra-bad on a pcDuino, because they take down whole computer
  • 166. © 2013 IBM Corporation @holly_cummins The physical world Shorts Extra-bad on a pcDuino, because they take down whole computer Loose connections
  • 167. © 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
  • 168. © 2013 IBM Corporation @holly_cummins Shields
  • 169. © 2013 IBM Corporation @holly_cummins Shields Daughter-boards for Arduino
  • 170. © 2013 IBM Corporation @holly_cummins Shields Daughter-boards for Arduino Re-arrange pins
  • 171. © 2013 IBM Corporation @holly_cummins Shields Daughter-boards for Arduino Re-arrange pins Provide extra function
  • 172. © 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
  • 173. © 2013 IBM Corporation @holly_cummins Let’s have a play http://10.12.5.15:9080/sphere
  • 174. © 2013 IBM Corporation @holly_cummins But is it really IoT?
  • 175. © 2013 IBM Corporation @holly_cummins But is it really IoT? Definitely embedded.
  • 176. © 2013 IBM Corporation @holly_cummins But is it really IoT? Definitely embedded. Very very embedded.
  • 177. © 2013 IBM Corporation @holly_cummins But is it really IoT? Definitely embedded. Very very embedded. One thing.
  • 178. © 2013 IBM Corporation @holly_cummins But is it really IoT? Definitely embedded. Very very embedded. One thing. Network, but not internet.
  • 179. © 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.
  • 180. © 2013 IBM Corporation @holly_cummins M2M MQTT! Lightweight messaging protocol! OASIS standard! Widely supported! Widely used
  • 181. © 2013 IBM Corporation @holly_cummins Revised architecture
  • 182. © 2013 IBM Corporation @holly_cummins Revised architecture Same source
  • 183. © 2013 IBM Corporation @holly_cummins ! Demo-time (again) sphere.mybluemix.net/ www.wasdev.net
  • 184. © 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/+");
  • 185. © 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 …
  • 186. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/arduino- app-server