SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Internet of Things (IoT)
     Machine-to-Machine (M2M)
                       BarCamp Melbourne - Sunday 29th July 2012

                               Andy Gelme - @geekscape
                                  http://geekscape.org

                     Connected Community HackerSpace (Melbourne)
                               http://hackmelbourne.org


Sunday, 29 July 12
The future of IoT / M2M ?

       • “Those who cannot remember the past are
               condemned to repeat it” - George Santayana



       • “I skate to where the puck is going to be, not where
               it has been” - Wayne Gretsky (The Great One)



Sunday, 29 July 12
1973
    • Carl Hewitt (MIT): Actor model (asynchronous)
     • Actors send messages to other Actors
     • Actors can create new Actors
     • Specific behaviour for each message received
    • Guy Steele and Gerry Sussman: Scheme language
     • Invented to understand the Actor model !
     • Invented Call-By-Continuation
    • Erlang created at Ericsson in 1986
Sunday, 29 July 12
Mid 1970’s
       • Xerox Parc (Palo Alto)
       • Home Brew Computer Club (Menlo Park)
        • Compare with HackerSpaces (Everywhere)
       • Dawn of microprocessors
       • Apple I ... now: iStuff
       • Tandy TRS-80
       • BBC micro ... now: ARM (processor in most phones)
        • Compare with Raspberry Pi
Sunday, 29 July 12
8-bit micro processors vs controllers
       •       1970s: 4004, SC/MP, 2650, 8080, Z-80, 6800, 6502, 6809 ...

              •      Clock: 1.0 to 4.0 MHz     Memory: 1 Kb to 64 Kb RAM

              •      Storage: Cassette tape (if you were lucky)

              •      Networking: None (usually)

              •      Cost: Expensive         Development environment: Challenging

       •       2000s: Arduino (ARM ATMega328) ... System On a Chip ...

              •      Clock: 16.0 MHz      Memory: 32 Kb Flash and 2 Kb RAM

              •      Storage: SD card (if required)

              •      Networking: USB, Ethernet, WiFi, Bluetooth, Mesh 802.15.4, ...

              •      Cost: Cheap       Development environment: Easy
Sunday, 29 July 12
1980s
       • Internet is still quite small (teenage years !)
        • WWW / HTTP not for another decade (1990s)
       • “The value of a network is proportional to the
               square of the number of connected devices / users”
               - Robert Metcalfe (Ethernet) and later George
               Gilder


       • “The network is the computer” - Sun Microsystems
Sunday, 29 July 12
2000-01-01
       • The day after Y2K ... post-apocalyptic computing :)

       • WiFi for very early adopters

       • Mobile phones: Resemble a brick !

       • Social networking: Friendstar 2002, MySpace 2003 ...
Sunday, 29 July 12
MeemPlex (2000 - 201?)




Sunday, 29 July 12
2007 / 2008

       • 2007-04-13
        • Powered up my first Arduino NG

       • 2008-02-23
        • 2nd BarCamp Melbourne 2008 at ThoughtWorks

