SlideShare a Scribd company logo
Google’s Beacon platform
Physical Web
Маячки (от англ. beacon)
How it works?
Beacons
iBeacon by Apple
AltBeacon by RadiusNetworks
1. Транслирует только 1 advertising packet
2. Нужно ставить стороннее приложение (КАЖДЫЙ РАЗ!)
3. Назойливость
4. Безопасность
Disadvantages
https://github.com/google/eddystone
Eddystone
Eddystone-UID Eddystone-URL Eddystone-TLM Eddystone-EID
Eddystone-ETLM
1 byte frame type = 0x00
1 byte Tx power at 0 m
10 byte - Namespace ID
6 byte - Instance ID
2 bytes reserved
1 byte frame type = 0x01
1 byte Tx power at 0 m
18 byte only
1 byte - URL prefix:
0x00 - http://www
0x01 - https://www
0x02 - http://
0х03 - https://
1 byte TLM version = 0x00
16 bit random salt
16-bit integrity check tag
1 byte frame type = 0x20
1 byte TLM version = 0x00
Battery voltage
Beacon temperature
Advertising PDU count
Time since power-on
1 byte frame type = 0x20
1 byte TLM version = 0x00
8-byte Ephemeral Identifier
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
Physical Web
https://google.github.io/physical-web/
Internet of Things
Interaction today
Smart Things
Smart Things
URL
URL
URL
Physical Web Service
1. Classic Web
2. Cloud Passtrough
JavaScript
3. Web Bluetooth
Web Bluetooth
Web
Web
Web
Web
Super Power of WEB
SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform
SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform
SECON'2016. Кардава Звиад, Концепция Physical web. Eddystone format. Google beacon platform
Physical Web
What you need?
Physical Web
Beacons Configuration
● Простая идея
● Просто реализуется
● Работает
● Уважение к пользователю
● Открытый проект
● Улучшается вместе с Web
The Physical Web
Google’s beacon platform
Google’s Beacon Platform
Google Cloud Platform
Proximity beacon API
Proximity API
Proximity API
● Advertised ID должен быть корректным Eddystone-UID
● (16 байт, содержащих 10 байт namespaceId и 6 байт instance Id).
● Значение Advertised ID должно быть base64 представлением данных.
● Маячки представлены в виде ресурса beacon и могут быть зарегистрированы
вызовом метода beacons.register.
● Маячок может быть зарегистрирован одновременно только в одном проекте в
Google Developers Console
● Как только маячок зарегистрирован, его поле AdvertisedID не может быть
изменено.
Advertised ID
● Advertised ID (обязательно)
● Текущий статус — активный, не активный, выведенный из эксплуатации.
● Стабильность — выражает ожидаемую стабильность размещения. (Стабильный,
редко перемещаемый, часто перемещаемый, постоянно перемещающийся)
● Широта и долгота — пара double представляющих значение в градусах. Должны
соответствовать представлению WGS84, если не указано иное. Значения должны
быть в пределах нормализованных диапазонов.
● Уровень внутри здания — человеко читаемая строка, что бы указать на каком
этаже расположен маячок.
● Google Places API Place ID
● Текстовое описание
● Произвольные свойства, такие как пара ключ/значение
Metadata
К маячкам можно привязывать произвольные данные(Attachments). Они
представляют и себя блобы, хранимые в Google’s scalable cloud.
При создании вложения вам нужно заполнить два поля:
● namespacedType — строка состоящая из идентификатора пространства
имён, косой черты и типа данных.
Напирмер: surreptitious-banjo-145/string
● data — base64 представление типа данных определенного в поле
namespacedType.
Например: aGVsbG8gd29ybGQh
Что бы выяснить какие пространства имён связанны с вашим проектом можно
вызвать namespaces.list
Вложения могут быть длиной до 1024 байт.
Register a beacon
Маячок не может быть просто удален из Google Beacons Registry. Есть два
варианта как можно перевести маячок в режим офлайн:
● beacons.deactivate для того что бы временно удалить маячок. После
деактивации, API не будет возвращать ни привязанные данные, ни
информацию по маячку. Для того что вернуть маяк в рабочее состояние
нужно вызвать beacons.activate
● beacons.decommission что бы навсегда деактивировать beacon ID. Вы
больше не сможете использовать ID с которым он был ранее
зарегистрирован. Но вы можете легко назначить маячку новый ID и
перерегистрировать маячок с новым ID
Unregister a beacon
Nearby messages API
1. Google Play services ≥ 7.8.0
2. Подписка на сообщения:
● В активном режиме
● В фоновом режиме
3. Запрос разрешения у пользователя:
● Присоединить result callback к вызовам publish() and subscribe().
● Использовать Nearby.Messages.getPermissionStatus() что бы проверить
статус разрешения непосредственно перед вызовом publish() или
subscribe()
4. Стратегии сканирования
Nearby messages on Android
1. $ sudo gem install cocoapods
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
pod 'NearbyMessages
$ pod install
2. Подписка на сообщения:
● Только в активном режиме
3. Стратегии сканирования
Nearby messages on iOS
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
Tahnk you!
Google Developer Expert:
Internet of Things
email: zviadkardava@gmail.com
google+: zviadkardava
twitter: zviadkardava

