公司 Logo
内部文件:[输入文件名和版本号]
框架目录结构、技术及部署相关说明
目
录
目录
参考资料...........................................................................................................................................3
文档目的...........................................................................................................................................3
声明...................................................................................................................................................3
第一章: 项目框架整理说明.....................................................................................................................4
1.1 项目框架说明............................................................................................................................4
表 1- 1 [代码包其功能一览表]...........................................................................................4
1.1.1 package 包功能描述........................................................................................................4
1.1.2 thingsboard 开发主要涉及到的包..................................................................................6
1.1.3 thingsboard 代码类及接口说明......................................................................................7
第二章: thingsboard 涉及到的流程图......................................................................................................8
1.2 物联网网关架构........................................................................................................................8
1.3 ThingsBoard 微服务架构.........................................................................................................9
1.4 Thingsboard 产品架构............................................................................................................. 9
1.5 Thingsboard 规则引擎........................................................................................................... 10
1.6 ThingsBoard Architecture..................................................................................................... 11
第三章: 项目框架涉及到的第三方包或插件.......................................................................................12
第四章: ThingsBoard 设备连接协议......................................................................................................16
1.7 订阅消息传递协议(MQTT)....................................................................................................16
请求时返回错误代码:............................................................................................................16
1.8 请求响应模式(CoAP).............................................................................................................17
请求时返回错误代码:............................................................................................................17
4.00 错误请求 - 无效的 URL,请求参数或正文。............................................................17
1.9 请求响应模式(HTTP )........................................................................................................... 17
请求时返回错误代码:............................................................................................................17
第五章: ThingsBoard 打包......................................................................................................................18
1.10 后端打包............................................................................................................................... 18
1.11 前端打包方 UI...................................................................................................................... 18
第六章: ThingsBoard 框架日志..............................................................................................................18
第七章: ThingsBoard 数据库..................................................................................................................18
1.12 关系数据库(使用了 2 个数据库)................................................................................... 18
1.13 非关系数据库(redis)............................................................................................................ 18
第八章: 官网主要文档目录...................................................................................................................18
1.14 官网主要目录说明............................................................................................................... 19
第九章: 前端技术概述...........................................................................................................................19
1.15 前端包括哪些技术点........................................................................................................... 19
1.16 前端技术描述....................................................................................................................... 19
第 1 页 共 21 页
公司 Logo
内部文件:[输入文件名和版本号]
第十章: 关于 Thingsboard 开发环境部署............................................................................................ 19
第十一章:数据库表结构................................................................................................................ 20
第 2 页 共 21 页
公司 Logo
内部文件:[输入文件名和版本号]
版本
0.01
发布时间
20190218
修订章节
作者
[对修订章节的描述从最近的一次修订开始]
Zhaoh
参 考 资 料
1. 运 行 thingsboard 环 境 后 地 址 栏 输 入 :http://localhost:8080/swagger-ui.html ( 进 入
swagger 接口说明)
2.
[列出参考资料名称,需增加参考资料项,请在行末回车]
文 档 目 的
编写此文档的目的是使开发人员快速对 thingsboard 框架的理解.
声 明
[对本文档内容进行声明]
第 3 页 共 21 页
公司 Logo
内部文件:[输入文件名和版本号]
第一章: 项目框架整理说明
[对项目框架整体进行描述.]
1.1 项目框架说明
框架包含了 11 外层包,其含义如下:
表 1- 1 [代码包其功能一览表]
包名
包简说明
描述
涉及到的技术
备注
Application
应用相关
Common
Dao
公共部分
业务层
新增 thingsboard 接口,或后端添加业
务查询
thingsboard 基础方法
可修改
不可修改
接口,实现,数据访问层
Data-jpa 注解
可修改
Docker
打包,及虚拟部署
打包或虚拟部署
docker
Img
Msa
Netty-mqtt
图片
分布式
协议
Rule-engine
规则引擎
Tools
工具类
Transport
应用层实现
Logo.png 图片
规则引擎
系统工具类
三种请求协议 coap,http mqtt,提供使
用(不可修改,可自定义协议,系统提
供的三种协议)
Netty、MQTT
开发无需修
改此包,
可添加
不可修改
开发无需修
改此包,
开发无需修
改此包,
可修改添加
不可修改
UI
前端界面
后台管理系统界面
Angularjs 、
ES6、Reactjs、
webpack、node
可修改
日志
系统日志
系统错误日志收集器,会以年月日展
示
Logback
不可修改
1.1.1 package 包功能描述
[描述.]
Application
第 4 页 共 21 页
公司 Logo
内部文件:[输入文件名和版本号]
应用相关类:
appaction.main.java.org.thingsboard.server ThingsboardServerApplication.java(启动类)
install
exception
controller
service
config
thingsboard 服务开启相关配置、异常和调用
thingsboard 响应错误及错误逻辑处理
thingsboard 页面展示必要的 系统数据 接口
为 controller 提供支持
为同源策略、swagger、webSocket、消息及安全配置注册 spring bean
Common
data 用于与不同 db 之间的中间数据结构。
message 定义不同的消息类型。
transport 定义一个公共的接口,供与客户端的 transport 层使用
Dao
dao 抽象了对不同数据库的统一接口。dao 的接口数据一般都 data,根据不同的数据库
在不同的接口中转换为对应的实体类与数据库交互.通过@ConditionalOnProperty(prefix =
"database", value = "type", havingValue = "cassandra")动态注入不同的数据库
Docker
系统发布资源类
Img
系统图片类
Msa
black-box-tests 黑盒测试
js-executor
javascript 执行器
Netty-mqtt
数据交互协议
Rule-engine
规则引擎相关代码
第 5 页 共 21 页
内部文件:[输入文件名和版本号]
公司 Logo
Tools
系统工具类
Transport
http
coap
mqtt
Thingsboard 的 http 传输协议启动类
Thingsboard 的 coap 传输协议启动类
Thingsboard 的 mqtt 传输协议启动类
UI
使用到的前端技术: Angularjs、ES6、Reactjs、webpack
前端 MVC、MVVM 框架
设计到前端打包配置文件:server.js, webpack.*.js
1.1.2 thingsboard 开发主要涉及到的包
[参考性]
如需在 thingsboard 添加新的接口
可参考:Usercontroller.java 类
包:application
1: Controller
2: dao
3: sql
第 6 页 共 21 页
公司 Logo
内部文件:[输入文件名和版本号]
1.1.3 thingsboard 代码类及接口说明
[相关代码类 controller 说明 , 文档使用了 swagger]
1: 管理控制器(admin-controller):管理控制器显示
2: 报警控制器(alarm-controller):报警控制器显示
3: 资产控制器(asset-controller):资产控制器显示
4: 审核日志控制器(audit-log-controller):审核日志控制器显示
5: 身份验证控制器(auth-controller):身份验证控制器显示
6: 组件描述符控制器(component-descriptor-controller):组件描述符控制器显示
7: 客户控制器(customer-controller):客户控制器显示
8: 仪表板控制器(dashboard-controller):仪表板控制器显示
9: 设备 API 控制器(device-api-controller):设备 API 控制器显示
10: 设备控制器(device-controller):设备控制器显示
11: 实体关系控制器(entity-relation-controller):实体关系控制器显示
12: 实体视图控制器(entity-view-controller):实体视图控制器显示
13: 事件控制器(event-controller):事件控制器显示
14: RPC 控制器(rpc-controller):RPC 控制器显示
第 7 页 共 21 页
公司 Logo
内部文件:[输入文件名和版本号]
15: 规则链控制器(rule-chain-controller):规则链控制器显示
16: 遥测控制器(telemetry-controller):遥测控制器显示
17: 租户控制器(tenant-controller):租户控制器显示
18: 用户控制器(user-controller):用户控制器显示
19: 控件类型控制器(widget-type-controller):控件类型控制器显示
20: 控件束控制器(widgets-bundle-controller):控件束控制器显示
详情运行 thingsbroads 开发环境后:输入地址查阅 http://localhost:8080/swagger-ui.html
第二章: thingsboard 涉及到的流程图
[输入正文]
1.2 物联网网关架构
对平台来说网关是一个设备:只不过网关的消息体和其他设备不一样
网关监听的是消息代理发送的消息针对 MQTT 来说,网关只不过选择性监听了 topic,构建
了一个映射“map”关系
网关详情:https://thingsboard.io/docs/iot-gateway/what-is-iot-gateway/
第 8 页 共 21 页