Sunday, 29 July 12
2012-07-29
       • Internet is now very large and diverse in all ways
        • WWW / HTTP is the dominant protocol
           • Designed for web pages / documents
           • Request-Response (synchronous)
             • ... not good for embedded devices :(
       • Metcalfe’s law applied to ...
        • Billions of smart phones are in the mainstream
        • Social networking is mainstream
       • Open Source Hardware Design !
Sunday, 29 July 12
Now what ?



       • “The future is here ... it’s just not evenly distributed”
               - William Gibson (1993)




Sunday, 29 July 12
Connecting the real world
       • The networking infrastructure is in place ...
        • Except IPv6 :(
        • Choice: Ethernet, WiFi, Bluetooth, IR, 433 MHz
        • Virtual servers on the WAN (aka “the cloud”)
       • Good cheap LAN servers: OpenWRT, Raspberry Pi
       • Smart phones and tablets have lots of sensors !
        • GPS, accelerometer, compass, light,
        • They also make good user interfaces for devices :)
Sunday, 29 July 12
8 fallacies of distributing computing
       1. The network is reliable
       2. Latency is zero
       3. Bandwidth is infinite
       4. The network is secure
       5. Topology doesn’t change
       6. There is one administrator
       7. Transport cost is zero
       8. The network is homogeneous
          - Peter Deutsch (1994) and James Gosling (1997)
Sunday, 29 July 12
Issues
       • Many different development environments ...
        • Arduino: IDE, C / C++, libraries, hardware
        • Android: Eclipse, Java, class libraries, UI, networking
        • iOS: XCode, Objective-C, libraries, UI, networking
        • Web browser UI: HTML5, JavaScript, CSS
        • Servers: Too many choices to mention
       • Need to solve: Messaging (glue), Configuration, User
               Interface, Security, Failure (device or network)
Sunday, 29 July 12
Messaging (glue)
       • Devices require asynchronous events
        • Synchronous request-response is a poor choice
        • Can’t wait for something that may never complete

       • Consider MQTT http://mqtt.org
        • Publish-subscribe and topic based
        • Very light-weight, good for embedded devices
        • Client libraries available for many languages
Sunday, 29 July 12
MQTT example
                     http://github.com/geekscape/mqtt_lua

      mqtt_client = MQTT.client.create(host, port, callback)
      mqtt_client:connect(client_id)
      mqtt_client:subscribe(‘topic’)
      while (true) do
       mqtt_client:handler()
       mqtt_client:publish(‘topic’, ‘message’)
      end

      function callback(topic, message)
        print(‘topic: ‘ .. topic .. ‘, message: ‘ .. message)
      end
Sunday, 29 July 12
Configuration

       • Managing lots (hundreds, thousands, millions, ...) of
               devices without any direct user interface is hard
       • Maintain network / device configuration on local
               server(s) ... don’t hard code in the source !
       • Distribute configuration via MQTT topics
       • Self-describing devices discover their configuration
               and save to EEPROM


Sunday, 29 July 12
User interface
       • Having to develop N different user interfaces is
               painful


       • Having to change all those user interfaces every
               time a new device type joins your network is even
               more painful


       • Make dynamic user interfaces incorporate an MQTT
               client and be driven by the same MQTT topics as
               the device configuration
Sunday, 29 July 12
Security
       • Obvious problems ...
        • Recent: Onity hotel locks ... completely insecure
        • SCADA systems connected to Internet
        • How many Arduinos using secure networking ?

       • IcedTea (Tiny Encryption Algorithm: 1994)
        • Make sure you use XXTEA (1998)
        • Vulnerable to chosen-plaintext attack
Sunday, 29 July 12
Failure (device or network)
       • A most difficult problem ...
        • Network partition ... partial failure
       • Eventual consistency ...
        • Relativity for computing :)
        • Never have exactly the same view of the world
       • Leasing: Never hold on to resources forever
       • Distributed garbage collection
       • MQTT defines a “Last will and testament”
Sunday, 29 July 12
802.15.4 mesh network / IPv6
     • Device needs to be cheap, sufficient memory and
             incorporate the radio
     • ATMega128RFA01 ... Arduino compatible, 128K Flash,
             built-in 802.15.4 and US$5.40 in volume
     • Networking stack: Atmel MAC
     • Operating environment ...
      • Arduino: Libraries, but no operating system or tasks
      • Contiki: Light-weight O.S with proto-threads
Sunday, 29 July 12
Invitation
       • Melbourne HackerSpace: http://hackmelbourne
        • Individual and group projects, workshops, etc
        • Scope for running your own group or events
        • Please join our email list (see web-site for details)

       • Melbourne Raspberry Jam: See http://meetup.com
        • Next Saturday from 1:30 pm at the HackerSpace
