GDG Eddystone overview Aug2016

26
David Pugh @davidpugh_dpa @gcell_uk Google Eddystone and the Physical Web

Transcript of GDG Eddystone overview Aug2016

David Pugh@davidpugh_dpa

@gcell_uk

Google Eddystone and the Physical Web

What are Beacons?

BLE restricts the size of the message beacons can send so usually they just send out a static message advertising a unique identifier.

Beacons are devices that sit broadcast a BlueTooth Low Energy (BLE) signal.

The message is usually broadcast at between 1-10 times a second and the beacon hardware tend to be small battery powered devices.

A nearby smart device can choose to scan for these, see them and then decide to perform an action based on the beacon ID.

Beacons are passive – they have a fixed message and communication is one way.

They do not deliver data, only provide a trigger.

Flavours There are a number of different beacon

specifications – e.g.,

iBeaconthe original beacon specification from Apple.

Its main advantage is the built in iOS API that allows background notifications.

EddystoneOpen beacon platform project from

Google, including the Physical Web & working with Proximity

and Nearby APIs

AltBeaconOpen beacon platform from

Radius Networks

So why would I use one?Instead of using location, we can use proximity.

The beacon can move (e.g, buses, trains, taxis, people, dragons).

Lower power, 1-10m accuracy (including vertical).

They work indoors and outdoors.

UID static unique ID

URL compressed URL, usable by the client

TLM telemetry data sent alongside UID/URLEID

time varying security protocol for UID/TLM

Usually, when people talk about Eddystone, they mean Eddystone URL aka

The concept behind this is to extend existing web sites, allowing beacons to broadcast URLS to devices around them.

There is no need to develop a specific app.

URL Beacon

Beacon advertises a URL

Physical Web App or Chrome sees BLE signal

Android – scans when prompted or device unlockediOS – scans on Today View refresh

Google Physical Web Server

Google Servers check & filters out unsafe & ranks

(Chrome)

App displays URLs and Metadata in order

of nearness, quality & non-personalised relevance

Android – silent notification

Google Physical Web: how it works?

1

2

34

The aim is to get Frictionless web page discovery – no more QR codes or typing in addresses.

Eg, I can send a link to the Library website for users as they visit.

Physical objects will lead you to relevant information if you are close to them.

Getting it to Work – Chrome on Android• Inbuilt for Chrome 49 onwards• Switch on Bluetooth and location

• You may automatically receive a notification if beacon devices are nearby

Enable Physical Web in Chrome Settings-> Privacy → Physical Web

Getting it to Work – Chrome on iOS• Switch on Bluetooth• Install Chrome• Enable the Chrome Widget in the Today View

• Refresh the Today page

Getting your URL advertised

Eddystone URL devices are configured through the Physical Web App.

You are restricted with the length of the URL, so more than likely you will need to shorten the URL.

Using a shortener like tiny.cc or hosting your own shortener allows you to change the redirect without

reprogramming the beacon.

Not all URLS are treated the same!

Chrome Physcial Web Chrome Physical Web

Meta Data fetch

Site Summary Description Yes No Yes Yes

Local Site http://mycomputer.local No Yes No No

Unsecure site http://gcell.com Yes Yes No Yes

Secure site https://twitter.com Yes Yes Yes Yes

Fake Site https://madeupname.wal No Yes No Yes

To increase security Google Chrome on Android restricts the URLs it shows. However this is not uniform across

OS and apps! This is also set to change.

ANDROIDiOS

Misconceptions about Physical WebYou don't need an app!

Actually you do, it just happens to be one that already exists.

Notifications just appear! No – you need to set up Physical web on your phone either through

Chrome. Sometimes you'll get notifications on android but in general, you have to purposely search to see the URLs.

You can advertise anything! No – sites need to be https and are monitored by Google

servers.

iBeacon Physical Web

Product Shipping Apple Product, APIs and functionality in iOS

Project, but with built in support in Chrome 49+

Source Specification is public, controlled by Apple

Open source, Apache 2.0 licence

Hardware BLE Beacon, specification by Apple, must be certified to manufacture

BLE Beacons, some WiFi support starting to emerge

Beacon payload

Proximity UUID, Major and Minor Numbers

URL Formatted to Physical Web Spec

Alerts/ Background

IOS allows background notifications Within Chrome automatic scan for a few seconds every device unlock/Today View refresh. Silent Notifications in Android.

Physical Web & iBeacon?

UID static unique ID

TLMtelemetry data paired

alongside UID

EID time varying security protocol for UID/TLM

Nearby NotificationsNearby Notifications is part of the Google Nearby API, allowing device interactions based on proximity. This allows interaction with beacons outside of Chrome.

