如今,“物联网”是业界的热门话题之一。每天都有新的支持物联网的产品出现,物联网现在是一个与万维网一样流行的首字母缩略词。甚至有人开玩笑说,我们可能很快就会看到“支持物联网的电阻器”问世,每周我们都会阅读新的研究,这些研究谈论将在几个从今天开始的几年。
但是物联网是关于什么的?
剖析物联网
在我看来,我们需要了解这个定义中包含的实体。让我们从“事物”开始。对于嵌入式开发人员来说,用嵌入式设备很容易识别它们,我认为这样做是正确的。该定义包括基于微控制器的小型设备以及运行全功能操作系统的更复杂的设备。
那么“物联网”仅仅是将设备连接到互联网吗?
我不这么认为。这就像将互联网定义为连接到基于 TCP/IP 的网络的个人电脑、平板电脑和智能手机一样;我们会错过其中的一个重要部分。
我们已经有许多连接的设备。多项研究评估,自 2008 年以来,连接到互联网的设备数量超过了人,但物联网仍远未成为我们日常生活中的现实。
近年来,互联网已经发展,从万维网革命开始时的静态“电子邮件和网页”模式转变为我们今天拥有的庞大且有时有用的信息和服务(和猫视频)组合。
同样,在我们真正生活在“物联网”时代之前,连接设备也需要进化、互操作、共享和访问信息。
物联网的“互联网”方面是关于处理可以由设备收集的大量数据并提取有用的信息,这些信息可以改善我们今天使用许多服务和设备的方式。这听起来像是大海捞针,但好消息是,借助云计算,我们拥有每秒过滤许多大海捞针所需的处理能力。
“物联网设备”不可能存在(它只是一个“东西”),但我们可以设计一个作为物联网解决方案一部分的设备。该设备将不再是“产品”,而是将成为一个更大项目的一部分,该项目涉及为其增加价值的服务。
我们在设备上也有处理能力,物联网并不意味着所有的处理都必须在云中完成,但另一方面,全面了解设备的整体情况对于让更多信息和更有效的决策。
汽车和交通系统的物联网
让我们考虑交通。单车可以知道路网,获取交通拥堵、道路施工等信息,但它只知道自己的目的地。一个管理系统可以从多辆知道他们在哪里以及他们想去哪里的车辆收集信息,可以提供优化的方向,让人们避免现有的交通拥堵,并且不会在此过程中产生新的交通拥堵。在这种情况下,连接系统可以真正改善人们的驾驶方式。当然,目前这是不可能的;大多数导航系统都没有连接,那些有连接的系统使用不同的协议。但是已经可以进行一些具体的实施来优化,例如公共交通。
这个过程必须克服巨大的挑战。
实施挑战
互操作性绝对是其中之一,但人们可能不喜欢未经授权访问可能比存储在 PC、手机和平板电脑上的信息更私人的信息的想法,他们对安全和隐私的担忧也是合理的。
还有一个重大的设计挑战:将视角从设备转变为解决方案。产品将包括硬件、本地软件和服务。一些要求不会改变——我们仍然需要可靠的硬件和高效的开发工具——但其他要求将被添加到组合中。
作为嵌入式开发人员,我们将面临新的挑战,不得不将我们的软件视为更复杂解决方案的一部分。我们需要了解整个系统的运行方式,从传感器收集的比特到这些数据如何在云中存储和处理,再到它在设备上生成的作为反馈的动作。
假装设计物联网系统不会改变我们的工作方式,只关注嵌入式软件,并且仅将连接性视为功能之一,这将限制我们对项目的影响。
考虑到连接性的设计
设备(事物)必须与后端(互联网)交互才能执行不同的活动:
提供数据(遥测)
需要来自后端的数据或操作(查询)
从后端执行所需的操作(命令)
从后端或其他设备接收信息(通知)
Clemens Vasters 的一篇题为“连接设备的服务辅助通信”的 MSDN 文章清楚地描述了将设备连接到 Internet 服务的这些模式和挑战。
由于我们用于构建嵌入式设备的硬件和软件有许多不同的供应商,因此物联网的“互联网”方面也有不同的供应商。微软、亚马逊和谷歌等公司正在努力为广大的公司和开发人员提供基于云的服务。其中许多服务可用于构建物联网系统。
这些服务可以收集、存储和处理设备获取的数据,并充分利用从中提取的信息。我们也可以使用“传统的”内部服务器,但其中许多项目对可扩展性和可靠性的要求使得基于云的方法成为一种自然的解决方案。
微软提供全方位的产品,从面向嵌入式设备的操作系统(.NET 微框架、Windows Embedded Compact 和 Standard 产品线以及新的 Windows 物联网开发人员计划)到基于其 Azure 平台的基于云的服务。
这将让开发人员在物联网系统的不同组件上使用一套一致的工具和编程语言。另一方面,微软为不同的操作系统和语言发布了 SDK,允许创建一个由运行不同操作系统(或根本没有操作系统)的设备组成的系统。
Azure 提供了一个称为服务总线的消息传递系统。使用消息,而不是 Web API 使用的请求-响应机制,允许服务以异步方式处理信息。这导致更好的可扩展性和更高的可靠性。可以在不中断服务的情况下处理请求数量的峰值,并且一旦将消息传递到服务总线,设备甚至可以将自己与网络断开连接,而无需等待处理。
我们物联网所需的所有通信模式都可以使用消息传递来实现。设备可以使用高级消息队列协议 (AMQP) 或 HTTPS 直接连接到服务总线。前一种协议是为消息传递而设计的,以二进制格式打包信息,通常会导致较低的带宽使用。其他消息传递协议,如 MQTT(在不支持 AMQP 和 HTTPS 所需的额外加密和安全功能的低资源设备上很常见)和 CoAP 可以使用协议适配器进行集成,比如微软自己为项目 Reykjavik(Azure 设备)实施的协议适配器网关)。
利用这些协议的现有开源实现和 Microsoft 提供的 SDK,将简化设备与后端服务之间通信的开发,并让开发人员专注于为整个解决方案增加价值的实现部分。
审核编辑:郭婷
-
嵌入式
+关注
关注
5085文章
19138浏览量
305732 -
适配器
+关注
关注
8文章
1956浏览量
68063 -
操作系统
+关注
关注
37文章
6838浏览量
123385
发布评论请先 登录
相关推荐
评论