thingsboard 规则引擎概述 · 物联网平台-威尼斯人最新

download · 2020年03月03日 · 最后由 回复于 2022年08月27日 · 399 次阅读
本帖已被设为精华帖!

1. 概述

规则引擎 rule engine 高度可配置,用于事件处理,可对处种消息进行过滤、放大、变换、对接外部系统等处理。

2. 主要概念

2.1 rule engine message

用于表示系统中的各种消息,序列化,不可修改,例如:

  • 来自设备的数据上传、属性更新 和 rpc 调用 等事件。
  • 实体的生命周期性事件: created, updated, deleted, assigned, unassigned, attributes updated.
  • 设备状态事件: connected, disconnected, active, inactive.
  • 其它系统事件。

消息中包含以下信息:

  • message id: 基于时间的唯一 id
  • 消息来源者:设备、资产 (asset) 、其它实体的 id
  • 消息类型: post telemetry, inactivity event 等
  • 消息体 payload: json body.
  • metadata: kv 键值对,消息的额外数据。

2.2 邓定义消息类型

  • post_attributes_request: post attributes, 设备请求上传属性值,metadata 数据有: devicename, devicetype, payload 例如 {"currentstate": "idle"}。
  • post_telemetry_request: post telemetry, 设备请求上传遥测数据,metadata 数据有: devicename, devicetype, ts(timestamp, 毫秒),payload 例如 {"temperature": 22}。
  • to_server_rpc_request: rpc request from device, 设备 (客户端) 请求 rpc 调用,metadata 数据有: devicename, devicetype, requestid(由客户端提供的 rpc 请求 id),payload 例如 {"method": "gettime", "params": {"param1":"val1"}}。
  • rpc_call_from_server_to_device: rpc request to device, 服务端请求 rpc 调用,metadata 数据有:requestuuid(服务端提供,用于区别应答),expirationtime, oneway(true 时无需应答,false 时需应用),payload 例如 {"method": "getgpiostatus", "params": {"param1": "val1"}}。
  • activity_event: activity event, 设备切换为活跃状态,metadata 数据有 devicename, devicetype。
  • inactivity_event: inactivity event, 设备切换为非活跃状态。
  • connect_event: connect event, 设备已连接。
  • disconnect_event: disconnect event, 设备断开连接。
  • entity_created: entity created, 新实体已创建事件,metadata 数据有 username(创建者名称), userid(创建者 id), payload 包含实体信息,如 {"id":{"entitytype": "device", "id": "uuid"}, "createdtime": timestamp, ..., "name": "my-device", "type": "temp-sensor"}.
  • entity_updated.
  • entity_deleted.
  • entity_assigned, entity assigned, 现有实体分配给客户事件,metadata 数据有 username(操作者名称), userid, assignedcustomername, assignedcustomerid.
  • entity_unassigned.
  • added_to_entity_group.
  • removed_from_entity_group.
  • attributes_updated, attributes updated, 实体属性已更新事件,metadata 数据有 username(操作者名称), userid, scope(server_scope 或 shared_scope),payload 为已更新的属性键值对,如 {"softwareversion": "1.2.3"}.
  • attributes_deleted.
  • alarm: alarm event, 当报警生成、更新、删除时产生该事件。
  • rest_api_request: rest api request to rule engine,当用户执行 rest api 调用时产生该事件。

2.3 规则结点 rule node

规则结点一次处理一个传入消息,并生成一个或多个输出消息。能过滤、放大、变换传入消息,执行动作或与外部系统交互。

2.4 规则结点关联 rule node relation

规则结点可关联到其它规则结点。每种关联都有关联类似 (relation type), 即表示该关联的逻辑意思的名称。规则结点在生成输出消息时,通过指定关联类型将生成的消息路由到下一个结点。

规则结点关联类型(即名称)可为 success, failure, 也可为 true, false, post telemetry, attributes updated, entity created 等。

2.5 规则链

规则结点其及关联的逻辑组合。

租户管理员可定义一个根规则链 (root rule chain,默认规则链) 和多个其它规则链。

3 规则结点类型

  • 过滤结点 filter nodes 用于消息过滤和路由
  • 放大结点 enrichment nodes 用于更新消息的 metadata
  • 变换结点 transformation nodes 用于变换消息中的信息项,如 originator, type, payload, metadata.
  • 动作结点 action nodes 基于传入消息执行各种动作。
  • 外部结点 external nodes 用于和外部系统交互。

4 体系结构

based on actor model and message queue:

规则引擎体系结构

resources


原文:

thingskit 将本帖设为了精华贴 03月03日 15:53

学习了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
网站地图