You can associate an app & website with a BLE beacon. You can then integrate the functionality into your app or send messages to devices via Google Play.

Android users near the beacon will receive a notification that leads to:

A trigger to the user to install a white listed app – message pushed through Google Play.

A trigger an app intent to launch the pre-installed app and get it to perform an action (or go to a web fallback URL).

Open a Mobile Web site

Proximity Beacon APIGoogle Proximity Beacon API is a cloud service that allows management of beacons using a REST API.

You can associate a Latitude, Longitude and Floor number with your UID/EID beacon, and also monitor data sent via TLM.

Android users near the beacon can then receive a notification through Nearby Messages API.

Data is associated to your beacon as attachments Data can be updated remotely You can also Open a mobile website

This can also be managed through the Google Beacon Dashboard and Beacon Tools App.Integrating this into your app automatically deals with beacon scanning in both fore and background.

Beacon Dashboard & Beacon Tools

Manage online through Google Beacons Dashboard

Search for & register beacons using Beacon Tools App

Find out how to integrate in your app using Google Code labs: https://codelabs.developers.google.com/codelabs/hello-beacons/index.html#0

Use Nearby API to automatically scan

& receive messages in your app

1

2

3

Comparing URL and UID

UIDUtilise with native app and/or

Google Beacon Proximity and Nearby APIs to deliver attachments & trigger actions to develop responsive, sophisticated

experiences.Use TLM to provide remote telemetric

data on your hardware fleetAdd EID to secure the beacon ID

and TLM data.

URLSend a secure Web URL that can be

opened directly in Chrome'Walk up and use'

Makes opening web pages smoother.Works with Chrome and Physical Web Apps on iOS and Android.

Used with AppIntegrate Nearby & Proximity API Chrome or Physical Web

ChallengesCreativityPlenty of creative ideas, but need to focus on genuinely improving experience & enhancing an existing app. You need to give users a reason to download and switch on Bluetooth!

Infa-structureThe standards are still evolving & there are still some compatibility issues.

Beacon lifetime is improving (e.g., 5-8 years lifetime), hardware cost is decreasing & experience in installing is becoming more widespread.

DataBe really clear to the user what the beacons are doing and why. Make sure you are clear about what data

is being collected and what is being done with it.

Future Developments

WiFi direct and mDNS for users with Bluetooth off, and to allow larger scale and private Physical Web networks.

FatBeacon – enables you to connect to the beacon so it can send an embedded html to your device (10kB).

https://github.com/google/physical-web/releases

Sharing on Physical Web App–turn your phone or device into a URL Beacon.

Eddystone-GATT allows open development of BLE ecosystem.

More uniform experience – https required across iOS and Android Chrome extensions.

Other browsers are supporting the physical web as well (Firefox OS and a dev build for Opera for Android).

Thank you

David Pugh@davidpugh_dpa

@gcell_uk

Developing Beacon experiences

Focus on the experience

Don't rely on the notifications or delivered content – you can't always guarantee it; instead think about making relevant content more easily available to users when they want it.

Remember that iBeacon/E-UID beacon doesn't always need to trigger something for the user – passive monitoring can drive better experiences.

Many notifications are irritating and drive people to their screens rather than to the environment they are in; be very tailored and select in what you deliver.

Security and EID

Eddystone EID periodically changes the 8bit ID on the UID beacon to restrict access to authorised users

8 bit AES-encrypted ID is changed psuedo-randomly with a pre-configured period of between 1s to 9 hours.

Applications may want to limit who can use their beacon infastructure, or stop others spoofing (copying in another location) or piggybacking (using your beacon to send their message)

Id is generated on the beacon using a key and timer, and key is exchanged with Proximity API during configuration (either shared or exchanged).

When a beacon is seen the current EID is sent to the Proximity API and it determines if the app is authorised to see the beacon details; if so it serves a Nearby message.

Useful Links(if only there was a way for this presentation to automatically get your smart device to open these relevant links....)

Overview of Eddystone:https://www.linkedin.com/pulse/sharing-urls-easily-public-david-pugh?trk=mp-reader-card

Google Documentation and Guides

Google Beacon Ecosystem

https://developers.google.com/beacons/

Eddystone & Physical Web GitHub – good to see the specs and catch the discussion on latest experiments. Start at the Physcial Web Repo!

https://github.com/google/eddystone

https://github.com/google/physical-web

Find out how to integrate Nearby Notification in your app and use the

Dashboard and Beacon Tool app , see Google Code labs: https://codelabs.developers.google.com/codelabs/hello-beacons/index.html#0