Sunday, 29 July 12
Resouces
       • This presentation: http://slideshare.net/geekscape

       • Aiko platform: https://sites.google.com/site/
               aikoplatorm


       • MQTT: http://mqtt.org
       • Mosquitto MQTT server: http://mosquitto.org
       • Eclipse Paho (IoT M2M): http://eclipse.org/paho
Sunday, 29 July 12
“Dif-tor heh smusma” - ?




Sunday, 29 July 12
“Live long and prosper” - Spock




Sunday, 29 July 12

Weitere ähnliche Inhalte

Was ist angesagt?

Ninja Blocks Introduction
Ninja Blocks IntroductionNinja Blocks Introduction
Ninja Blocks Introductionapgiorgi
 
Connecting RIAs and hardware together
Connecting RIAs and hardware togetherConnecting RIAs and hardware together
Connecting RIAs and hardware togetherJustin Mclean
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitVasily Ryzhonkov
 
Putting your device in a browser or on the web
Putting your device in a browser or on the webPutting your device in a browser or on the web
Putting your device in a browser or on the webJustin Mclean
 
MediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 WebinarMediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 WebinarMediaTek Labs
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitIntel® Software
 
Connecting open source hardware to the web
Connecting open source hardware to the webConnecting open source hardware to the web
Connecting open source hardware to the webJustin Mclean
 
Everything you wanted to know about Internet of Things & Galileo
Everything you wanted to know about Internet of Things & GalileoEverything you wanted to know about Internet of Things & Galileo
Everything you wanted to know about Internet of Things & GalileoBeMyApp
 
CSI - Poor Mans Guide To Espionage Gear
CSI - Poor Mans Guide To Espionage GearCSI - Poor Mans Guide To Espionage Gear
CSI - Poor Mans Guide To Espionage Gearshawn_merdinger
 
Connecting hardware to ColdFusion
Connecting hardware to ColdFusionConnecting hardware to ColdFusion
Connecting hardware to ColdFusionJustin Mclean
 
A Practical Guide to Connecting Hardware to Flex
A Practical Guide to Connecting Hardware to FlexA Practical Guide to Connecting Hardware to Flex
A Practical Guide to Connecting Hardware to FlexJustin Mclean
 
How blink(1) was made – Hackaday 10th anniversary talk
How blink(1) was made –  Hackaday 10th anniversary talkHow blink(1) was made –  Hackaday 10th anniversary talk
How blink(1) was made – Hackaday 10th anniversary talktodbotdotcom
 
From Prototype to Kickstarter to Production: How blink(1) was made
From Prototype to Kickstarter to Production: How blink(1) was madeFrom Prototype to Kickstarter to Production: How blink(1) was made
From Prototype to Kickstarter to Production: How blink(1) was madetodbotdotcom
 
Geek Pic-Nic Master Class
Geek Pic-Nic Master ClassGeek Pic-Nic Master Class
Geek Pic-Nic Master ClassMediaTek Labs
 
Manufacturing Hardware Implants from Idea to Mass Production: A Hacker's Journey
Manufacturing Hardware Implants from Idea to Mass Production: A Hacker's JourneyManufacturing Hardware Implants from Idea to Mass Production: A Hacker's Journey
Manufacturing Hardware Implants from Idea to Mass Production: A Hacker's JourneyLuca Bongiorni
 
How to bring HID attacks to next level with WHID Injector & P4wnP1
How to bring HID attacks to next level with WHID Injector & P4wnP1How to bring HID attacks to next level with WHID Injector & P4wnP1
How to bring HID attacks to next level with WHID Injector & P4wnP1Luca Bongiorni
 
2.2. Introduction to Arduino
2.2. Introduction to Arduino2.2. Introduction to Arduino
2.2. Introduction to Arduinodefconmoscow
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Igor Stoppa
 
