平台简介
AbleCloud,致力于为智能硬件、可穿戴设备、智能家居和物联网提供最易用、最可靠、最安全、最高效的云服务,为投身此行业的生产者、创业者、开发者提供最强劲的云智能引擎、最便利的开发平台。帮助您快速实现大规模硬件的智能化,让智能化变得更简单、更敏捷,让您在智能硬件浪潮中快速实现突破,抓住智能化浪潮的时间窗口。
使用AbleCloud,可以让智能硬件开发者专注于硬件的方案设计和生产,无需考虑大规模分布式互联网服务的高可用,高并发、可扩展的设计实现,以及服务监控、日常运维等繁琐而复杂的工作。只要团队具有1名app开发人员或嵌入式开发人员,基于AbleCloud提供的云端智能引擎,专注于自身业务相关的逻辑代码,即可轻松实现联网硬件的云端智能化。
此外,AbleCloud提供了安全的设备管理、帐号体系、海量长连接管理、设备固件OTA、云端数据存储、大数据分析等基础服务,这些基础工作的设计、研发、测试、运维等工作对于做智能硬件或智能家电的厂商而言,都属于硬件设计、研发、制造之外的苦活累活,而且要组建一支完整的具备互联网软件架构能力的技术团队才能完成,为此将花费较长时间,付出较高成本,而借助AbleCloud PaaS平台,可以帮您快速的解决这些问题。
智能硬件架构模型
交互消息
上图是目前常见的智能硬件联网解决方案,从图中可以看到,整个硬件联网闭环存在三条消息流,分别表示不同的消息传递方式。
-
远程控制:图中绿色箭头所示,用户在终端,如智能手机上发送控制命令到AbleCloud的云端,云端再将消息发往具体的某一设备,实现远程控制。比如酷热的夏天,下班回家前,在公司提前通过手机将家里空调打开,可以及时的查看家里温度情况,回到家时也能即可感受到一片清凉。
-
设备直连:当用户和设备在同一局域网内时,用户可以通过终端直接向设备发送控制命令实现直连,从而实现更加可靠的控制,如途中棕色箭头所示。在家里的公网访问出现故障的情况下,设备直连让您的智能设备仍然具备可用性。
-
事件上报:设备可以将运行中的状态、传感器采集到的各类数据上传到云端进行数据存储,供厂商进行数据分析和设备管理,也可以将上报的消息推送数据给用户,如图中紫色箭头所示。例如,当家里的安防系统发现异常时,发送报警数据到云端,云端再将该消息通过设定好的方式推送给客户,让用户及时了解家里所发生的情况,方便及时处理和应对。
传统开发流程
结合架构图以及介绍的三类交互消息,传统智能硬件系统(硬件、app、后端服务)开发需要做如下一些工作,从底层硬件往上层应用开始作简单梳理:
- 开发联网控制逻辑
- 通讯协议定义
- 通过smartconfig自动联网
- 流量控制
- OTA
- 支持联网固件升级
- 支持任意控制逻辑升级
- 开发设备控制逻辑
- 根据业务开发具体的控制逻辑
- 开发后端服务
- 定义并实现和APP端的通信协议
- 实现帐号管理后端服务
- 实现设备管理后端服务
- 从最基础的通信协议开始,根据业务逻辑开发具体的业务相关服务
- 服务测试环境搭建
- 服务发布、上线、运维、升级、回滚等
- 服务性能分析、服务扩容
- 服务日志收集、数据监控,服务报警等
- 开发APP
- 开发多端SDK,如android/ios
- 实现设备发现、绑定、分享等
- 实现设备直连
- smartconfig发送wifi信息给设备
- 实现APP端的帐号管理
- 实现APP端的设备管理
- 根据智能硬件和后端服务的功能,开发操控逻辑
- APP测试环境搭建
- 解决安全问题
- 设备连接过程的握手认证
- 用户登录过程认证
- 与设备通信消息加密
- 与后端服务通信防恶意攻击
- 搭建数据分析平台
- 根据业务逻辑,数据建模及查询
- 目前客户正在试用,还未对外发布
以上只是简单梳理了一些功能点,可以看出要开发一套功能相对完备的智能硬件(这里包括硬件、app、后端服务),需要作非常多的工作,其中大部分功能非常重要但不是厂商必须要关注的。AbleCloud认为,厂商可以专注做更擅长的事情,把主要精力集中在和业务逻辑相关的功能点上即可(上文飘红的部分),其它的工作交由平台来完成。
AbleCloud提供的功能
上一章节我们介绍了智能硬件的基本模型及开发流程,AbleCloud基于智能硬件的联网模型,分别提供三大部分的服务:联网模块、APP端SDK、云服务引擎。从这三大模块出发,AbleCloud提供了如下几大功能。
1. 联网固件
AbleCloud提供了能够适配多个目前市面上常采购的wifi厂商的联网固件。硬件开发厂商可购买AbleCloud的联网模块,也可以购买其它厂商的联网模块后,将我们提供的联网固件烧制进去,设备便能自动联网。 AbleCloud联网模块及固件以优化的算法,极高的运行效率和极低的运行态资源消耗,满足智能硬件对于功耗的苛刻要求,并可以使用如下AbleCloud的服务:
- 流量控制:对带宽等资源进行合理分配,防止资源抢占和拥堵;
- 握手认证:采用优化后的非对称加密算法,提升设备的安全性,并降低出厂烧制的复杂度;
- OTA:实现固件的联网下载,自动升级更新;
- 局域网直连:让手机可以在局域网内直接连接设备;
- 设备绑定:初次绑定可以同时给云端和app发送识别码,以保证绑定的私密性和安全性。
- 命令转发和事件数据上报:采用AbleCloud优化的异步传输协议,简单、易用、高效。
2. 帐号管理服务
考虑到所有的智能设备,最终都需要由用户来操作,因此AbleCloud提供了安全的帐号体系,开发者可以直接用云端的帐号管理服务,实现自己的帐号系统,如用户注册、登陆、修改密码、找回密码以及手机验证码相关的功能。
3. 设备管理服务
随着智能设备的逐步普及,用户家庭中会出现越来越多的智能设备,为了便于家庭成员使用这些设备,需要对这些设备进行组织、管理;同时,权限认证等安全问题也会面临前所未有的挑战,AbleCloud提供了通用的家庭成员、设备分组管理等服务以及基于角色的访问控制协议。
这里简单介绍下设备管理的基本功能,首先介绍几个名词,便于用户、开发者理解我们的平台。
- 设备:device,即厂商生产的具体的一台设备。只有被绑定的设备才能被控制。在没有指明是“网关”还是“子设备”时,设备可以表示任何有ID的设备。
- 网关:gateway,是指能够和云端直接连接,完成其他协议到TCP/IP协议转换功能的设备。网关下面一般带有子设备。网关可以有独立的功能也可以纯粹作为一个协议转换的通道。
- 子设备:subdevice,指通过网关和云端进行通信的设备。子设备和网关有隶属关系,对网关有权限的用户也对子设备有权限。子设备在云端可以单独进行权限管理。
- smartconfig:APP端SDK将家庭wifi的ssid以及密码通过加密后广播给智能设备,智能设备收到后自动完成配置并连上wifi。
4. 存储服务
AbleCloud提供分布式存储服务,用来存储设备上报等数据。除此之外,上文提到我们提供了通用的帐号管理/设备管理服务,当厂商有一些定制化需求,使用通用的云端帐号管理/设备管理无法满足要求时,厂商也可以利用AbleCloud提供的存储等服务开发自定义的服务。
AbleCloud的存储服务采用了nosql非关系型数据模型,可以存储任意非结构化数据,可以在线实时动态增加属性列;存储支持多种数据类型,如字符串、整型、布尔值、浮点型、数组、列表等,并提供增加、修改、替换、查找、扫描等功能,拥有极强的灵活性。
5. APP端SDK
我们提供android和ios两大平台的sdk,厂商可利用AbleCloud提供的sdk快速开发智能硬件控制app。sdk提供了smartconfig、设备发现,直连访问控制管理等基本功能,可以让局域网内的智能设备自动连上wifi。
6. 云服务引擎
云服务引擎,是我们提供的PaaS平台,包括开发、测试框架以及完整的运行环境,辅以版本管理控制,服务发布、回滚、监控、日志收集等运维平台。
服务开发框架
AbleCloud封装了开发web服务的框架,厂商的开发人员利用这个开发框架,可以完全不用关注服务和app端、和设备端RPC交互的细节,而是将全部精力集中在服务具体业务逻辑的实现上,开发框架提供了完整的web service框架,让您用很少的代码即可实现一个服务,并提供了完备的单元测试、集成测试方案和工具包。
在该服务开发框架内,AbleCloud也向开发者提供了开发运行于云端的定时任务的组件。
云端运行平台
当服务开发完毕并测试完成后,开发人员只需要将服务可执行程序提交到AbleCloud提供的PaaS平台,之后的发布、运维、日志收集等繁琐的工作就交给AbleCloud吧。您可以喝着咖啡享受惬意的生活,而不用时刻在电脑前查看服务的运行状况,有了云运行平台,就是可以这么任性。
7. OTA
顾名思义,OTA即为Over-The-Air之意。厂商在发布智能硬件产品后初步实现了产品和用户的紧密连接,从而获取到更多有效的用户数据,借助这些数据可以不断的迭代优化升级产品,当然也不排除会有bug fix,因此如何方便的进行这些固件的升级至关重要。AbleCloud提供的OTA功能可以帮您解决固件的友好升级问题,不仅仅可以升级AbleCloud发布的联网固件,还支持厂商自己开发固件的升级。
AbleCloud带来的改变
有了AbleCloud提供的多种服务,我们来概括AbleCloud给开发智能硬件系统(包括硬件、app、云端服务)所带来的改变。
硬件开发
首先,AbleCloud提供的联网固件,解决了千万级设备的连接管理,提供直连等异常备用方案,在网络通信层采用高度优化的多重加密算法,保证设备和消息的安全性。厂商只需要把精力放在具体的业务控制逻辑上即可,省去了重要但通用的联网逻辑。
后端服务开发
AbleCloud提供了服务开发框架以及云运行平台,开发者可以不用关心RPC服务框架的开发,更不用关心服务的发布、部署、扩容、监控、运维等工作,只需要实现自己业务相关部分的处理逻辑即可。此外,AbleCloud提供了一系列通用的云服务,开发者可直接应用,而不用重复开发,大大加快开发速度。
APP开发
AbleCloud提供了硬件联网模块、后端服务开发框架以及多个云服务,要与这些模块、服务交互,免不了用到交互协议。AbleCloud提供的APP端SDK封转了协议细节,提供了简单易用的API接口给APP的开发者,不用关注各个服务的实现,将精力集中在和业务逻辑相关的用户管理、设备的控制、后端服务的访问上,快速开发APP。
综述
AbleCloud提供了一套完整的硬件端联网开发、APP端开发、后端服务开发/运行的解决方案,旨在将创业团队、硬件厂商从诸多重要但是和具体业务逻辑关系不大的工作中解放出来,集中精力快速的开发智能硬件系统。本文只是简单的介绍了大体的框架、功能,让你对AbleCloud有个大体了解。各个功能的细节部分,请参见具体的相关文档。