国外物联网平台初探(一) ——亚马逊AWS IoT

  平台定位

      http://www.cnblogs.com/ibrahim/p/amazon-aws-iot.html

  AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。

  AWS IoT可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AWS 终端节点和其他设备。应用程序可以随时跟踪所有设备并与其通信,即使这些设备未处于连接状态也不例外。

  使用AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch、AWS CloudTrail 和内置 Kibana 集成的 Amazon Elasticsearch Service 等AWS服务来构建IoT应用程序,以便收集、处理和分析互连设备生成的数据并对其执行操作,且无需管理任何基础设施。

  架构

  与AWS IoT平台集成的AWS服务

  Amazon DynamoDB—托管NoSQL数据库

  Amazon Kinesis—大规模流式数据实时处理

  AWS Lambda—EC2云虚拟机运行代码响应事件

  Amazon Simple Storage Service(S3)—可扩展云存储

  Amazon Simple Notification—推送通知服务

  Amazon Simple Queue Service—消息队列服务

  设备SDK

  AWS IoT 设备 SDK 使用 MQTT、HTTP 或 WebSockets 协议将硬件设备连接到 AWS IoT,硬件设备无缝安全地与 AWS IoT 提供的设备网关和设备影子协作。

  设备 SDK 支持 C、JavaScript 、Arduino、Java和Python。

  设备 SDK 包含开源库、带有示例的开发人员指南和移植指南,用户根据硬件平台构建 IoT 产品或解决方案。

  设备网关

  AWS IoT 设备网关支持设备安全高效地与 AWS IoT 进行通信。设备网关可以使用发布/订阅模式交换消息,从而支持一对一和一对多的通信。凭借此一对多的通信模式,AWS IoT 将支持互连设备向多名给定主题的订阅者广播数据。

  设备网关支持 MQTT、WebSocket 和 HTTP 1.1 协议,也支持私有协议。

  设备网关可自动扩展,以支持 10 亿多台设备,而无需预配置基础设施。

  认证和授权

  AWS IoT 在所有连接点处提供相互身份验证和加密。AWS IoT 支持 AWS 身份验证方法(称为"SigV4")以及基于身份验证的 X.509 证书。使用 HTTP 的连接可以使用任一方法,使用 MQTT 的连接可以使用基于证书的身份验证,使用 WebSockets 的连接可以使用 SigV4。

  使用 AWS IoT 生成的证书以及由首选证书颁发机构 (CA) 签署的证书,将所选的角色和/或策略映射到每个证书,以便授予设备或应用程序访问权限,或撤消访问权限。

  通过控制台或使用 API 创建、部署并管理设备的证书和策略。这些设备证书可以预配置、激活和与使用 AWS IAM 配置的相关策略关联。

  AWS IoT 还支持用户移动应用使用 Amazon Cognito 进行连接,Amazon Cognito 将负责执行必要的操作来为应用用户创建唯一标识符并获取临时的、权限受限的 AWS 凭证。

  注册表

  注册表将创建设备标识并跟踪元数据,如设备的属性和功能。

  注册表向格式一致的每台设备分配唯一的标识,而不管设备的类型和连接方式为何。此外,它还支持描述设备功能的元数据,例如传感器是否报告温度,以及数据是华氏度还是摄氏度。

  注册表存储有关设备的元数据,无需支付额外费用;并且需要每隔 7 天至少访问或更新注册表条目一次,注册表中的元数据就不会过期。

  以JSON格式存储的设备注册表信息

  设备影子(Shadow)