您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 国内物联网平台初探(二)阿里云物联网套件(PDF35页)
国内物联网平台初探(二)——阿里云物联网套件马智2016.6.12详细内容请联系:ibrahima@126.com2架构设备快照待上线3架构数据通道为设备和物联网应用程序提供发布和接收消息的安全通道。数据通道目前支持CCP协议和MQTT协议。•用户可以基于CCP协议实现Pub/Sub异步通信,也可以使用远程调用(RPC)的通信模式实现设备端与云端的通信。•用户也可以基于开源协议MQTT协议连接阿里云IoT,实现Pub/Sub异步通信。4架构安全认证&权限策略为每个设备颁发阿里云IoT的凭证,依赖凭证才能连接阿里云IoT。•提供设备级的授权粒度,任何设备必须经过授权才能对某个Topic发布订阅消息•服务端也需要经过授权才能操作其他账号下的Topic5架构设备共享平台•提供Topic跨账号的授权,帮助用户实现跨厂商的数据共享,进而实现更加丰富智能的场景。6架构规则引擎•为用户提供类SQL语言的规则引擎,帮助用户过滤数据、处理数据,并能够发送数据到阿里云其他服务,例如RDS,OTS,ONS等等,也能够发送到数据到其他Topic。7架构设备快照(待上线)•保存设备的最新状态或者APP希望的最新状态在云端,然后当设备或APP连接上来时,同步状态给设备或APP。8应用场景•物联网设备调用云端服务需要返回结果给设备,方便设备作相应处理。例如用户通过智能音箱调用云端语音解析服务,设备可以实时得到解析结果做处理。设备端实时请求云端•开发者通过云端控制设备时,需要知道控制有没有成功,例如请求打开灯,用户需要得知灯是否打开,这就需要设备端返回结果给云端云端实时请求设备端•有很多物联网设备之间有互联互通的需求。例如家里的门打开之后,灯和空调就打开。这种场景就可以基于阿里云物联网套件实现,将门的打开这个消息Pub到某个Topic,然后灯以及空调Sub该Topic得到的门打开的消息作相应的处理。设备端与云端的异步请求•不同厂商的设备具有互联互通的需求,例如A厂商的手环通过检测用户的身体状态来控制B厂商的空气净化器以及C厂商的空调。跨厂商设备互联互通9功能设备接入•快速接入:提供设备端SDK,方便客户快速连接阿里云IoT数据通道•安全接入:提供设备端安全的认证方法,确保设备在云端的安全以及合法性云端服务•消息转发:消息路由转发,实现M2M、端到云、云到端等多样化消息互通场景•设备授权:提供设备级的权限粒度,保证消息的安全性•规则引擎:提供规则引擎,与其它阿里云产品无缝衔接,快捷的构建IoT应用互联互通•提供Topic跨账号的授权,帮助厂商实现与不同厂商的设备互联互通,开发丰富多彩的IoT应用10名词解释概念描述产品同类设备的集合,方便管理设备AppKey阿里云IoT为产品颁发的唯一标识AppSecret阿里云IoT为产品颁发的产品密钥,和AppKey成对出现设备ID对应的英文名称:DeviceId。阿里云IoT为设备颁发的唯一标识设备秘钥对应的英文名称:DeviceSecret。阿里云IoT为设备颁发的设备秘钥,和设备ID成对出现RPC设备端向云端发送数据协议,这只适用CCP协议接入的设备RRPC由云端发起,但是期望设备端响应的数据交互协议,这只适用CCP协议接入的设备Topic用作消息的路由转发,例如设备A将消息发布到Topic:123中,设备B可以订阅Topic:123得到消息。CCP协议和MQT协议都支持发布对应的英文名称:Pub。设备端的发布协议,操作Topic的权限,意思是具有往Topic中发布消息的权限订阅对应的英文名称:Sub。设备端的订阅协议,操作Topic的权限,意思是具有从Topic中订阅消息的权限11阿里云物联网套件限制限制类别描述产品个数目前限制产品个数上限是10个添加设备目前只能在控制台上添加设备,而且单次操作添加不能5万,单个产品不能超过1亿设备数据上报地址目前只能支持本账号下的ECS或SLB的IP地址访问以及ACE的域名访问Topic的长度不能超过128字节CCP协议包大小不能超过256KMQTT协议包大小不能超过256K设备授权操作不能超过50个授权操作1.单个设备端不能对带有通配符的Topic进行发布或者订阅消息;2.服务端不能对带有通配符的Topic进行发布消息规则引擎同一个账号不超过100个规则规则引擎数据格式必须是JSON才能使用规则引擎规则引擎一条规则中转发数据的操作不能超过10个12•基于CCP接入(MQTT协议的精简版)ü协议本身具备安全算法,不依赖TLS算法ü协议大小更精简,包头,payload占用字节更少。例如header只有1个字节ü协议支持多种通信模式,相对于MQTT,不仅支持Pub/Sub,还支持RPC/RRPC•基于MQTT接入ü被广泛用在嵌入式设备的消息传输上•COAP(待上线)üCoAP是一种软件协议旨在用于非常简单的电子设备,让他们通过互联网交互通信。详情请访问COAP•HTTP(待上线)ü数据通道支持设备通过HTTP协议用RESTAPI的方式连接阿里云IoT。设备可以通过POST方式实现Pub消息到某个Topic。设备接入云端的协议全链路加密整个通信链锯以RSA,AES加密,保证数据传输的安全。消息实时到达当设备与阿里云IoT建立数据通道后,阿里云IoT会与设备保持长连接,减少握手时间,保证消息的实时到达。支持数据透传设备数据可以基于数据通道以二进制方式透传的方式传到自己的服务器上(只支持在阿里云上购买的产品),阿里云IoT不会保存设备业务数据,从而保证用户对数据的安全可控性。支持多种通信模式数据通道支持RPC/RRPC以及Pub/Sub两种通信模式,满足用户不同的应用场景。13设备接入云端的协议–基于CCP接入基于CCP接入云端,主要包含两大流程:•设备的认证•设备接入数据通道A:设备使用控制台申请的密钥进行签名请求授权,签名使用hmacmd5算法(可选hmacsha1),签名内容=devieceid+appkey,使用key=appSecret+deviceSecretB:服务器验证签名合法,并返回pubkey证书C:设备生成随机密钥seedkey,使用pubkeyRSA加密传输给服务器D:服务器确认返回令牌sid,同时返回签名sign,签名内容=sid,签名的key=appSecret+deviceSecret,同时返回动态负载的接入服务器ip供设备连接E:客户端使用私钥seedkey解密令牌,进行数据通信,客户端可选协议模式支持ccp\mqtt\coap...14设备接入云端的协议–基于MQTT接入基于MQTT接入云端,主要包含两大流程:•设备获取证书•设备接入数据通道A:设备使用控制台申请的密钥进行签名请求授权,签名使用hmacmd5算法(可选hmacsha1、md5),签名内容=devieceid+appkey,使用key=appSecret+deviceSecretB:服务器验证签名合法,并返回pubkey证书(X.509格式base64)C:设备使用pubkey证书TLS协议连接MQTT15通信模式IoTHub支持两种通信模式:•RPC/Revert-RPC•Pub/Sub16通信模式-RPC/Revert-RPCRPC/Revert-RPC(CCP协议具有的通信模式)•RPC是将用户的设备数据通过阿里云转发到用户自己的业务系统,比如可以用户可以将自己设备上报的服务注册到阿里云IoT上,然后设备直接可以调用该服务,完成数据上报;•R-RPC是用户的业务系统远程调用客户端并等待客户端得到一个回执结果,比如远程调用开关并得到开关的状态信息。17通信模式-Pub/SubPub/Sub(CCP协议和MQTT都支持)•Pub/Sub是基于Topic进行消息的路由转发,让设备端或者服务端可以发布订阅消息,实现异步的通信。适用的场景有M2M(设备与设备间通信),也可以实现设备端与云端的异步通信。•IoTHub维护所有Topic的发布订阅用户列表。当消息发送到Topic,IoTHub会检查该Topic的所有订阅用户,然后将消息转发给所有具有订阅该Topic权限的客户端或者服务端。18身份和安全•每个设备需要具备阿里云IoT颁发的凭证才能连接阿里云IoT;•设备与云端通信采用AES、RSA算法加密,从而保证数据传输安全;•为了安全地基于数据通道传输数据,设备有责任保持他们的凭证安全;•数据到达阿里云IoT之后,阿里云IoT通过权限机制保障数据安全转发到其他阿里云服务或者其他设备。设备身份为设备颁发凭证,包括产品证书和设备证书,设备证书与设备是一对一的关系,确保设备的唯一合法性。设备通过CCP协议或者MQTT协议接入数据通道之前,都需要进行设备认证,设备认证需要携带产品证书和设备证书进行认证。通信安全采用RSA-512bit、AES算法来保证数据通道的传输安全。授权提供设备级的授权粒度。对于设备端,设备必须具有权限,才可以往某个Topic发布订阅消息,这让用户可以完全控制Topic的消息转发,帮助用户控制数据的安全性;对于服务端,服务端基于阿里云AK默认具有该账号下Topic的操作权限,但是如果想要操作其他账号下的Topic需要相应的权限。19规则引擎•SQL表达式:把一条规则抽象为一条sql表达例子:SELECTcrypto(userId,’SHA1’)md2,(a+1)al,colorc,config.flagflag,deviceId(),CASEcol.aWHEN1THEN‘Y’ELSE‘N’ENDflagFROM“/12345/#”WHEREcisnotnullandb0select参数和where条件可以使用消息的payload属性作为列,不支持子查询。20规则引擎1-FROM“topic”当有符合topic规则的消息到达时,消息的payload数据以json形式被上下文环境使用(如果消息格式不合法,将忽略此消息),您可以使用topic()函数引用具体的topic值。2-SELECTselect的属性来源于消息的payload,可以使用json表达式形式引用,也可以来源于函数比如deviceId()。3-WHERE规则触发条件,条件表达式。当符合topic的消息到达时,这条消息触发规则的条件。4-json表达式select和where可以直接使用json表达式。json表达式支持属性,也支持数组。如果payload数据解析出错将会导致规则运行失败。转发数据action中的表达式需要使用${表达式}来使用。21平台功能与界面–创建产品22平台功能与界面–产品信息23平台功能与界面–添加设备24平台功能与界面–设备信息25平台功能与界面–设备授权26平台功能与界面–批量下载设备ID27平台功能与界面–服务配置服务配置的所有功能目前只支持CCP协议接入的设备,MQTT协议接入的设备不能使用该功能28平台功能与界面–Topic管理CCP协议和MQTT协议都支持Pub/Sub的通信方式,Pub/Sub是基于Topic路由转发消息的。Topic是动态创建的,用户可以通过服务端调用OpenAPI或者设备端调用协议方法往某个Topic中发布消息,云端自动判断该Topic是否存在,不存在即创建。29平台功能与界面–Topic信息消息内容将会转换成二进制分发给订阅者。所以如果发布的是JSON格式的消息,订阅者只能拿到转码过后的二进制数据,如果想要拿到JSON数据,需要再进行UTF-8转换成JSON。30阿里云物联网套件OPENAPI阿里云物联网套件OpenAPI分为以下3类:•控制指令接口Ø推送数据给设备并得到响应Ø推送数据给设备不需要得到响应•设备互联接口Ø发消息到指定的TopicØ订阅指定TopicØ取消订阅指定Topic•授权相关接口Ø指定设备授权Ø通过ID撤销设备权限Ø通过Topic撤销设备权限Ø修改设备权限Ø列出设备的权限控制指令接口只适用CCP协议接入的设备;设备互联接口和授权相关接口适用于CCP或者MQTT协议接入的设备。31阿里云物联网套件OPENAPI调用方式通过向
本文标题:国内物联网平台初探(二)阿里云物联网套件(PDF35页)
链接地址:https://www.777doc.com/doc-37350 .html