Introduction to JavaScript Robotics
Introduction to JavaScript RoboticsIntroduction to JavaScript Robotics
Introduction to JavaScript RoboticsSuz Hinton
 

Was ist angesagt? (20)

Ninja Blocks Introduction
Ninja Blocks IntroductionNinja Blocks Introduction
Ninja Blocks Introduction
 
Connecting RIAs and hardware together
Connecting RIAs and hardware togetherConnecting RIAs and hardware together
Connecting RIAs and hardware together
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT Devkit
 
Putting your device in a browser or on the web
Putting your device in a browser or on the webPutting your device in a browser or on the web
Putting your device in a browser or on the web
 
MediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 WebinarMediaTek Linkit Smart 7688 Webinar
MediaTek Linkit Smart 7688 Webinar
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer Kit
 
Connecting open source hardware to the web
Connecting open source hardware to the webConnecting open source hardware to the web
Connecting open source hardware to the web
 
Everything you wanted to know about Internet of Things & Galileo
Everything you wanted to know about Internet of Things & GalileoEverything you wanted to know about Internet of Things & Galileo
Everything you wanted to know about Internet of Things & Galileo
 
CSI - Poor Mans Guide To Espionage Gear
CSI - Poor Mans Guide To Espionage GearCSI - Poor Mans Guide To Espionage Gear
CSI - Poor Mans Guide To Espionage Gear
 
Connecting hardware to ColdFusion
Connecting hardware to ColdFusionConnecting hardware to ColdFusion
Connecting hardware to ColdFusion
 
A Practical Guide to Connecting Hardware to Flex
A Practical Guide to Connecting Hardware to FlexA Practical Guide to Connecting Hardware to Flex
A Practical Guide to Connecting Hardware to Flex
 
How blink(1) was made – Hackaday 10th anniversary talk
How blink(1) was made –  Hackaday 10th anniversary talkHow blink(1) was made –  Hackaday 10th anniversary talk
How blink(1) was made – Hackaday 10th anniversary talk
 
From Prototype to Kickstarter to Production: How blink(1) was made
From Prototype to Kickstarter to Production: How blink(1) was madeFrom Prototype to Kickstarter to Production: How blink(1) was made
From Prototype to Kickstarter to Production: How blink(1) was made
 
Geek Pic-Nic Master Class
Geek Pic-Nic Master ClassGeek Pic-Nic Master Class
Geek Pic-Nic Master Class
 
Let's begin io t with $10
Let's begin io t with $10Let's begin io t with $10
Let's begin io t with $10
 
Manufacturing Hardware Implants from Idea to Mass Production: A Hacker's Journey
Manufacturing Hardware Implants from Idea to Mass Production: A Hacker's JourneyManufacturing Hardware Implants from Idea to Mass Production: A Hacker's Journey
Manufacturing Hardware Implants from Idea to Mass Production: A Hacker's Journey
 
How to bring HID attacks to next level with WHID Injector & P4wnP1
How to bring HID attacks to next level with WHID Injector & P4wnP1How to bring HID attacks to next level with WHID Injector & P4wnP1
How to bring HID attacks to next level with WHID Injector & P4wnP1
 
2.2. Introduction to Arduino
2.2. Introduction to Arduino2.2. Introduction to Arduino
2.2. Introduction to Arduino
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
 
Introduction to JavaScript Robotics
Introduction to JavaScript RoboticsIntroduction to JavaScript Robotics
Introduction to JavaScript Robotics
 

Ähnlich wie BarCamp Melbourne 2012: Internet of Things

The history of the internet
The history of the internetThe history of the internet
The history of the internetNikki Usher
 
Technology trends Moore’s law
Technology trends Moore’s lawTechnology trends Moore’s law
Technology trends Moore’s lawSyed Zaid Irshad
 
201311 - Middleware
201311 - Middleware201311 - Middleware
201311 - Middlewarelyonjug
 
