communication platform for the internet of things

40
COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

Upload: others

Post on 12-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

COMMUNICATION PLATFORM FOR

THE INTERNET OF THINGS

Page 2: 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

Page 3: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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”

Page 4: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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

Page 5: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

VALUE PROPOSITION

Customer Challenges Nabto’s Solution

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.

Seamless Remote Access Nabto 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, Nabto also offers easy discovery and autonomous access without being connected to the internet or “cloud”.

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.

Lowest cost and simple Nabto is a web technology framework designed for resource constrained devices. Nabto can be executed in very small environments creating a more simplified design, smaller footprint which results in a much lower cost solution.

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.

Higher Security Nabto offers remote access encryption and authentication using SSL, X509 and PKI security protocols.

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.

Multi-Platform support Nabto 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.

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.

Higher scaling cloud platform Nabto offers a cloud + P2P platform allowing higher scalability than any known cloud services. With Nabto, 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 peer-to-peer (P2P). Nabto offers both hosting services and direct ownership.

Page 6: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

CUSTOMERS

Page 7: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

SO WHAT IS IT?

• Basically Nabto is : A cloud system + extra

• Why extra?

– Autonomous operation

– Privacy protection

– Peer2Peer direct connection, similar to “Skype”

Page 8: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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%

Page 9: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

PRODUCT

Browser Nabto

Protocol Plugin

Nabto Device

Interface

Product logic

PC/Smartphone Internet aware device

Nabto Central

Services/ Basestation

It’s a software communication platform

3 parts in Nabto system: - Browser Plugin (Free, downloadable or on CD) - Basestation (hosted service, pure software delivery or hardware appliance, up to 100k devices) - Nabto device interface (pure software delivery offering consumer and industrial grade)

http://

Page 10: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

BUSINESS MODEL

Browser Nabto

Protocol Plugin

Nabto Interface

Product logic

PC/Smartphone Internet aware device

Nabto Base

station

$

$

Free

Device manufactures license the platform

3 parts in Nabto system: - Browser Plugin (Free, downloadable or on CD) - Basestation (hosted service, pure software delivery or hardware appliance, up to 100k devices) - Nabto device interface (pure software delivery offering consumer and industrial grade)

Page 11: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

THE NABTO TECHNOLOGY SIMPLE, CONNECT AND SECURE

Page 12: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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….!!!

Page 13: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

DEVICE SIDE NEEDS

External RAM

UDP stack

System On Chip

What you have What you want

Complex = Costly development Big platform = Costly production Integrated GUI = Costly maintenance

ARM Atom

ColdFire

External Flash

Kernel

TCP/IP Stack

WEB-server

CGI-script Static content Nabto

Data API

Complex and expensive Simple and inexpensive

Simple = Efficient development Small platform = Inexpensive production Decoupled GUI = Easy maintenance

Filesystem

Page 14: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

NABTO – BASIC CLOUD SETUP

UDP stack

System On Chip

Device

Nabto Data API

Browser

Device Web Interface logic

PC

Cloud service

HTTP connection Data connection

Page 15: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

NABTO – AUTONOMOUS SETUP

UDP stack

System On Chip

Device

Nabto Data API Browser

Basestation

PC

Cloud service

P2P connection

Data connection

Nabto Plugin

Discovery services

Page 16: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

1. IMPLEMENT 4 FUNCTIONS

ReadUDP() WriteUDP()

Tick() WebServer()

Nabto Device

Software

Platform Interface

Device platform

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)

Page 17: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

2. IMPLEMENT HTML-DD

Browser Nabto

Protocol Plugin

Nabto Data API

Embedded Logic

Client Internet aware device

“HTML-Device driver” encapsulates GUI and defines specific data transport interface of the device

HTML Device Driver

Compact simple protocol

Page 18: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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

Page 19: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

MICRO WEB SERVER EXAMPLE

• Web server running on 8 bit Atmel AVR CPU with 2 kB of RAM, 32 kB flash

Page 20: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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)

Page 21: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

LIGHT WEIGHT VERSION

Nabto Protocol Plugin

Nabto Data API

Embedded Logic

Internet aware device

Browser

User input - via a nice menu nabto://05924.homeautomation.com/getTemperature?sensor=3

0x0a | 0x00 0x03 | 0x00

Buf[0] : GetTemperature request identifier Buf[0,1] : Sensor identification Buf[3] : Filter identification (see former slide for XML definition)

Request buffer:

WebServe( 0x0a, &Buf[1], 3 )

C call

Page 22: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

LIGHT WEIGHT VERSION

Nabto Protocol Plugin

Nabto Data API

Embedded Logic

Internet aware device

Browser

0x16 0x80

