走近AWS IoT服务:亚马逊物联网云服务AWS IoT平台介绍和技术解析

   03/05/2016 6:09 pm   大 中 小 简体 繁體 字体:
    623人参与

亚马逊宣布推出AWS IoT平台(Amazon Web Services Internet of Things),能够轻松连接嵌入式开发板与亚马逊的云端运算系统。AWS IoT物联网应用平台测试版上线,该平台可以让联网设备在轻松且安全的状态下与云应用或其他设备进行交互,并可支持数十亿设备互相传输数万亿条信息,还能在对这些信息进行处理之后发送到云终端和其他设备中。

AWS IoT云平台联网速度快,特别适用于在内存、处理能力和电池容量等方面有所限制的设备,用户可以将AWS IoT与AWS Lambda、Amazon Kinesis、Amazon S3和Amazon Machine Learning以及Amazon DynamoDB等相结合,用于全面的物联网应用研发、基础架构管理和数据分析。

AWS IoT的入门非常简单。首先上亚马逊网站注册帐号,将亚马逊的帐号设定成包含Web服务,再到AWS登入页面找出物联网的部分(我是在画面的右上角发现的)。虽然事先阅读入门指南是明智的选择,真正的乐趣却在于如何写出程式码,让嵌入式主机板能够与AWS通讯。

AWS IoT平台框架图

这个平台能够吸引许多撰写程式码的人,以便与主机板和亚马逊云端通讯。类型可分为以下三种,包括将焦点放在Linux上的C软体开发套件(SDK)、Javascript / nodejs SDK,以及替Arduino 独特桥式架构打造的特别SDK(这终究是Arduino 专用平台)。

具体的例子可以参考英特尔物联网团队制作的GitHub储存库。另外还有简单的板载式解说,指导使用者如何靠英特尔的爱迪生模组使用AWS IoT。

aws服务种类分类图谱

整体系统架构


AWS IoT由四个主要部分所组成,安全与身分识别服务安插在整个系统中。 「message broker」会从云端到装置,或是反向协商资讯的传输。 「rules engine」能够根据观测到的自订动作状态分析讯息。 「thing registry」记录所有连接到网络的装置。 「thing shadow」会将网路上的事物虚拟化,还能追踪状态的变化及预测未来的状态。

aws IoT系统架构图框架图

 

AWS IoT 装置开发套件(IoT Device SDK)


AWS IoT 提供的开发套件可协助您轻松快速地连接硬体装置或行动应用程式。 AWS IoT 装置开发套件可让装置透过 MQTT 或 HTTP 通讯协定,与 AWS IoT 进行连线、验证和交换讯息。装置开发套件支援 C、JavaScript 和 Arduino,而且内含用户端程式库、开发人员指南和制造商的移植指南。您也可以使用开放原始码替代或撰写自己的开发套件。

装置闸道 Device Gateway


AWS IoT 装置闸道让装置能安全并有效地与 AWS IoT 通讯。装置闸道可以使用发行/订阅模型来交换讯息,以进行一对一和一对多通讯。透过这种一对多通讯模式,AWS IoT 能够让连接的装置将某个特定主题的资料广播发送给多个订阅者。装置闸道支援 MQTT 和 HTTP 1.1 通讯协定,您可以轻松实作专有通讯协定或旧版通讯协定的支援。装置闸道可自动扩展以支援超过十亿个装置,无须布建基础设施。

身分验证和授权


AWS IoT 在连线的每个时间点都提供共同的身分验证及加密,如此一来,绝对不会在未验证身分的情况下在装置与 AWS IoT 之间交换资料。 AWS IoT 支援 AWS 身分验证方法 (称为 ‘SigV4’) 以及 X.509 凭证型身分验证。使用 HTTP 的连线可使用任何一种方法,而透过 ​​MQTT 的连线则使用凭证型身分验证。您可以将选择的角色和/或政策映射至每个凭证,以授与装置或应用程式存取权,或是如果您改变想法,不须触碰装置就能完全撤销存取权。

您可以从主控台或使用 API 建立​​、部署和管理装置的凭证及政策。这些装置凭证可使用 AWS IAM 设定的相关政策进行布建、启用以及建立关联。这让您就能立即撤销对个别装置的存取权 (如果您选择这么做)。 AWS IoT 也支援使用 Amazon Cognito 从使用者行动应用程式进行连线,这可处理建立应用程式使用者唯一识别符以及撷取有权限限制的临时 AWS 登入资料时所需的所有步骤。

登录


登录可建立装置的身分以及追踪中继资料,例如装置的属性和功能。登录会为每个装置指派一个唯一的身分,无论装置类型或连线方式为何都会是一样的格式。它也支援描述装置功能的中继资料,例如感应器是否会报告温度,以及资料为华氏或摄氏。

登录可让您存放与装置有关的中继资料,无需支付额外费用,而且只要您至少每 7 年存取或更新登录项目一次,登录中的中继资料就不会过期。

装置阴影


您可以使用 AWS IoT 为每个装置建立永久的虚拟版本 (或「阴影」),其中包含装置的最新状态,可让应用程式或其他装置读取讯息并与装置互动。使用装置阴影即使装置离线,也能保留每个装置的上次报告状态及所需的未来状态。您可以透过 API 或使用规则引擎来撷取装置的上次报告状态或设定所需的未来状态。

装置阴影提供永久可用的 REST API,让您轻松建置可与装置互动的应用程式。此外,应用程式不必考虑装置的目前状态即可设定装置所需的未来状态。 AWS IoT 会比较所需未来状态和上次报告状态之间的差异,并命令装置填补之间的差距。

AWS IoT 装置开发套件可让您的装置轻松将状态与装置阴影进行同步,并回应透过阴影设定的所需未来状态。

装置阴影可让您免费存放装置的状态多达一年。至少每年更新一次就能永久保留装置阴影,否则就会过期。

规则引擎( Rules for AWS IoT)


规则引擎能够建置 IoT 应用程式,以全球化的规模收集、处理、分析连接装置产生的资料并对其采取动作,且无须管理任何基础设施。规则引擎会根据您定义的商业规则,评估发布到 AWS IoT 的传入讯息,并将讯息转换并传输到其他装置或云端服务。规则可套用到来自一或多个装置的资料,而且可以平行执行一或多个动作。

规则引擎也可以将讯息路由到 AWS 终端节点,包括 AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning 和 Amazon DynamoDB。使用 AWS Lambda、Amazon Kinesis 和 Amazon Simple Notification Service (SNS) 可以存取外部终端节点。

您可以在管理主控台内编写规则或使用类似 SQL 语法来编写规则。您可根据讯息内容,编写行为不同的规则。例如,如果温度数据超过特定阈值,就会触发规则,将资料传输给 AWS Lambda。您也可以将规则编写成考虑云端的其他资料,像是来自其他装置的资料。例如,如果此温度比其他 5 个装置的平均温度高出 15%,就要采取动作。

规则引擎提供数十个可用的功能,可用来转换您的​​资料,透过 AWS Lambda 还能建立无数个功能。例如,如果您正在处理大范围的数值,可以采用传入数的平均值。规则也可在 AWS Lambda 触发执行 Java、Node.js 或 Python 程式码,让您有最多的弹性和强大的能力处理装置资料。

关键词: , , , , , 

最多人阅读内容