写点什么

谷歌发布 Eddystone 蓝牙通信标准

  • 2015-07-21
  • 本文字数:1974 字

    阅读完需:约 6 分钟

在 2005 年国际电信联盟(International Telecommunication Union,ITU)发布有关物联网的ITU 报告后,物联网开始在全球范围内得到重视,并迅速发展。作为世界著名的互联网公司,谷歌公司也开始积极进行物联网产品的研发和推广。其重大举措包括收购了美国智能家具公司Nest Labs、提出了为家用物联网设计的Weave 通讯协议、设计了基于IP 的Thread 无线通讯协议和进行基于安卓的 Brillo 轻量级物联网操作系统的研发等。近日,谷歌又正式发布了一款跨平台的开源蓝牙低功耗(Bluetooth Low Energy,BLE)Beacon 标准——Eddystone,为其在物联网领域的发展增添新的力量。接下来,本文就对Eddystone 进行简要介绍。

作为物联网的发展趋势之一,BLE Beacon 通常由电池供电,主要通过蓝牙向附近设备发送某种特定信息。例如,装备了Beacon 的公交车站可以向等车的乘客发送实时的班车信息;博物馆可以利用Beacon 向参观者介绍附件的展品信息等。Eddystone 就是BLE Beacon 的一种通信标准,用来指导开发者进行Beacon 信息的传输。据谷歌官方解释,该名字来源于英国的Eddystone 灯塔,其意义在于Beacon 可以像灯塔指引船只那样为用户提供相关信息。Eddystone 的产品经理Matthew Kulick 和工程经理Chandu Thota 表示,该项目的目标在于试图创建一个鲁棒、可扩展的Beacon 标准,并试图把商人、开发者和制造商集合在一起,建立起一个完善的Beacon 生态系统。

Eddystone 包含两个全新的 API——Nearby API 和 Proximity Beacon API 。Nearby API 适用于安卓和 iOS 系统,允许应用程序发现附近的 Beacon 硬件,并确认当前所处情境。Proximity Beacon API 则用于连接位置与存储在云端的相关数据,解密 Beacon 所传输信息的含义。那么,Eddystone 究竟有哪些特点呢?

首先,Eddystone 的主要特点之一就是它是一种开源且跨平台的 Beacon 标准。两年前,苹果已经发布了类似的 Beacon 标准—— iBeacon 。然而,该标准只兼容苹果公司的“i 系列”产品。与之相比,开源的 Eddystone 应用范围要宽广很多。它不仅可以用在安卓系统上,也可以通过链接库文件的方式用在 iOS 系统中。而且,Eddystone 的代码已经托管在 GitHub 上。相关开发人员都可以下载源代码进行定制化修改或完善。

另外,Eddystone 的特点在于其支持多种框架类型。苹果的 iBeacon 和谷歌的 The Physical Web 都只支持一种框架。而 Eddystone 支持通用唯一识别码(Universally Unique Identifier,UUID)、URL 链接、临时标识(Ephemeral Identifiers,EID)以及遥测数据等四种框架类型。

通用唯一识别码 UUID 共计 128 位,是每个 Beacon 的全球唯一标识。通过识别不同的 UUID,相应设备上的 APP 就可以知道目前所处的位置或者该标识所暗含的其他信息。苹果推出的 iBeacon 发送的正是 UUID。然而,UUID 需要和对应的 APP 联合使用才能解密该标识所暗含的信息,方式不够灵活、简便。为了解决该问题,Eddystone 支持另一种框架——URL 链接。

URL 链接比 UUID 要更简单、直接。用户接收到 URL 连接后,只需要用浏览器直接打开,即可看到相关的信息。URL 链接可以被理解成 Beacon 的二维码版本。但是,它不需要专门的识别软件或者识别过程。

临时标识 EID 是一种只允许被授权用户读取信息的框架类型。例如,在超市或者餐厅等公开场所,经营者既需要面向所有客户进行信息广播,也需要只针对所有员工进行临时消息公告。EID 就是面对这种情形而专门设计。为了安全性考虑,这些 EID 相关的信息会经常更新,以确保只有授权用户可以解码。

遥测数据框架主要面对需要掌控大量 Beacon 的企业。由于大部分 Beacon 都是采用电池供电,在一段时间后就需要更换电池或充电。遥测数据框架允许 Beacon 将自身的状态和电量信息发送给周围的工作人员,以便进行针对性的维护和更换。

