secon'2016. Кардава Звиад, Концепция physical web. eddystone format....

50
Google’s Beacon platform Physical Web

Upload: secon

Post on 13-Feb-2017

339 views

Category:

Mobile


0 download

TRANSCRIPT

Page 1: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Google’s Beacon platform

Physical Web

Page 2: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Маячки (от англ. beacon)

Page 3: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

How it works?

Page 4: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Beacons

Page 5: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

iBeacon by Apple

Page 6: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

AltBeacon by RadiusNetworks

Page 7: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

1. Транслирует только 1 advertising packet

2. Нужно ставить стороннее приложение (КАЖДЫЙ РАЗ!)

3. Назойливость

4. Безопасность

Disadvantages

Page 8: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

https://github.com/google/eddystone

Page 9: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Eddystone

Page 10: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Eddystone-UID Eddystone-URL Eddystone-TLM Eddystone-EID

Eddystone-ETLM

1 byte frame type = 0x001 byte Tx power at 0 m

10 byte - Namespace ID6 byte - Instance ID

2 bytes reserved

1 byte frame type = 0x011 byte Tx power at 0 m

18 byte only 1 byte - URL prefix:

0x00 - http://www0x01 - https://www0x02 - http://0х03 - https://

1 byte TLM version = 0x00

16 bit random salt16-bit integrity check tag

1 byte frame type = 0x201 byte TLM version = 0x00

Battery voltageBeacon temperatureAdvertising PDU countTime since power-on

1 byte frame type = 0x201 byte TLM version = 0x00

8-byte Ephemeral Identifier

Page 11: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform
Page 12: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Eddystone Configuration GATT Service● Интероперабельность ● Single connection● Characteristics:

7. Unlock

8. Public ECDH Key

9. EID Identity Key

10. ADV Slot Data

11. (Advanced) Factory reset

12. (Advanced) Remain Connectable

1. Capabilities

2. Active Slot

3. Advertising Interval

4. Radio Tx Power

5. (Advanced) Advertised Tx Power

6. Lock State

https://github.com/google/eddystone/tree/master/configuration-service

Page 13: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Physical Web

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

Page 14: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Internet of Things

Page 15: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Interaction today

Page 16: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Smart Things

Page 17: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Smart Things

Page 18: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

URL

URL

URL

Physical Web Service

Page 19: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

1. Classic Web

Page 20: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

2. Cloud Passtrough

Page 21: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

JavaScript

3. Web Bluetooth

Page 23: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Web

Page 24: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Web

Page 25: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Web

Page 26: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Web

Page 27: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Super Power of WEB

Page 28: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform
Page 29: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform
Page 30: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform
Page 31: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Physical Web

Page 32: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

What you need?

Page 33: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Physical Web

Page 34: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Beacons Configuration

Page 35: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

● Простая идея● Просто реализуется● Работает● Уважение к пользователю● Открытый проект● Улучшается вместе с Web

The Physical Web

Page 36: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Google’s beacon platform

Page 37: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Google’s Beacon Platform

Page 38: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Google Cloud Platform

Page 39: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Proximity beacon API

Page 40: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Proximity API

Page 41: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Proximity API

Page 42: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

● Advertised ID должен быть корректным Eddystone-UID

● (16 байт, содержащих 10 байт namespaceId и 6 байт instance Id).

● Значение Advertised ID должно быть base64 представлением данных.

● Маячки представлены в виде ресурса beacon и могут быть зарегистрированы

вызовом метода beacons.register.

● Маячок может быть зарегистрирован одновременно только в одном проекте в

Google Developers Console

● Как только маячок зарегистрирован, его поле AdvertisedID не может быть

изменено.

Advertised ID

Page 43: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

● Advertised ID (обязательно)

● Текущий статус — активный, не активный, выведенный из эксплуатации.

● Стабильность — выражает ожидаемую стабильность размещения. (Стабильный,

редко перемещаемый, часто перемещаемый, постоянно перемещающийся)

● Широта и долгота — пара double представляющих значение в градусах. Должны

соответствовать представлению WGS84, если не указано иное. Значения должны

быть в пределах нормализованных диапазонов.

● Уровень внутри здания — человеко читаемая строка, что бы указать на каком

этаже расположен маячок.

● Google Places API Place ID

● Текстовое описание

● Произвольные свойства, такие как пара ключ/значение

Metadata

Page 44: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

К маячкам можно привязывать произвольные данные(Attachments). Они представляют и себя блобы, хранимые в Google’s scalable cloud.

При создании вложения вам нужно заполнить два поля:● namespacedType — строка состоящая из идентификатора пространства

имён, косой черты и типа данных. Напирмер: surreptitious-banjo-145/string

● data — base64 представление типа данных определенного в поле namespacedType. Например: aGVsbG8gd29ybGQh

Что бы выяснить какие пространства имён связанны с вашим проектом можно вызвать namespaces.list

Вложения могут быть длиной до 1024 байт.

Register a beacon

Page 45: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Маячок не может быть просто удален из Google Beacons Registry. Есть два варианта как можно перевести маячок в режим офлайн:

● beacons.deactivate для того что бы временно удалить маячок. После

деактивации, API не будет возвращать ни привязанные данные, ни

информацию по маячку. Для того что вернуть маяк в рабочее состояние

нужно вызвать beacons.activate

● beacons.decommission что бы навсегда деактивировать beacon ID. Вы

больше не сможете использовать ID с которым он был ранее

зарегистрирован. Но вы можете легко назначить маячку новый ID и

перерегистрировать маячок с новым ID

Unregister a beacon

Page 46: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Nearby messages API

Page 47: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

1. Google Play services ≥ 7.8.0

2. Подписка на сообщения: ● В активном режиме ● В фоновом режиме

3. Запрос разрешения у пользователя:● Присоединить result callback к вызовам publish() and subscribe().● Использовать Nearby.Messages.getPermissionStatus() что бы проверить

статус разрешения непосредственно перед вызовом publish() или subscribe()

4. Стратегии сканирования

Nearby messages on Android

Page 48: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

1. $ sudo gem install cocoapodssource 'https://github.com/CocoaPods/Specs.git'platform :ios, '7.0'pod 'NearbyMessages

$ pod install

2. Подписка на сообщения: ● Только в активном режиме

3. Стратегии сканирования

Nearby messages on iOS

Page 49: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Links

● https://google.github.io/physical-web/● https://developers.google.com/beacons/● https://github.com/google/eddystone● https://developers.google.com/beacons/proximity/guides● https://developers.google.com/nearby/messages/overview

● https://habrahabr.ru/post/279381/○ моя статья на хабре про proximity api

● https://habrahabr.ru/post/279379/○ моя статья на хабре про nearby messages api

● https://habrahabr.ru/post/281877/○ моя статья на хабре про Eddystone-EID

Page 50: SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform

Tahnk you!

Google Developer Expert:Internet of Things

email: [email protected] google+: zviadkardava twitter: zviadkardava