thingsboard 源码目录解读及菜单预览

thingsboard

thingsboard 源码目录解读及菜单预览_第1张图片
中文文档

ThingsBoard Core

application: 应用程序主目录org.thingsboard.server包下,

项目主目录

actors: actor执行者目录

config: 配置类目录

controller: 控制器,网页端等api接口

exception: 异常处理

service: 服务目录,

  • security: 安全相关服务

  • script: 脚本执行服务,主要是规则引擎的执行(JS)

  • transport: 消息传输服务

  • rpc: 远程调用服务

  • ota:线上升级服务

utils: 工具类

common: 公共工具集、方法集模块

common: 公共工具集、方法集模块

  • actor:actor反应相关

  • dao-api: 数据访问对象的服务接口,在这里做定义

  • data: 用于不同数据库之间的中间数据结构

  • message: 消息服务的实现集,包括集群消息、的基础服务消息、系统类消息

  • queue: 队列服务的实现集,高可用的Kafka

  • transport: 消息传输通道服务的实现,定义公共接口,给客户端的transport层使用

    • coap: CoAP消息传输Handler,包括适配器和客户端

    • http: HTTP消息传输Handler

    • mqtt: MQTT消息传输Handler,包括适配器、会话、SSL工具等

    • transport-api : 具体的实现

  • util: 工具集(当前仅有一个异步回调工具)

dao

dao: 数据访问对象集合,整个应用的DAO层,一般只要dao的都要data,以实现不同数据库数据结构兼容。

ThingsBoard rule

rule-engine: TB的规则引擎,TB没有用开源的Drools等工具,而是自己开发了一套规则引擎,主要包含3个组件和1套服务接口

rule-engine-api: 服务接口的实现

rule-engine-components: 规则引擎组件,包含滤波器、动作、数据、脚本、延迟加载、消息、队列、RPC实现、邮件等

ThingsBoard transport

transport: 三种消息传输服务启动器,
服务的实现参考common/transport,
mqtt协议的客户端实现见netty-mqtt

ThingsBoard Web UI

ui-ngx: TB的用户界面,主要使用AngularJS和react组件,

其他

netty-mqtt: TB的MQTT协议的实现,包括连接、发布、订阅、遗嘱、关闭等
tools: 工具模块,主要实现了MQTT with SSL客户端和REST客户端。可以测试用。

img: 应用图标存放处

部署脚步

docker: 集群部署-docker容器解决方案,包含了部署环境和shell脚本

haproxy: HAproxy工具的配置文件存放处

tb-node: 应用程序节点配置存放目录

tb-transports: 消息传输服务的配置文件,包括coap,http,mqtt

k8s: 容器编排工具k8s的配置文件和自动化脚本

msa: 微服务半自动构建模块,包含了黑盒测试、js执行引擎等

black-box-tests: 黑盒测试工具

js-excutor: js执行引擎,基于nodejs,用于执行规则引擎中的js代码(沙盒执行)

tb: tb主应用程序docker配置

tb-node: tb程序节点配置,基于docker

transport: docker中的消息传输服务的部署配置

web-ui: TB的Web用户界面在docker中部署的配置,自带http server

thingsboard 涉及实体

ThingsBoard 中支持的实体如下:

  • 租户 - 可以将租户视为独立的业务实体:拥有或生产设备和资产的个人或组织;租户可能有多个租户管理员用户和数百万个客户;
  • 客户 - 客户也是一个独立的企业实体,购买或使用租户下的设备、资产的个人或组织;客户可能有多个用户以及数百万个设备和资产;
  • 用户 - 用户能够浏览仪表板和管理实体;
  • 设备 - 可以通过RPC命令处理Iot设备中的对象遥测数据。例如sensors(传感器), actuators(执行器), switches(开关);
  • 资产 - 设备与资产相关联的抽象物联网对象。例如factory(工厂), field(厂区), vehicle(车辆);
  • 警报 - 提示设备和Assets以及Entity发生的事件;
  • 面板 - 通过Dashboards查看数据以及控制指定设备;
  • 规则节点 - 处理消息和实体生命周期事件的执行单元;
  • 规则链 - 规则节点的逻辑单元;

实体支持如下:

  • 属性 - 与实体相关联的静态和半静态键值对。例如序列号,型号,固件版本;
  • 遥测数据 - 可用于存储,查询和可视化的时间序列数据点。例如温度,湿度,电池电量;
  • 关系 - 与其他实体的定向连接。例如包含,管理,拥有,生产

默认账号:
系统管理员: [email protected] / sysadmin
租户管理员: [email protected] / tenant
客户: [email protected] / customer

页面展示

系统管理员菜单

thingsboard 源码目录解读及菜单预览_第2张图片

  • 租户及租户管理员
  • 租户配置
  • 部件库(系统级,用作仪表盘显示部件)
  • 系统设置
    • 基本设置
    • 发送邮件设置
    • SMS服务商设置
    • 安全设置
    • Oauth2设置
    • 资源库设置(系统级,自定义部件时可以直接使用)
租户管理员菜单

thingsboard 源码目录解读及菜单预览_第3张图片

  • 规则链
  • 客户
  • 资产及关系
  • 设备
  • 设备配置
  • OTA升级
  • 实体视图
  • 部件库(系统级,用作仪表盘显示部件)
  • 仪表盘
  • 审计日志
  • API使用统计
  • 系统设置
    • 首页设置
    • 资源库设置(租户级,自定义部件时可以直接使用)

你可能感兴趣的:(thingsboard,java)