How UK technology is helping to make the planet smarter


Published on

Presentation given to the bcs Oxford branch, February 2012

Published in: Technology, Business
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

How UK technology is helping to make the planet smarter

  1. 1. Connecting a Smarter PlanetHow UK technology is helping tomake the planet smarter Andy Piper MBCS CITP
  2. 2. Hello This talk will contain:Some (corporate) historySome (British) technology Some lines of code (!) Some (exciting) ideas
  3. 3. Essentials: Twitter info! @andypiper #bcsoxford #mqtt
  4. 4. ✦ A bit about IBM in the UK✦ Smarter Planet & Internet of Things✦ Technology✦ Ideas & Possibilities
  5. 5.
  6. 6. http://ibm100.com6
  7. 7. Jeopardy, Watson, and DeepQA
  8. 8. History of IBM in the UK at Hursley Park (pre-IBM) 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! 8
  9. 9. 9 © 2010 IBM Corporation
  10. 10. IBM Hursley Park today... 10
  11. 11. Building aSmarter Planet
  12. 12. 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
  13. 13. The Internet of ThingsMany smart devices instrument our world today Interconnecting these smart devices creates a Central Nervous System
  14. 14. Building a Smarter Planet + + = An opportunity to think and act in new ways— economically, socially and technically.
  15. 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 & RepositoryConnectivity for Smart Devices Remote Systems and Devices Intelligence WebSphere Business EventsTransport 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…
  16. 16. Technology
  17. 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. 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. 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}
  20. 20. Surely HTTP is everywhere? Why use MQTT?
  21. 21. Data-centricityMQTT is agnostic of data content and transferssimple byte arrays, making drip-feeds of updatinginformation trivial.HTTP is (basically) document-centric.
  22. 22. SimplicityMQTT 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 codesand methods. REST is a great principle but not always the best forsimple data applications (POST/PUT/GET/DELETE?er what?)
  23. 23. Light on the networkThe smallest possible packet size for an MQTTmessage is 2 bytes. The protocol was optimised from the start forunreliable, low-bandwidth, expensive, high-latencynetworks.HTTP is relatively verbose - lots of "chatter" in aPOST
  24. 24. Light on the network - exampleHTTP - do an HTTP POST request to the MQTT - connect to a broker on localhostresource /post on localhost. The post with client ID mqtt, publish to topic post atcontains the text message. qos 1 with payload message, disconnect Size Data Size Data Client → Server 66 bytes POST /post HTTP/1.1 Client → Server 20 bytes 101200064D51497364700302001E 00046D717474 Host: localhost Connect Content-Length: 7 Server → Client 4 bytes 20020000 message Connack Client → Server 17 bytes 3A0F0004706F737400016D657373 616765 Publish Server → Client 75 bytes HTTP/1.1 200 OK Server → Client 4 bytes 40020001 Date: Mon, 17 Jan 2011 16:53:20 GMT Puback Content-Length: 0 Client → Server 2 bytes E000 Disonnect Total 141 bytes Total 47 bytes100 x HTTP POST requests to the resource / 100 x MQTT publications with payloadpost containing the text message. Stateless, message, connection open100 complete flows required → 24+(21x100)+2 = 2126 bytes→ 141x100 = 14100 bytes
  25. 25. Easy distribution of dataMQTT distributes 1-to-none, 1-to-1 or 1-to-n via thepublish/subscribe mechanism→ very efficientHTTP is point-to-point (can be mediated/clusteredbut no distribution mechanism). To distribute tomultiple receivers a large number of POSTs may berequired.
  26. 26. Lightweight Stack (CPU/Mem)MQTT has been trivially implemented on tiny tolarger platforms in very small libraries[IBM ref implementation = ~80Kb for full broker]HTTP (often with associated XML or JSON librariesfor SOAP and REST etc) can be relatively large ontop of OS network librariesPlus... even if the client is small, consider whether itis really necessary to run an HTTP server on everydevice
  27. 27. Variable Quality-of-ServiceMQTT 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 tobe written in at the application level. Applicationsmust also handle timeouts.
  28. 28. Simple, small and portable- so home hackers like using it!
  29. 29. Something this useful - should be openClient APIs in ~12 languages, for Arduino, mBed etc.Specification published royalty-free in 2010IBM and Eurotech open call for Standardisationparticipation...
  30. 30. Going Open Source - Eclipse PahoThe scope of the Paho project is to provide open source implementations of open and standard messaging protocols that support current and emerging requirements of M2M integration with Web and Enterprise middleware and applications. It will include client implementations for use on embedded platforms along with corresponding server support as determined by the community.In order for M2M device and client developers to integrate, develop and test messaging components end-to-end, Paho will address the development of frameworks and sample code needed to support testing and development of end-to-end device connectivity with a server. The project will make these available in an Eclipse M2M server “sandbox”, as recommended by the Eclipse M2M Industry Working Group.
  31. 31. Examples
  32. 32. 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
  33. 33. 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. 34. Smarter Cities
  35. 35. Radiation Mapping
  36. 36. Mobile - Facebook Messenger!
  37. 37. Smarter Transportation
  38. 38. Smarter Infrastructure3D modelling & simulation
  39. 39. HVAC Control Energy Monitoring Stock Checks Chemical TricklePOS Detection FeedField Force Automation Asset Management • Sales Force Automation And Monitoring • Field Service Engineers • Service Delivery RFID Pipeline MonitoringParkingFire Sensors Tickets and Control Flood Defence Kiosks Warning Vehicle Telematics • Cars / Military – Diagnostics and PrognosticsHome Automation • Pay As You Drive Insurance
  40. 40. Useful linksMQTT – The Smarter Planet Protocol (blog post) 3.1 specification – IBM developerWorks Communityhttp://mqtt.orgMosquitto – an example MQTT broker
  41. 41. Connect