总而言之,Eddystone 具有开源、跨平台和支持多种框架类型等特点。其发布对于 Beacon 生态系统有着非凡的意义。 Radius Networks 联合创始人兼 CEO Marc Wallace 表示,Eddystone 兼容多种框架协议的特点将使其用途十分广泛。这样,开发人员就不需要为每一种协议单独设置一个 Beacon。而且,为了更好的发展 Beacon 生态圈,谷歌致力于研究 Beacon 标准的同时,把硬件和管理软件等其他方面留给了合作公司。此外,谷歌将会引领 Eddystone app 的开发和支持。谷歌地图在今年早些时候已经在波兰地区使用了基于Beacon 的技术来进行实时导航和提醒。目前,谷歌正在考虑进一步扩展此服务的应用地域。最后, Google Now 也即将推出可以利用 Beacon 信息来更新提醒卡片的服务,扩大 Eddystone 的应用场景。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注 我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-07-21 07:385182
用户头像

发布了 268 篇内容, 共 122.6 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

索信达控股:银行4.0的AI世界——开启算法力的时代

索信达控股

人工智能 金融科技 银行

重磅 | 用友《数字化中台》震撼上市!数智化转型和商业创新实践的企业级经验!

博文视点Broadview

Springboot 配置文件、隐私数据脱敏的最佳实践(原理+源码)

程序员小富

Java springboot 数据安全 数据脱敏

Druid 通过 dsql 运行的时候提示错误 urllib2

HoneyMoose

【设计模式】原型

Andy阿辉

C# 编程 后端 设计模式 8月日更

基于ECS快速搭建 Docker 环境

若尘

Docker 服务器 8月日更

多语言ASR?没有什么听不懂,15种语言我全都要

华为云开发者联盟

语言 ASR 多语言ASR 单语模型 Conformer

Python OpenCV 图像区域轮廓标记,可用于框选各种小纸条

梦想橡皮擦

8月日更

PostgreSQL 中如何控制行级安全和列级安全

Qunar技术沙龙

sql postgresql 运维 安全 权限

Druid 的几个查询实例

HoneyMoose

十大排序算法--插入排序

Ayue、

排序算法 8月日更

【Flutter 专题】132 图解 PaginatedDataTable 分页表格

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

一文带你搞定AOP切面

华为云开发者联盟

spring aop 切面编程 面向切面编程 切面

Druid 从控制台(Druid console)中删除过滤器和运行查询

HoneyMoose

netty系列之:netty初探

程序那些事

Java 响应式编程 Netty nio 程序那些事

手撸二叉树之对称二叉树

HelloWorld杰少

算法和数据结构 8月日更

原来select语句在MySQL中是这样执行的!看完又涨见识了!这回我要碾压面试官!

冰河

MySQL 面试 精通MySQL SELECT查询流程 查询缓存

kafka SpringBoot

Rubble

kafka springboot 8月日更

Rust从0到1-模式-可反驳性

rust 模式 Patterns Refutability 可反驳性

synchronized 优化手段之锁膨胀机制!

王磊

Java 并发 8月日更

Design for failure常见的12种设计思想

架构精进之路

降级 重试 容错 8月日更

深度学习中的分布式训练

安第斯智能云

人工智能 深度学习

鸿蒙内核之内存调测:动态内存池信息统计

华为云开发者联盟

鸿蒙 内存 动态内存池 内存信息

docker入门:postgresql安装及可视化界面portainer使用

小鲍侃java

8月日更

【Maven技术专题】如何使用Assembly插件实现自定义打包

洛神灬殇

maven assembly 8月日更

复杂多变场景下的Groovy脚本引擎实战

vivo互联网技术

敏捷开发 脚本语言

基于docker的分布式性能测试框架功能验证(二)

FunTester

分布式 性能测试 接口测试 测试框架 测试开发

百度爱番番移动端网页秒开实践

百度Geek说

大前端 优化 网页加速 移动端

Druid 从控制台(Druid console)从 SQL 脚本转换为 JSON 格式的方法

HoneyMoose

Python代码阅读(第1篇):列表映射后的平均值

Felix

Python 编程 Code Programing 阅读代码

分布式性能测试框架用例方案设想(二)

FunTester

分布式 性能测试 接口测试 测试框架 测试开发

谷歌发布Eddystone蓝牙通信标准_语言 & 开发_张天雷_InfoQ精选文章