COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS
NEXT INTERNET GROWTH PHASE DURING 2008, THE NUMBER OF THINGS CONNECTED TO THE INTERNET EXCEEDED THE NUMBER OF PEOPLE ON EARTH SOURCE: CISCO IBSG, JIM CICCONI, ATT&T, STEVE LEIBSON, COMPUTER HISTORY MUSEUM, CNN, UNIVERSITY OF MICHIGAN, FRAUNHOFER NABTO PRIMARY MARKET
INTERNET OF THINGS (IOT) IOT = All internet devices other than PC s, smart phones and tablets such as Alarm-systems, Energy Management, Medical, Industrial Controls, HVAC systems, IP-surveillance, Remote Management and Maintenance Market size and potential: Cisco: 50 billion IOT devices in 2020 IDC: 15 billions devices will be connected to the internet in 2015 Forrester: In 2020 IOT will be 30 times larger than the normal Internet
WHAT & WHO Vision To be the preferred communication platform for the Internet of things. Product: A standardized device communication platform Value-proposition: Seamless Remote Access Increase end-user value of your product by offering simple remote access Bridges the gap between current web technology and embedded systems Simple Platform Provides optimization for embedded design to lower software and hardware cost Maximum Security Simple and Secure local and remote access using the highest security protocols Customers: OEMs and System Integrators
VALUE PROPOSITION Customer Challenges Limited Remote Access Tedious firewall configuration, Static IP addresses, DHCP setup, port forwarding, Dynamic DNS are some of the methods that can supply this, but to the average user this is very cumbersome. Higher Cost Embedded systems like Linux, Windows (CE) and proprietary OS offers IP-stacks and webservers etc. These systems also requires large and high cost CPUs, lots of memory and storage resulting in higher cost and complexity compared to other types of embedded designs. Security Concerns Web technology was not designed with security in mind. Normal HTTP offers no encryption and the default authentication scheme (basic-authentication) is even non-encrypted. Limited Platform Support Today, the user-client environment is very heterogeneous with: iphones, ipods, Android phones, tablets, laptops and other smart phones running on Windows, Macs and Linux are just some examples of clients that users normally expect to be supported with a web browser access or APP support. Non-scaling cloud platform In cloud competing platforms, the user-interface computing and database layer resides centrally on a cloud platform resulting in higher cost hosting services. s Solution Seamless Remote Access offers a simple browser interface using Peer-To-Peer direct communication similar to Skype. The browser interface provides a seamless way to locate, control and manage devices by simply typing a unique identification of the device into the browser: nabto://serial.model.net On local-networks, also offers easy discovery and autonomous access without being connected to the internet or cloud. Lowest cost and simple is a web technology framework designed for resource constrained devices. can be executed in very small environments creating a more simplified design, smaller footprint which results in a much lower cost solution. Higher Security offers remote access encryption and authentication using SSL, X509 and PKI security protocols. Multi-Platform support offers multiplatform client support for Apple, Windows, Linux and Android platforms. Both generic and specific interfaces can be specified and can easily be deployed along the way according to user demand. Higher scaling cloud platform offers a cloud + P2P platform allowing higher scalability than any known cloud services. With, the user interface and device logic is a shared computation that takes place between the cloud service which initially mediates the direct peer-to-peer connection between the device and client. After the mediation, the client and device logic shares a direct connection known as peerto-peer (P2P). offers both hosting services and direct ownership.
CUSTOMERS
SO WHAT IS IT? Basically is : A cloud system + extra Why extra? Autonomous operation Privacy protection Peer2Peer direct connection, similar to Skype
WHY WEB TECHNOLOGY FOR DEVICE MANAGEMENT? Huge user base +99% knows how to use a browser Huge developer base Web communication framework is well known Huge infrastructure Install base is +99%
PRODUCT It s a software communication platform PC/Smartphone Internet aware device Browser Protocol Plugin Device Interface Product logic http:// Central Services/ Basestation 3 parts in system: - Browser Plugin (Free, downloadable or on CD) - Basestation (hosted service, pure software delivery or hardware appliance, up to 100k devices) - device interface (pure software delivery offering consumer and industrial grade)
BUSINESS MODEL Device manufactures license the platform PC/Smartphone Internet aware device Browser Protocol Free Plugin Interface $ Product logic Base $ station 3 parts in system: - Browser Plugin (Free, downloadable or on CD) - Basestation (hosted service, pure software delivery or hardware appliance, up to 100k devices) - device interface (pure software delivery offering consumer and industrial grade)
THE NABTO TECHNOLOGY SIMPLE, CONNECT AND SECURE
EMBEDDED DESIGN CHALLENGES Webservers are big and clumsy: TCP/IP stack File system Threads/scheduling GIF/JPEG/Templates -> Large firmware High Network capacity High complexity -> errors -> updates -> high price Web technology was designed for supercomputers at CERN Not embedded devices.!!!
DEVICE SIDE NEEDS Complex = Costly development Big platform = Costly production Integrated GUI = Costly maintenance CGI-script TCP/IP Stack External Flash What you have WEB-server Kernel ARM Atom ColdFire Static content Filesystem External RAM Simple = Efficient development Small platform = Inexpensive production Decoupled GUI = Easy maintenance What you want Data API UDP stack System On Chip Complex and expensive Simple and inexpensive
NABTO BASIC CLOUD SETUP Cloud service Device Web Interface logic HTTP connection Data connection Browser PC Data API UDP stack System On Chip Device
NABTO AUTONOMOUS SETUP Cloud service Basestation Discovery services Data connection Browser Plugin P2P connection Data API PC UDP stack System On Chip Device
1. IMPLEMENT 4 FUNCTIONS Device platform Platform Interface Device Software ReadUDP() WriteUDP() Tick() WebServer() UDP/IP stack Just implement 4 functions -Two just have to be tied to the UDP/IP stack -One just have to be called every second -The last is the data API (explained later)
2. IMPLEMENT HTML-DD Browser Client Protocol Plugin Compact simple protocol Internet aware device Data API Embedded Logic HTML Device Driver HTML-Device driver encapsulates GUI and defines specific data transport interface of the device
HTML DEVICE DRIVER Just a simple.zip file Static content = jpg, png, css, javascript, etc. HTML templates Mapping : Request URL -> Binary format Mapping : Response -> template parameters
MICRO WEB SERVER EXAMPLE Web server running on 8 bit Atmel AVR CPU with 2 kb of RAM, 32 kb flash
EXAMPLE : GETTEMPERATURE <query name="gettemperature" id="0x0a"> <request> <parameter name="sensorid" type="uint16"/> <parameter name="filter" type="uint8" default="0"/> </request> <response> <layout template="housetemperature.tpt"/> <parameter name="temperature" type= uint16"/> </response> </query> (Temperature is coded as real temperature * 256)
LIGHT WEIGHT VERSION User input - via a nice menu nabto://05924.homeautomation.com/gettemperature?sensor=3 Internet aware device Browser Protocol Plugin Data API C call Embedded Logic WebServe( 0x0a, &Buf[1], 3 ) Request buffer: 0x0a 0x00 0x03 0x00 Buf[0] : GetTemperature request identifier Buf[0,1] : Sensor identification Buf[3] : Filter identification (see former slide for XML definition)
LIGHT WEIGHT VERSION The temperature is: 22,5 User GUI Internet aware device Browser Protocol Plugin Data API Embedded Logic HTML rendering Via housetemperature.tpt WebServe() function returns response buffer Response buffer: 0x16 0x80 Content of housetemperature.tpt: <html><body> <h1>the temperature is: ${temperature}</h1> </body></html>
ALL PUT TOGETHER Cloud service Web Interface Base station DNS address of the device points to cloudservices 5834.homeautomation.net Browser http:// nabto:// Data API Embedded Logic PC Internet aware device
ALL PUT TOGETHER 1 Plugin detection is performed 2 The plugin is installed 3 HTML DD is downloaded Cloud service Base station Connect Mediation Browser PC Protocol Plugin P2P nabto:// Data API Embedded Logic Internet aware device
STUN (RFC 5389, 3489) UDP socket IPS1,PortS1 NAT STUN UDP socket IP1,Port1 UDP socket IP-FW,Port-FW Same for IPS1 and IPS2? UDP socket IPS2,PortS2 Bind a local UDP socket, and examine its public internet IP and Port
UDP HOLEPUNCHING Client NAT NAT Device MYADDRESS: UDP socket IP-FW1,Port-FW1 Base station MYADDRESS: UDP socket IP-FW2,Port-FW2 Transmit this information via the basestation to/from both peers
NO INTERNET NO PROBLEM PC 1. Broadcast : are you on LAN? device Browser Protocol Plugin 2. I m here : IP address Data Interface Embedded Logic 3. nabto:// connection NB: LAN can be just a net-cable from Laptop to device
LOCALIZATION SAME FIRMWARE PC Internet aware device Browser Protocol Plugin DataAPI Embedded Logic nabto:// Base station English HTML-DD Spanish HTML-DD French HTML-DD German HTML-DD
OEM S IN SAME FIRMWARE PC Internet aware device Browser Protocol Plugin Data API Embedded Logic nabto:// Base station Company HTML-DD OEM1 HTML-DD OEM2 HTML-DD OEM3 HTML-DD
SIMPLE LOGGING, SMS AND EMAIL PC Internet aware device Browser Protocol Plugin DataAPI Embedded Logic Base station Log SMS Email SMTP gateway Log server SMS Gateway
CLIENT API PC / Smartphone Programatic ClientAPI Remote Procedure Calls Or JSON requests Customer Client Software TCP Port IP interface Protocol Adapter Virtual Network card Protocol Adapter On demand TCP-Portforwarding On demand VPN-forwarding Browser APP Protocol plugin On demand HTTP-proxyforwarding On demand Low-footprint HTTP
NABTO CLIENTAPI - PROGRAM CONNECTION Cloud service Basestation Discovery services Data connection Program PC Client API P2P connection Data API UDP stack System On Chip Device
JSON EXAMPLE PSEUDO CODE nabtostartup() h = nabtoopensession(email, password) JSON1 = nabtofetchurl(h, url) parseandhandlejson(json1) JSON2 = nabtofetchurl(h, url) parseandhandlejson(json2) JSON3 = nabtofetchurl(h, url) parseandhandlejson(json3) nabtoclosesession(h) nabtoshutdown()
NON-PSEUDO nabto_status_t status; nabto_handle_t session; status = nabtostartup("."); if (status!= NABTO_OK) {... /* do error handling */ } status = nabtoopensession(&session, email, password); char* resultbuffer; size_t resultlen; char* mimetypebuffer; status = nabtofetchurl(session, url, &resultbuffer, &resultlen, &mimetypebuffer); if (strcmp(mimetypebuffer, "text/html") == 0) { printbufferasstring(resultbuffer, resultlen); } else { // do other stuff } nabtofree(resultbuffer); nabtofree(mimetypebuffer); status = nabtoclosesession(session);
CLIENT API ACCESS TO THE RAW DATAAPI Client Software Client API (C/C++/C#) DataAPI Embedded Logic
MEMORY FOOTPRINT - EXAMPLES - Microdevice requirements Memory Flash (KB) (Bytes) u WEB - LAN only (**) 8 512 Remote capability +14 +215 Encryption +10 +1024 Device VPN RM RM TCP Relay fallback * * Streaming (WEB only) 20 +2048 Tunnelling * * RM = Roadmap * = Depends on the TCP/IP stack ** = Is required The requirements are estimations based upon measurements on a PIC18 Microchip compiler and IP-stack
COMPARISON Examples: Key Features Autonomous LAN operation (Works even if WAN-line is offline) Cloud competitor Axeda, ILS, IO Bridge Net device based Lantronix, Moxa, Digi, Wiznet PC program / APP YES NO Depends DEPENDS Minimal device architecture YES YES NO DEPENDS Privacy protection YES NO YES YES Central management of user interface YES YES NO NO Minimal latency YES NO Depends YES Standardized Device Communication YES NO NO NO Platform VPN feature YES Possible NO NO Built-in scalability YES Possible NO NO Built-in device management features YES NO NO NO Minimal firewall knowledge required of YES YES NO NO end user Minimal IP knowledge required by end YES YES NO NO user RTOS support YES Possible Possible Possible X509 authentication YES Possible Possible NO Built-in notification service (SMS and YES NO NO NO Email) Built-in remote firmware update YES NO NO NO
REAL LIFE EXAMPLE: DANFOSS Freescale MCF52255 64kb RAM 512kb flash
IT S THAT EASY NOW YOU GOT A simple webserver interface on your device PC, Tablet, Smart Phones and Handhelds Easy local and remote connectivity to your device Just type the device ID in the browser Multi-language and multi-interface GUI Optional central services Remote update Storage and logging abillity
www.nabto.com