数据使用方式
对于物联网而言,数据是核心,所有的功能基本上都围绕着数据。 围绕着采集、控制、传输、应用,存在多种数据结构。
首先,在传统物联网平台侧一般提供:
- 二进制数据流:表现形式是消息数据,不区分消息的内部结构。一般用做设备与应用的直接通信。
- 结构化数据:表现形式是消息数据,一般采用Json方式承载。一般用做设备的统一数字抽象。
对于应用而言,物联网数据通过消息传递到应用后。应用还会将数据组织成对象供业务使用。 某些对于时间要求比较高的需求还会采用 ws 接口提供订阅能力。
数据分层
针对上述需求,tKeel 在数据层面分为
- Level1
- 消息通道:在这个层面平台作为一个消息通道存在,数据直接透传,不做解析
- Level2
- 测点(AO、AI、DO、DI): 在这个层面处理的是数据,例如属性、遥测等。
- Level3 对象与关系:在这个层面平台提供应用所需要的业务对象,以及对象之间的结构关系
Level1 面向设备开发者,提供直接的消息通道,消息内容可以直接使用二进制数据流等私有格式,平台提供通道中的消息记录以及即时查看等审计、调试能力。 Level2 面向传统物联网用户,提供遥测数据的收集以及查询能力,平台将遥测数据转化为时序数据供应用直接使用,可以用于监控、告警等场合。 Level3 面向业务开发者,提供业务对象的缓存以及订阅能力,平台提供对应的快照以及订阅接口。为了方便开发,平台还提供了基础的ws订阅方式,方便插件开发与集成。
应用获取设备数据
平台支持应用以下列几种方式通过平台获取设备数据。
WebSocket订阅
协议 | 端口 | 身份验证 | 能力 |
---|---|---|---|
WebSocket | 平台服务端口 | Token | 订阅消息 |
物联网平台支持基于 WebSocket 消息订阅能力。您可以指定订阅的实体,平台将实体的变化实时推送给你。
数据订阅(AMPQ)
平台对外提供消息服务(AMPQ),云端应用也可以通过监听平台提供的 AMPQ 队列,获取全部的订阅消息。
数据路由
平台支持数据路由功能,您可以预先准备好消息队列或数据库等服务,然后使用规则引擎的数据路由功能,通过数据路由规则将指定设备数据路由到您的消息队列或数据库中。
方式对比
获取方式 | 适用场景 | 优缺点 |
---|---|---|
WebSocket 订阅 | 需要接收设备实时数据的场景。 | 不需要接收全部设备数据。 优点:支持在动态调整订阅规则。支持浏览器直接获取。缺点:数据量有限制。不适于全量数据的获取 |
数据订阅(AMPQ) | 直接接收设备数据的场景。 | 服务端接收全部设备数据。 优点:相对简单易用。系统提供缓存能力,可按照应用处理能力拉取。缺点:缓存时间有限。 |
数据路由 | 数据推送到外部场景。 | 数据推送到外部。 优点:系统按照模板提供映射。缺点:需配置目的地,使用相对复杂。 |