亚马逊上线IoT平台
在最近拉斯维加斯举行的re:Invent开发者大会上,亚马逊宣布了他们新的物联网(IOT:Internet of Things)平台AWS IOT。这个平台目前还处于Beta状态,不过AWS的用户已经可以使用。
Matt Wood博士是AWS产品策略部门的总经理,他用下面这段话来描述 AWS IoT平台,“它是一种连接设备到AWS云平台的方法,通过它可以使那些连接的设备所产生的大量数据被你的公司收集、存储、分析并采取行动。”
支撑这个IoT平台的是一组SDK和AWS服务,包括:
Device SDKs:它可以使你的设备同AWS IoT平台进行通信,SDK支持的语言包括C、JavaScript和Arduino。
Authentication和Authorization:认证和授权是通过双向认证的方法完成的,你可以使用自签名(self-signed)证书或者AWS提供的签名过程。除了会使用TLS(Transport Layer Security)1.2协议保证传输的安全性,证书和角色的映射也会应用于授权策略中,这些策略基于提供的证书来确定设备执行操作的能力。证书和策略都可以通过控制台或者使用API来进行管理。你也可以通过AWS Identity and Access Management (IAM)服务来取消证书,这样可以立即拒绝设备接入到IoT平台。
IoT设备并不知晓后端服务对其要发送的哪些消息感兴趣,所以设备网关(Device Gateway)就应运而生了,你可以通过MQTT和HTTP协议和设备网关通信,设备网关使用发布/订阅模型(publish/subscribe model),并通过AWS的消息主题(Topic)或者规则引擎(Rules Engine)来将消息分布式或者广播式发送给那些感兴趣的订阅者。
规则引擎用于消息上下文和内容的分析评价,从而可以对消息进行过滤和路由。写作规则时需要使用类SQL的语法。下面举一个处理设备所读取温度数据的规则的例子,假设当读取的温度超过了特定的门限,就要在Dynamo Db实例中插入一个事件。这个规则的语法描述如下图所示:
对于IoT平台来说,Dynomo Db并不是唯一可以订阅到发布消息的服务,消息还可以路由到其它很多AWS服务,包括:
Kinesis/Kinesis Firehose (数据流)
简单存储(S3)
Lambda (代码执行)
Simple Notification Services (推送通知)
通信的方向并不是只从设备流向AWS IoT平台,命令和控制场景也是有可能发生的,这时事件需要向下流向设备。亚马逊把这个功能称之为设备之影(Device Shadows), 即它可以在IoT平台上维护设备的一个虚拟版本。这个虚拟版本将有设备上次报告的状态,同时也会维护未来所期望的设备状态。因为一些设备仍会受限于电池供电,所以设备可能并不是时时在线的。所以有了最后一次的报告状态,客户就能知道设备在下线前的健康情况。使用设备之影功能,还可以让你的组织在设备重新上线时改变其状态,即设备上线后,新的状态将会通过发布/订阅消息向下推送到设备中,而设备在收到消息后将会执行从IoT平台发过来的相关指令。
亚马逊在IoT领域的竞争对手来自诸如IBM、Microsoft和Salesforce这样的厂家。在微软最近的AzureCon大会上,他们 发布 自己的Azure IoT套件;在Dreamforce年度大会上,Salesforce同样宣布了他们在这个领域的意向。这些云平台一致的地方在于,它们对整个IoT处理都感兴趣,因为这样就可以使设备接入并使用下行数据流(downstream)的那些云服务。
Lydia Leong是Gartner公司负责杰出分析师部门的副总裁,他在近期的 推特 上将亚马逊和微软作为IoT平台的标杆。“值得一提的是微软在近期的AzureCon大会上也密集地发布了相关的产品和服务。其它竞争者必须将亚马逊和微软作为竞争目标。”