More Related Content

PDF
SECON'2016. Съедугин Андрей, Сказ о том, как идеальный программист с идеальны...
PDF
SECON'2016. Пименов Алексей, Как не выстрелить себе в ногу внедряя KPI
PPTX
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
PDF
SECON'2016. Ефимов Максим, JMM в Android
PPTX
SECON'2016. Лексунин Евгений, Как не запутаться в веб-разработке
PDF
SECON'2016. Приходько Артём, Модульное JavaScript приложение
PDF
SECON'2016. Александр Шитиков, Кузнецов Максим, Кроссплатформенная разработка...
PDF
SECON'2016. Васильков Василий, Серверное программирование сегодня
SECON'2016. Съедугин Андрей, Сказ о том, как идеальный программист с идеальны...
SECON'2016. Пименов Алексей, Как не выстрелить себе в ногу внедряя KPI
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Ефимов Максим, JMM в Android
SECON'2016. Лексунин Евгений, Как не запутаться в веб-разработке
SECON'2016. Приходько Артём, Модульное JavaScript приложение
SECON'2016. Александр Шитиков, Кузнецов Максим, Кроссплатформенная разработка...
SECON'2016. Васильков Василий, Серверное программирование сегодня

Viewers also liked (19)

PDF
SECON'2016. Бочкарев Игорь, Реактивные мобильные приложения
PDF
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
PDF
SECON'2016. Бушмелев Юрий, Два титановых шарика
PDF
Смирнов Александр, Security in Android Application
PDF
SECON'2016. Кириллов Александр, Continuous Integration под микроскопом
PDF
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
PPTX
SECON'2016. Трошин Алексей, От 1 до 100: особенности выстраивания процессов в...
PDF
SECON'2016. Барсуков Александр, Боссами не рождаются
PPTX
SECON'2016. Тарасенко Анна, Принцип YAGNI в управлении проектами
PDF
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
PDF
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
PDF
SECON'2016. Мухаметов Андрей, RxSwift && Apple TV - так ли хорошо всё новое?
PDF
SECON'2016. Кузнецов Вячеслав, Workflow одной Ops-команды
PDF
SECON'2016. Ежков Денис, Верстка на автопилоте. Почему я не использую flexbox
PDF
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
PDF
SECON'2016. Кочков Антон, Рютин Борис, Radare2 - от A до Z
PDF
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
PPTX
SECON'2016. Алексеев Олег, Живой API
PPTX
SECON'2016. Круглый стол. Обучение программированию в средней школе. Новейшие...
SECON'2016. Бочкарев Игорь, Реактивные мобильные приложения
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Бушмелев Юрий, Два титановых шарика
Смирнов Александр, Security in Android Application
SECON'2016. Кириллов Александр, Continuous Integration под микроскопом
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Трошин Алексей, От 1 до 100: особенности выстраивания процессов в...
SECON'2016. Барсуков Александр, Боссами не рождаются
SECON'2016. Тарасенко Анна, Принцип YAGNI в управлении проектами
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Мухаметов Андрей, RxSwift && Apple TV - так ли хорошо всё новое?
SECON'2016. Кузнецов Вячеслав, Workflow одной Ops-команды
SECON'2016. Ежков Денис, Верстка на автопилоте. Почему я не использую flexbox
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Кочков Антон, Рютин Борис, Radare2 - от A до Z
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
SECON'2016. Алексеев Олег, Живой API
SECON'2016. Круглый стол. Обучение программированию в средней школе. Новейшие...
Ad

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

PPTX
Droidcon Moscow 2015. Nearby новые возможности взаимодействия рядом. Антон Пу...
PDF
Ibeacon in real life #iotconfua
PDF
Вводный семинар по технологии iBeacon
PDF
#MBLTdev: Трилатерация с помощью iBeacon
PDF
Как превратить приложение в платформу
PDF
Лекция Google Cloud Platform
Droidcon Moscow 2015. Nearby новые возможности взаимодействия рядом. Антон Пу...
Ibeacon in real life #iotconfua
Вводный семинар по технологии iBeacon
#MBLTdev: Трилатерация с помощью iBeacon
Как превратить приложение в платформу
Лекция Google Cloud Platform
Ad

More from SECON (20)

