How technology from IBM UK is helping to connect devices and make a Smarter Planet - delivered at the Berkshire branch of the bcs, the Chartered Institute for IT, April 2011
1. Connecting a Smarter Planet
How UK technology is helping to
make the planet smarter
Andy Piper MBCS CITP
http://andypiper.co.uk
http://twitter.com/andypiper
2. Hello.
This talk will contain:
Some (corporate) history
Some (British) technology
Some lines of code (!)
Some (exciting) ideas
3. ✦ A bit about IBM in the UK
✦ Smarter Planet & Internet of Things
✦ Technology
✦ Ideas & Possibilities
7. History of IBM in the UK at Hursley Park
Vickers Aviation developed the Spitfire at Hursley
IBM moved to Hursley in 1958
Developed System/360 Model 40 in 1964
Queen’s Awards for Storage Subsystem and CICS; MacRobert Award for
WebSphere MQ
IBM Java, Service Registry, Business Events… a key set of technologies used in
businesses today, and some emerging new ones!
7
11. A world filling with devices
Pop Quiz
Grains grown each year 1,000,000,000,000,000 (1 quadrillion)
Crawling the earth 100,000,000,000,000,000 (100 quadrillion)
Manufactured each year 10,000,000,000,000,000,000 (10 quintillion)
1 billion transistors
for every one of us
12. The Internet of Things
Many smart devices
instrument our
world today
Interconnecting these
smart devices creates a
Central Nervous
System
13. Building a Smarter Planet
+ + =
An opportunity to think and act in new ways—
economically, socially and technically.
14. Business Scenarios
Scenario Key Industries Example
Automated •
Chemical & Petroleum Solution provider enables smart metering
Metering •
Energy & Utilities of home energy by using MQ Telemetry
technology
predict
Distribution Retailers Shipping company improves customer
Supply Chain and Distributors loyalty by providing up-to-the-moment
Logistics detailed tracking information for cargo
Consumer products
Transportation Transportation company improves
customer safety and satisfaction with
improved tracking of fleet
Industrial Automotive Manufacturing company automates
Tracking & inventory checking to improve
alert Visibility Industrial manufacturing
Aerospace
management of stock and optimize
production rates
Defense
Healthcare Pharmaceutical Medical organization uses MQ Telemetry
Personal & companies to track health of at-risk patients to
Resource Health trials increase safety and quality of patient care
Tracking
track Hospitals
Nursing Homes
Hospital uses MQ Telemetry to track
expensive surgery equipment to maximize
utilization and reduce waiting lists
Location Chemical & Petroleum Gas company uses MQ Telemetry to
Awareness and Energy & Utilities monitor gas pipeline operations
Safety
Homeland Defense
Government monitors dams and flood-risk
areas to increase early-warning detection
and prediction capabilities
measure Executive
Alerting
Insurance
Banking
Bank alerts Personal Account Managers
when new clients open accounts >= $2M
improving customer satisfaction
15. Connecting the edges
Connectivity for Applications Head Offices,
Data centres
Transport WebSphere MQ Cloud Computing
REST/HTTP Intelligent
WS*
Mission-Critical Connectivity &
Intelligence
Regional Offices Messages WebSphere MQ
Stores, Outlets
Files WebSphere MQ File Transfer Edition
Interconnected
Transform, WebSphere Message Broker
Enrich, WebSphere ESB
Mediate DataPower
WebSphere Sensor Events
Instrumented
Catalog WebSphere Service Registry &
Repository
Connectivity for Smart Devices
Remote Systems and Devices Intelligence WebSphere Business Events
Transport MQ Telemetry Cognos. ILOG, SPSS
HTTP InfoSphere Streams
Multicast
Other InfoSphere and Tivoli products
Embedded Controllers Sensors Actuators
Filtering of duplicate read events, Store- Power meters, weather data Tag printers, status lights, Load
based HVAC & lighting controls, SCADA sensors, pressure, volume, generation, HVAC and lighting,
Industrial Network Gateways (SCADA) RFID readers, Motion detectors… Valves, switches and pumps…
17. The Connectivity Challenge
The challenges of industrial control systems
(supervisory control and data acquisition, or
SCADA) well-suited to a messaging solution
Loose coupling, multi-protocol, separation
of concerns...
Connectivity to remote field systems could be
costly
Networks could be unreliable (satellite, GPRS,
mesh, proprietary protocols)
Conditions could be constrained (environment,
hardware, power)
Thousands of sensors or devices may be
involved in monitoring a system
18. Connectivity for M2M with MQTT
■ MQ Telemetry Transport (MQTT) is designed
with the following primary intentions:
– Publish/subscribe messaging paradigm as
required by the majority of SCADA and sensor
applications.
– Minimise the on-the-wire footprint.
– Expect and cater for frequent network
disruption, cope with slow and poor quality
networks: built for low bandwidth, high
latency, unreliable, high cost networks
– Expect that client applications may have very
limited processing resources available.
– Provide traditional messaging qualities of
service where the environment allows
– Publish the protocol for ease of adoption by
device vendors and third-party client
software.
19. Show us some code!
public void sendAMessage() throws MqttException {
MqttProperties mqttProps = new MqttProperties(); Create a connection using the
mqttProps.setCleanStart( true ); connection factory, this time for a
MqttClient client = MqttClientFactory.INSTANCE. clean starting client
createMqttClient("testClient",
“tcp://localhost:1883”, mqttProps);
client.registerCallback(this);
Register the class as a listener and
client.connect(); connect to the broker
client.publish(“abc/123”,
new MqttPayload((“Hello World!”).getBytes(),0),
(byte) 2, false);
Publish a message to the
client.disconnect();
given topic and disconnect
}
public void publishArrived(String topicName,
MqttPayload payload,
byte qos, boolean retained,
On receipt of a publication, simply print
int msgId) {
out a message on the console to say we
System.out.println(“Got it!”); received it
}
21. Data-centricity
MQTT is agnostic of data content and transfers
simple byte arrays, making drip-feeds of updating
information trivial.
HTTP is (basically) document-centric.
22. Simplicity
MQTT has few methods (publish/subscribe/
unsubscribe) and is quick to learn.
HTTP can be complex (although it is often well-
understood) - there are a multitude of return codes
and methods.
REST is a great principle but not always the best for
simple data applications (POST/PUT/GET/DELETE?
er what?)
23. Light on the network
The smallest possible packet size for an MQTT
message is 2 bytes.
The protocol was optimised from the start for
unreliable, low-bandwidth, expensive, high-latency
networks.
HTTP is relatively verbose - lots of "chatter" in a
POST
24. Easy distribution of data
MQTT distributes 1-to-none, 1-to-1 or 1-to-n via the
publish/subscribe mechanism
→ very efficient
HTTP is point-to-point (can be mediated/clustered
but no distribution mechanism). To distribute to
multiple receivers a large number of POSTs may be
required.
25. Lightweight Stack (CPU/Mem)
MQTT has been trivially implemented on tiny to
larger platforms in very small libraries
[IBM ref implementation = ~80Kb for full broker]
HTTP (often with associated XML or JSON libraries
for SOAP and REST etc) can be relatively large on
top of OS network libraries
Plus... even if the client is small, consider whether it
is really necessary to run an HTTP server on every
device
26. Variable Quality-of-Service
MQTT supports fire-and-forget or fire-and-confirm
(aka QoS 0/1/2)
HTTP has no retry / confirmation / attempt at once-
only delivery. It is basically brittle, i.e. retry needs to
be written in at the application level. Applications
must also handle timeouts.
29. Smarter Healthcare
Medical organization created a remote pace-maker monitoring
solution to provide better patient care
Physicians needed better
monitoring of cardiac patients
Improve efficiency of checkups
Meet healthcare data capture
standards
Enables higher level of patient care and peace of mind
Improves administrative efficiency and maintenance
Helps conform to standards and ease integration of data
30. Smarter Energy
Utility company developing an Intelligent Utility Network
offering for optimizing load on electricity grids
Needs robust middleware
technology to connect to remote
smart meters
Needs to be able to rapidly scale
solution nationally
Able to offer daily energy savings of 15-20%
Enables utilities to reduce peaks and avoid punitive charges
Helps save electricity through better peak load management
34. HVAC Control Energy Monitoring
Stock Checks Chemical Trickle
POS Detection Feed
Field Force Automation Asset Management
• Sales Force Automation
And Monitoring
• Field Service Engineers
• Service Delivery
RFID
Pipeline MonitoringParking
Fire Sensors Tickets
and Control
Flood Defence Kiosks
Warning Vehicle Telematics
• Cars / Military – Diagnostics and Prognostics
Home Automation • Pay As You Drive Insurance
35. Useful links
MQTT – The Smarter Planet Protocol (blog post)
http://andypiper.co.uk/2010/08/05/mqtt-the-smarter-planet-protocol/
MQTT 3.1 specification – IBM developerWorks
http://www.ibm.com/developerworks/webservices/library/ws-mqtt/index.html
MQTT Community
http://mqtt.org
Mosquitto – an example MQTT broker
http://mosquitto.org
http://ibm100.com
36. Connect
http://twitter.com/andypiper
http://andypiper.co.uk
http://slideshare.net/andypiper
http://eightbar.co.uk
I’m an IBMer
Let’s build a Smarter Planet