Moore’s law change drives OS change
Moore’s law change drives OS changeMoore’s law change drives OS change
Moore’s law change drives OS changeSyed Zaid Irshad
 
Introduction to ethereum_public
Introduction to ethereum_publicIntroduction to ethereum_public
Introduction to ethereum_publicantitree
 
What is SDN and how to approach it with Python
What is SDN and how to approach it with PythonWhat is SDN and how to approach it with Python
What is SDN and how to approach it with PythonJustin Park
 
01 introduction to cloud computing technology
01 introduction to cloud computing technology01 introduction to cloud computing technology
01 introduction to cloud computing technologyNan Sheng
 
北航云计算公开课01 introduction to cloud computing technology
北航云计算公开课01 introduction to cloud computing technology北航云计算公开课01 introduction to cloud computing technology
北航云计算公开课01 introduction to cloud computing technologyyhz87
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshopNitesh Malviya
 
Kickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardwareKickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardwareAndreas Olofsson
 
Fascinating Tales of a Strange Tomorrow
Fascinating Tales of a Strange TomorrowFascinating Tales of a Strange Tomorrow
Fascinating Tales of a Strange TomorrowJulien SIMON
 
1 pendahuluan-pengenalan komputer-pii-im telkom
1 pendahuluan-pengenalan komputer-pii-im telkom1 pendahuluan-pengenalan komputer-pii-im telkom
1 pendahuluan-pengenalan komputer-pii-im telkomArry Widodo
 
Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64Leif Bloomquist
 
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...Kenji Rikitake
 
ICT assignment.pptx
ICT assignment.pptxICT assignment.pptx
ICT assignment.pptxSourabYadav1
 

Ähnlich wie BarCamp Melbourne 2012: Internet of Things (20)

The history of the internet
The history of the internetThe history of the internet
The history of the internet
 
Technology trends Moore’s law
Technology trends Moore’s lawTechnology trends Moore’s law
Technology trends Moore’s law
 
Chap1 basic
Chap1 basicChap1 basic
Chap1 basic
 
201311 - Middleware
201311 - Middleware201311 - Middleware
201311 - Middleware
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Moore’s law change drives OS change
Moore’s law change drives OS changeMoore’s law change drives OS change
Moore’s law change drives OS change
 
Introduction to ethereum_public
Introduction to ethereum_publicIntroduction to ethereum_public
Introduction to ethereum_public
 
What is SDN and how to approach it with Python
What is SDN and how to approach it with PythonWhat is SDN and how to approach it with Python
What is SDN and how to approach it with Python
 
01 introduction to cloud computing technology
01 introduction to cloud computing technology01 introduction to cloud computing technology
01 introduction to cloud computing technology
 
北航云计算公开课01 introduction to cloud computing technology
北航云计算公开课01 introduction to cloud computing technology北航云计算公开课01 introduction to cloud computing technology
北航云计算公开课01 introduction to cloud computing technology
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshop
 
Kickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardwareKickstaring the transition to parallel computing with open hardware
Kickstaring the transition to parallel computing with open hardware
 
21PSP13
21PSP1321PSP13
21PSP13
 
Fascinating Tales of a Strange Tomorrow
Fascinating Tales of a Strange TomorrowFascinating Tales of a Strange Tomorrow
Fascinating Tales of a Strange Tomorrow
 
1 pendahuluan-pengenalan komputer-pii-im telkom
1 pendahuluan-pengenalan komputer-pii-im telkom1 pendahuluan-pengenalan komputer-pii-im telkom
1 pendahuluan-pengenalan komputer-pii-im telkom
 
Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64
 
Tends
TendsTends
Tends
 
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
 
Apple.ppt
Apple.pptApple.ppt
Apple.ppt
 
ICT assignment.pptx
ICT assignment.pptxICT assignment.pptx
ICT assignment.pptx
 

Kürzlich hochgeladen

Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncObject Automation
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 

Kürzlich hochgeladen (20)

Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation Inc
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 