Content of houseTemperature.tpt: <html><body> <h1>The temperature is: ${temperature}</h1> </body></html>

Response buffer:

WebServe() function returns response buffer

The temperature is: 22,5

User GUI

HTML rendering Via houseTemperature.tpt

Page 23: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

ALL PUT TOGETHER

Browser

Web Interface

Nabto Data API

Embedded Logic

PC Internet aware device

Nabto Base

station

http://

DNS address of the device points to cloudservices 5834.homeautomation.net

Cloud service

nabto://

Page 24: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

ALL PUT TOGETHER

Browser Nabto Data API

Embedded Logic

PC Internet aware device

Nabto Base station

Connect Mediation

Cloud service

1 Plugin detection is performed 2 The Nabto plugin is installed 3 HTML DD is downloaded

Nabto Protocol

Plugin P2P nabto://

Page 25: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

STUN (RFC 5389, 3489)

Nabto STUN NAT

UDP socket IP1,Port1

UDP socket IPS2,PortS2

UDP socket IPS1,PortS1

UDP socket IP-FW,Port-FW Same for IPS1 and IPS2?

Bind a local UDP socket, and examine its public internet IP and Port

Page 26: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

UDP HOLEPUNCHING

Nabto Client

Base station

NAT

MYADDRESS: UDP socket IP-FW1,Port-FW1

Nabto Device

NAT

MYADDRESS: UDP socket IP-FW2,Port-FW2

Transmit this information via the basestation to/from both peers

Page 27: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

NO INTERNET – NO PROBLEM

Browser Nabto

Protocol Plugin

Nabto Data

Interface

Embedded Logic

PC Nabto device

2. I’m here : IP address

3. nabto:// connection

NB: LAN can be just a net-cable from Laptop to device

1. Broadcast : are you on LAN?

Page 28: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

LOCALIZATION – SAME FIRMWARE

Browser Nabto

Protocol Plugin

Nabto DataAPI

Embedded Logic

PC Internet aware device

Nabto Base

station

nabto://

English HTML-DD

Spanish HTML-DD

French HTML-DD

German HTML-DD

Page 29: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

OEM’S – IN SAME FIRMWARE

Browser Nabto

Protocol Plugin

Nabto Data API

Embedded Logic

PC Internet aware device

Nabto Base

station

nabto://

Company HTML-DD

OEM1 HTML-DD

OEM2 HTML-DD

OEM3 HTML-DD

Page 30: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

SIMPLE LOGGING, SMS AND EMAIL

Browser Nabto

Protocol Plugin

Nabto DataAPI

Embedded Logic

PC Internet aware device

Nabto Base

station

Log server

Log SMS Email

SMTP gateway

SMS Gateway

Page 31: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

CLIENT API

Customer Client

Software

Nabto Protocol Adapter

PC / Smartphone

TCP Port

On demand TCP-Portforwarding

Nabto Protocol Adapter

IP interface

On demand VPN-forwarding Virtual

Network card

Browser

On demand HTTP-proxyforwarding

Nabto Protocol plugin

APP

On demand Low-footprint HTTP

Nabto ClientAPI

Programatic

Remote Procedure Calls Or JSON requests

Page 32: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

NABTO – CLIENTAPI - PROGRAM CONNECTION

UDP stack

System On Chip

Device

Nabto Data API Program

Basestation

PC

Cloud service

P2P connection

Data connection

Nabto Client

API

Discovery services

Page 33: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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()

Page 34: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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);

Page 35: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

CLIENT API ACCESS TO THE RAW DATAAPI

Client Software

Nabto Client

API (C/C++/C#)

Nabto DataAPI

Embedded Logic

Page 36: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

MEMORY FOOTPRINT - EXAMPLES

Nabto - Microdevice requirements

Flash (KB) Memory

(Bytes) uNabto 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

Page 37: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

COMPARISON

Nabto Cloud competitor

Net device based

PC program / APP

Examples: Axeda, ILS, IO Bridge

Lantronix, Moxa, Digi,

Wiznet Key Features Autonomous LAN operation (Works even if WAN-line is offline)

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 Platform

YES NO NO NO

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 end user

YES YES NO NO

Minimal IP knowledge required by end user

YES YES NO NO

RTOS support YES Possible Possible Possible X509 authentication YES Possible Possible NO

Built-in notification service (SMS and Email)

YES NO NO NO

Built-in remote firmware update YES NO NO NO

Page 38: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

REAL LIFE EXAMPLE: DANFOSS

Freescale MCF52255 – 64kb RAM 512kb flash

Page 39: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

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

Page 40: COMMUNICATION PLATFORM FOR THE INTERNET OF THINGS

www.nabto.com