PDF
SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
PPTX
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
PDF
SECON'2017, Васильков Василий, Elm в production
PPTX
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
PPTX
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
PPTX
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
PPTX
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
PPTX
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
PPTX
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
PPTX
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
PPTX
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
PPTX
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
PDF
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
PDF
SECON'2017, Цаль-Цалко Иван, Go на практике
PPTX
SECON'2017, Неволин Роман, Функциональный C#
PDF
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
PPTX
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
PPTX
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
PPTX
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
PPTX
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Васильков Василий, Elm в production
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.

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

  • 7. 1. Транслирует только 1 advertising packet 2. Нужно ставить стороннее приложение (КАЖДЫЙ РАЗ!) 3. Назойливость 4. Безопасность Disadvantages
  • 10. Eddystone-UID Eddystone-URL Eddystone-TLM Eddystone-EID Eddystone-ETLM 1 byte frame type = 0x00 1 byte Tx power at 0 m 10 byte - Namespace ID 6 byte - Instance ID 2 bytes reserved 1 byte frame type = 0x01 1 byte Tx power at 0 m 18 byte only 1 byte - URL prefix: 0x00 - http://www 0x01 - https://www 0x02 - http:// 0х03 - https:// 1 byte TLM version = 0x00 16 bit random salt 16-bit integrity check tag 1 byte frame type = 0x20 1 byte TLM version = 0x00 Battery voltage Beacon temperature Advertising PDU count Time since power-on 1 byte frame type = 0x20 1 byte TLM version = 0x00 8-byte Ephemeral Identifier
  • 12. 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
  • 23. Web
  • 24. Web
  • 25. Web
  • 26. Web
  • 35. ● Простая идея ● Просто реализуется ● Работает ● Уважение к пользователю ● Открытый проект ● Улучшается вместе с Web The Physical Web
  • 42. ● Advertised ID должен быть корректным Eddystone-UID ● (16 байт, содержащих 10 байт namespaceId и 6 байт instance Id). ● Значение Advertised ID должно быть base64 представлением данных. ● Маячки представлены в виде ресурса beacon и могут быть зарегистрированы вызовом метода beacons.register. ● Маячок может быть зарегистрирован одновременно только в одном проекте в Google Developers Console ● Как только маячок зарегистрирован, его поле AdvertisedID не может быть изменено. Advertised ID
  • 43. ● Advertised ID (обязательно) ● Текущий статус — активный, не активный, выведенный из эксплуатации. ● Стабильность — выражает ожидаемую стабильность размещения. (Стабильный, редко перемещаемый, часто перемещаемый, постоянно перемещающийся) ● Широта и долгота — пара double представляющих значение в градусах. Должны соответствовать представлению WGS84, если не указано иное. Значения должны быть в пределах нормализованных диапазонов. ● Уровень внутри здания — человеко читаемая строка, что бы указать на каком этаже расположен маячок. ● Google Places API Place ID ● Текстовое описание ● Произвольные свойства, такие как пара ключ/значение Metadata
  • 44. К маячкам можно привязывать произвольные данные(Attachments). Они представляют и себя блобы, хранимые в Google’s scalable cloud. При создании вложения вам нужно заполнить два поля: ● namespacedType — строка состоящая из идентификатора пространства имён, косой черты и типа данных. Напирмер: surreptitious-banjo-145/string ● data — base64 представление типа данных определенного в поле namespacedType. Например: aGVsbG8gd29ybGQh Что бы выяснить какие пространства имён связанны с вашим проектом можно вызвать namespaces.list Вложения могут быть длиной до 1024 байт. Register a beacon
  • 45. Маячок не может быть просто удален из Google Beacons Registry. Есть два варианта как можно перевести маячок в режим офлайн: ● beacons.deactivate для того что бы временно удалить маячок. После деактивации, API не будет возвращать ни привязанные данные, ни информацию по маячку. Для того что вернуть маяк в рабочее состояние нужно вызвать beacons.activate ● beacons.decommission что бы навсегда деактивировать beacon ID. Вы больше не сможете использовать ID с которым он был ранее зарегистрирован. Но вы можете легко назначить маячку новый ID и перерегистрировать маячок с новым ID Unregister a beacon
  • 47. 1. Google Play services ≥ 7.8.0 2. Подписка на сообщения: ● В активном режиме ● В фоновом режиме 3. Запрос разрешения у пользователя: ● Присоединить result callback к вызовам publish() and subscribe(). ● Использовать Nearby.Messages.getPermissionStatus() что бы проверить статус разрешения непосредственно перед вызовом publish() или subscribe() 4. Стратегии сканирования Nearby messages on Android
  • 48. 1. $ sudo gem install cocoapods source 'https://github.com/CocoaPods/Specs.git' platform :ios, '7.0' pod 'NearbyMessages $ pod install 2. Подписка на сообщения: ● Только в активном режиме 3. Стратегии сканирования Nearby messages on iOS
  • 49. 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
  • 50. Tahnk you! Google Developer Expert: Internet of Things email: zviadkardava@gmail.com google+: zviadkardava twitter: zviadkardava