BarCamp Melbourne 2012: Internet of Things

  • 1. Internet of Things (IoT) Machine-to-Machine (M2M) BarCamp Melbourne - Sunday 29th July 2012 Andy Gelme - @geekscape http://geekscape.org Connected Community HackerSpace (Melbourne) http://hackmelbourne.org Sunday, 29 July 12
  • 2. The future of IoT / M2M ? • “Those who cannot remember the past are condemned to repeat it” - George Santayana • “I skate to where the puck is going to be, not where it has been” - Wayne Gretsky (The Great One) Sunday, 29 July 12
  • 3. 1973 • Carl Hewitt (MIT): Actor model (asynchronous) • Actors send messages to other Actors • Actors can create new Actors • Specific behaviour for each message received • Guy Steele and Gerry Sussman: Scheme language • Invented to understand the Actor model ! • Invented Call-By-Continuation • Erlang created at Ericsson in 1986 Sunday, 29 July 12
  • 4. Mid 1970’s • Xerox Parc (Palo Alto) • Home Brew Computer Club (Menlo Park) • Compare with HackerSpaces (Everywhere) • Dawn of microprocessors • Apple I ... now: iStuff • Tandy TRS-80 • BBC micro ... now: ARM (processor in most phones) • Compare with Raspberry Pi Sunday, 29 July 12
  • 5. 8-bit micro processors vs controllers • 1970s: 4004, SC/MP, 2650, 8080, Z-80, 6800, 6502, 6809 ... • Clock: 1.0 to 4.0 MHz Memory: 1 Kb to 64 Kb RAM • Storage: Cassette tape (if you were lucky) • Networking: None (usually) • Cost: Expensive Development environment: Challenging • 2000s: Arduino (ARM ATMega328) ... System On a Chip ... • Clock: 16.0 MHz Memory: 32 Kb Flash and 2 Kb RAM • Storage: SD card (if required) • Networking: USB, Ethernet, WiFi, Bluetooth, Mesh 802.15.4, ... • Cost: Cheap Development environment: Easy Sunday, 29 July 12
  • 6. 1980s • Internet is still quite small (teenage years !) • WWW / HTTP not for another decade (1990s) • “The value of a network is proportional to the square of the number of connected devices / users” - Robert Metcalfe (Ethernet) and later George Gilder • “The network is the computer” - Sun Microsystems Sunday, 29 July 12
  • 7. 2000-01-01 • The day after Y2K ... post-apocalyptic computing :) • WiFi for very early adopters • Mobile phones: Resemble a brick ! • Social networking: Friendstar 2002, MySpace 2003 ... Sunday, 29 July 12
  • 8. MeemPlex (2000 - 201?) Sunday, 29 July 12
  • 9. 2007 / 2008 • 2007-04-13 • Powered up my first Arduino NG • 2008-02-23 • 2nd BarCamp Melbourne 2008 at ThoughtWorks Sunday, 29 July 12
  • 10. 2012-07-29 • Internet is now very large and diverse in all ways • WWW / HTTP is the dominant protocol • Designed for web pages / documents • Request-Response (synchronous) • ... not good for embedded devices :( • Metcalfe’s law applied to ... • Billions of smart phones are in the mainstream • Social networking is mainstream • Open Source Hardware Design ! Sunday, 29 July 12
  • 11. Now what ? • “The future is here ... it’s just not evenly distributed” - William Gibson (1993) Sunday, 29 July 12
  • 12. Connecting the real world • The networking infrastructure is in place ... • Except IPv6 :( • Choice: Ethernet, WiFi, Bluetooth, IR, 433 MHz • Virtual servers on the WAN (aka “the cloud”) • Good cheap LAN servers: OpenWRT, Raspberry Pi • Smart phones and tablets have lots of sensors ! • GPS, accelerometer, compass, light, • They also make good user interfaces for devices :) Sunday, 29 July 12
  • 13. 8 fallacies of distributing computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite 4. The network is secure 5. Topology doesn’t change 6. There is one administrator 7. Transport cost is zero 8. The network is homogeneous - Peter Deutsch (1994) and James Gosling (1997) Sunday, 29 July 12
  • 14. Issues • Many different development environments ... • Arduino: IDE, C / C++, libraries, hardware • Android: Eclipse, Java, class libraries, UI, networking • iOS: XCode, Objective-C, libraries, UI, networking • Web browser UI: HTML5, JavaScript, CSS • Servers: Too many choices to mention • Need to solve: Messaging (glue), Configuration, User Interface, Security, Failure (device or network) Sunday, 29 July 12
  • 15. Messaging (glue) • Devices require asynchronous events • Synchronous request-response is a poor choice • Can’t wait for something that may never complete • Consider MQTT http://mqtt.org • Publish-subscribe and topic based • Very light-weight, good for embedded devices • Client libraries available for many languages Sunday, 29 July 12
  • 16. MQTT example http://github.com/geekscape/mqtt_lua mqtt_client = MQTT.client.create(host, port, callback) mqtt_client:connect(client_id) mqtt_client:subscribe(‘topic’) while (true) do mqtt_client:handler() mqtt_client:publish(‘topic’, ‘message’) end function callback(topic, message) print(‘topic: ‘ .. topic .. ‘, message: ‘ .. message) end Sunday, 29 July 12
  • 17. Configuration • Managing lots (hundreds, thousands, millions, ...) of devices without any direct user interface is hard • Maintain network / device configuration on local server(s) ... don’t hard code in the source ! • Distribute configuration via MQTT topics • Self-describing devices discover their configuration and save to EEPROM Sunday, 29 July 12
  • 18. User interface • Having to develop N different user interfaces is painful • Having to change all those user interfaces every time a new device type joins your network is even more painful • Make dynamic user interfaces incorporate an MQTT client and be driven by the same MQTT topics as the device configuration Sunday, 29 July 12
  • 19. Security • Obvious problems ... • Recent: Onity hotel locks ... completely insecure • SCADA systems connected to Internet • How many Arduinos using secure networking ? • IcedTea (Tiny Encryption Algorithm: 1994) • Make sure you use XXTEA (1998) • Vulnerable to chosen-plaintext attack Sunday, 29 July 12
  • 20. Failure (device or network) • A most difficult problem ... • Network partition ... partial failure • Eventual consistency ... • Relativity for computing :) • Never have exactly the same view of the world • Leasing: Never hold on to resources forever • Distributed garbage collection • MQTT defines a “Last will and testament” Sunday, 29 July 12
  • 21. 802.15.4 mesh network / IPv6 • Device needs to be cheap, sufficient memory and incorporate the radio • ATMega128RFA01 ... Arduino compatible, 128K Flash, built-in 802.15.4 and US$5.40 in volume • Networking stack: Atmel MAC • Operating environment ... • Arduino: Libraries, but no operating system or tasks • Contiki: Light-weight O.S with proto-threads Sunday, 29 July 12
  • 22. Invitation • Melbourne HackerSpace: http://hackmelbourne • Individual and group projects, workshops, etc • Scope for running your own group or events • Please join our email list (see web-site for details) • Melbourne Raspberry Jam: See http://meetup.com • Next Saturday from 1:30 pm at the HackerSpace Sunday, 29 July 12
  • 23. Resouces • This presentation: http://slideshare.net/geekscape • Aiko platform: https://sites.google.com/site/ aikoplatorm • MQTT: http://mqtt.org • Mosquitto MQTT server: http://mosquitto.org • Eclipse Paho (IoT M2M): http://eclipse.org/paho Sunday, 29 July 12
  • 24. “Dif-tor heh smusma” - ? Sunday, 29 July 12
  • 25. “Live long and prosper” - Spock Sunday, 29 July 12