什么是 Web of Things

前段时间向公司做了一个关于 Web of Things 的分享,本文内容编辑自当时的 PPT。

普适计算

我们今天的物联网还处在非常原始的阶段,甚至不存在一个标准的定义,想要更好的理解物联网是什么,我们首先要了解一段历史,为什么要回顾这段历史呢?

我认为主要有两个价值:

  • 回溯历史,了解其概念出现和演变的内在逻辑,有助于我们展望未来。技术发展的内在规律总是惊人的相似,而通过对今天的合理演绎,我们也能够更好的判断物联网未来的趋势和机遇。
  • 如今,物联网的概念仅仅是呈现给我们一个结果,但是只了解结果、不知晓逻辑和过程无异于囫囵吞枣,我们很难消化其中的设计思想。所以,了解其发展历史能够揭开演化过程中思想的碰撞。

1988年,Mark Weiser 在施乐帕洛阿尔托研究中心(PARC)担任首席技术专家期间,创造了「无处不在的计算」(Ubiquitous computing)这个词。Weiser 思考计算机时代的下一个爆发点,并于1991年在「21 世纪的计算机」一文中写道:

“影响最深远的技术是那些消失了的技术。它们把自己编织在日常生活的结构中,直到它们与我们的日常生活完全融合……相比之下,基于硅的信息技术离成为环境的一部分还差很远。超过 5000 万台个人电脑已被出售,尽管如此,计算机仍然在很大程度上是在一个自己的世界里。计算机领域充斥着许多复杂的术语,这些术语与用户实际想要使用它来做的事情毫无关系。”

Weiser 比任何人都更早的看出这样一个趋势,电脑正从办公室里笨重的台式机朝着更小更智能的方向发展,之后将很快无缝嵌入我们周围的世界,融进我们的生活中。

但是,伟大的想法往往超前于时代,普适计算在当时并没有得到学界的认可,甚至被认为是无稽之谈。(做个背景补充:20世纪80,90年代,苹果公司刚刚才推出了自己的第一代可携带的苹果笔记本电脑。)在 1991 年后的几年,互联网得到了早期的发展,随着万维网的发展,互联网最终成为了一个大型开放的全球一体化计算机网络。

互联网的惊人成功让普适计算重新回到了人们的视野,许多研究人员开始考虑考虑将实物连接到互联网上,MIT 的 AutoID 实验室使用射频识别(RFID)标签来自动识别商品,打算建立一个电子标签产品的全球网络来优化物流和供应链,在描述这个全球网络时首次提出了物联网的术语。接下来的事情便众所周知了。

物联网

物联网诞生之后,看中了它巨大潜力的公司们,都急于为它建立策略或解决方案,他们将建筑、供应链、工厂和办公室等一切通过某种通讯方式连接起来,收集它们产生的数据,然后展现给人看,并允许人们对这些东西进行操作。包括今天我们所看到的“智能”家居设备、智慧城市、智慧工厂等,看起来我们真正地做到了“物联网”。我们动动手指头就能在外遥控家里空调开关、监视生产活动的各项参数、数据,甚至可以“大数据”一番,创造不错的收益。

这听起来很美好,但可惜的是,如果我们把“物联网”这个词拆开看,就会发现它联的“网”和我们平时所上的“网”是完全不同的两个东西。所以,今天的物联网与其说是物联网,不如说是物联局域网,因为它们是一堆功能孤岛,不能彼此之间互通共享。

人人都想从未来的发展中分一杯羹,这就导致了技术的碎片化:

  • 我的协议比你更好,重复发明协议以提高自己的影响力(数以百计),当大量的人力被用来重复发明轮子又使得创新减少。
  • 聚焦于物联网的小问题,如硬件与数据处理,没有关注像建立一个端到端、可扩展的安全系统,将硬件、数据、处理过程、可视化及人机交互放在一起这样更大的图景。

下面用几组图说明这个现状:
pre_iot
post_iot

针对这样的现状,WoT 协议的作者说了这么一句黑话:
iot_complex

想象一下:你在家里买了绿米的智能窗帘和门磁传感器,然后又买了涂鸦的智能开关和飞利浦的灯泡,却被迫要安装米家,涂鸦智能,飞利浦 Hue 等多款 APP,你需要在不同的 App 上配置网络,控制设备以及收取设备消息,可怕吗?

再者,对于一家想要布局智能化产品的企业来说,考虑成本往往只能购买一家公司的解决方案。但一家公司的方案又不能完全满足客户的全部需求,这时候要么考虑更换解决方案,花费不菲;要么找人整合方案,同样成本不低。

所以为了避免同质化,我们需要搞清:真正要解决的是什么问题,需要连接什么,为什么要连接它们?

WoT

回答上一个问题:物联网面临的真实挑战与技术关系不大,与实际用例关系比较大。

那么是否有可靠的通讯协议可以供使用来解决碎片化问题,同时又可以降低开发门槛,能够让开发者更多的关注在用例上呢。所以 Web of Things,简称 WoT 出现了。WoT 决定审视和学习目前最成功的的万维网(World Wide Web,WWW),万维网具有规模,开放且易于参与,而且最重要的是,它是通用的。如果它能足够好的支持银行服务、游戏、聊天室并且改变传媒业,那么它为什么不能足够好的支持物联网呢?

所以当 IoT + Web,我们可以使用 HTTP 做设备之间的交互,使用 JSON 结构化描述数据,使用 TLS 保障传输安全性,使用 JWT 做认证。这些标准每天在全球范围内经手考验,已经非常成熟、被业界认可了。

仅仅如此吗?

既然用 Web 技术,用 HTTP、JSON 这种应用层的协议就能统一物联网,难道不可以自己定一套基于 HTTP 和 JSON 的协议吗?这不是又导致碎片化了吗?

WoT 相比于直接使用 Web,解决了设备之间的可发现、自描述和互操作问题,这些都需要精良的设计。

可发现

可发现的需求来自于开箱即用,即一个 WoT 设备接入了网络后,以某种方式通知这个网络里的其它 WoT 设备自己的 IP 地址,目前 WoT 标准使用 mDNS 来让设备广播自己在局域网中的域名(URL)和地址。由于 WoT 本身是可被消费的应用层 API,UI 在获得对应服务的地址后可以根据 API 描述自动加载对应的控件。所以,对用户来说,添加一个 WoT 设备就像给电脑插一个 USB 设备一样简单。

自描述

为了避免分裂,在 WoT 中设备本身需要通过一些额外的信息来向另外一个设备描述自己,比如拥有什么属性,可以执行什么操作,等等;而描述这些信息的同时我们又要兼顾机器可读及人类可读,为了不给协议本身增加额外的负担,这些“资源”都是可以使用 URL(“统一资源定位符”)link 的。这种使用 URI 来描述互联网上资源的方式被称为关联数据(Linked Data),利用这一特性,我们就可以在 WoT 协议之中,关联用于定义协议本身的元数据(Schema)。

总结

物联网(IoT)具备发展为普适计算的潜力,但由于技术图景的碎片化而停滞不前。Web of Things 旨在解决物联网 (IoT) 的分裂问题,使构建用例变得更加容易,并且不需掌握各种复杂的物联网技术和标准,有许多行业将受益,例如 STEAM 教育,智能家居,智能城市,智能产业,智能农业,智能医疗等等。

引用

  1. Web of Things是什么?与IoT(物联网)有何区别?
  2. 从物联到万联:Node.js 与树莓派万维物联网构建实践
  3. Web of Things
  4. 介绍 WebThings
  5. 世界不是一台大iPhone!——谈万物互联的人机交互史

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!