白季飞龙的个人主页

物联网平台 Kaa 的技术架构(翻译)

Kaa物联网平台的核心功能包括设备连接、集成与数据处理。本文将带您浏览Kaa的方方面面,让您对Kaa的功能与性能有更深刻的理解。

1. 硬件

kaa平台是硬件透明的。您可以集成大量、任意设备,从全功能的操作系统,到可用内存小于10KB的资源受限设备。很多硬件平台已经被Kaa集成与检验,但是如果某个设备没有出现在这个清单上,这正是个好机会,使用Kaa高度便携的SDK可以很容易将其集成。Kaa的SDK现在支持Java、C++和C,您可以根据情况选择其中一个。

2. 数据模型

Kaa可以处理结构化数据,也可以处理非结构化数据,但是倾向于结构化。结构良好的数据可以为任何操作与分析提供优秀的原材料。

这种数据模型也可以帮助把底层实现和您的硬件中任何不重要的细节抽象出来。Kaa甚至确保使用完全不同技术的东西也可以被统一管理与操作,只要他们共享同样的数据模式。这就是为什么Kaa的每个功能都利用同样的数据模式来管理语义和自动生成标准代码。这些数据模式兼容Apache Avro,因此非常强大。Apache Avro也使得数据序列化非常高效。

一旦您开始使用Kaa工作,您将会马上发现您的大脑也处在一个数据模式状态。这是件好事。

小结:

3. SDK

Kaa终端SDK支持Java、C++和C,来嵌入您的客户端程序或固件。他们处理客户端与服务端的连接、认证、整理、加密、持久化和平台提供的其他功能。 生成的每个SDK只适用于特定的服务端实例。生成的SDK包含服务端指定的数据模式,并被转换为对象绑定,供您的物联网程序使用。SDK也包含用到的传输层协议实现,比如怎样与生成此SDK的服务端实例创建连接。

小结:

4. 连接

Kaa是传输透明的。他允许创建跨任意类型网络运行的程序,无论持久连接还是断续连接。您可以选择一个已经存在的Kaa内置的传输协议,也可以自定义协议并嵌入您的系统中。Kaa将自动将连接参数通知终端,而且会自动平衡服务器集群的负载。

高级用户可能会发现Kaa灵活调整服务端传输实现的特性是如此方便。例如,通知可以通过UDP或短信推送给用户,而配置数据可以使用基于TCP的AES加密的二进制协议进行同步。

小结:

5. Iot网桥和路由器

Kaa可以为网桥和路由器开启高级物联网特性。通过内置Kaa功能,这些设备可以用作连接终端与IoT云端的桥梁,不仅价格便宜,而且功能丰富。 Kaa网桥和路由器可以大大简化数据收集,包括传感器数据和基于PAN协议的设备,例如蓝牙、ZigBee、Z-Wave。他们也可以通过将设备数据格式转换成服务器通用格式,使得添加新设备到IoT集群的过程更合理。

对于海量实时数据和大规模布署,Kaa允许在IoT网关中实现边缘分析。这是IoT网桥将数据发给云端前的预处理与预整理。通过这种方式,网络负载可以减少十倍甚至更多,大大减小了服务器的开销。

6. Kaa服务器

Kaa服务器是您定制后台系统的基石。他提供了大量的机制用于内部定制与外部集成。REST接口用于集成具体业务,日志处理器用于集成数据分析、管理与可视化系统,还有传输协议与其他模块可供定制。

Kaa服务器通常部署为节点集群,如果有更高的性能需求,可以很容易进行扩展。通过开启高可用模式,Kaa服务器还能免除宕机风险,杜绝单点故障。Kaa集群使用Apache Zookeeper来协调服务器、选取主节点和缓解失败。由于Kaa完全开源免费,他可以很容易部署在服务器、云端或混合模式。

Kaa服务器可以轻松处理上百万的设备连接。

小结:

7. 数据处理

收集与分析用户数据,是最常见的IoT用例之一。Kaa的使命就是使这些任务简单直接,甚至是对海量数据。基于您为您的应用设计的日志模式,Kaa服务器可以构造对象绑定和API来定制SDK。您可以使用这些API发送日志记录到后台进行处理或储存。Kaa终端会缓存日志记录,一旦上传事件被触发,就会发往服务器。缓存器与触发器都支持插件与自由定制。

在服务端,Kaa是数据注入的瑞士军刀。通过日志处理器,您可以将日志数据载入您选择的数据库,发往流处理,或通过REST、Flume等发往定制的数据处理模块。通过Kaa,您可以用您最喜欢的工具进行数据处理与分析,这相当容易,因为Kaa保证了端到端的结构化数据流。

小结:

8. 终端解决方案

Kaa平台被设计为流线型,保证了IoT应用开发的安全性。他自动化了复杂的数据管理,提供了完全不受限制的伸缩性,让您可以专注于最关键的地方:产品的业务逻辑。

更多:

白季飞龙 2016-04-27 译自 官方网站


漫漫路,莫论逍遥;潜心修,只为悟道