开源的物联网技术平台(Thingsboard)
1
总体说明
1.1
产品概述
1.1.1 Thingsboard作用
1.置备并控制设备。
2.采集设备数据并进行数据可视化。
3.分析设备数据,触发告警。
4.将数据传输到另一个系统。
5.允许根据用例的具体需求自定义规则并使用插件。
6.是为物联网应用提供开箱即用的物联网云服务器端基础设施。
7.是一个开源IoT平台,用来快速开发、管理、扩展的物联网项目
1.1.2 Thingsboard特点
1.可扩展: 使用领先开源技术构建的可水平扩展平台。
2.容错: 无单点故障,集群中的每个节点都是相同的。强大、
3.高效: 单个服务器节点可以根据用例处理几十甚至数十万个设备。
thingsBoard集群可以处理数百万台设备。
4.可定制: 可轻松使用可自定义的可视化小部件、规则引擎和插件系统添加新功能。
5.持久保存:永远不会出现数据丢失现象。
6.开源: 100%开源
1.1.3 产品架构

Thingsboard性能利用三个主要项目:
Netty用于 IoT 设备的高性能MQTT服务器/代理。
Akka为高性能actor系统协调数百万设备之间的消息。
Cassandra用于可扩展的高性能NoSQL DB,用于存储来自设备的时间序列数据。
使用Zookeeper进行协调和以集群模式使用gRPC。
规则引擎:动态配置设备消息的处理流程
核心服务:租户和客户、设备认证、规则和插件、小组件和仪表盘、告警和事件
安全:SSL用于HTTP和MQTT
设备安全认证:Token和X.509
1.1.3 前后端分离之前端
1.前端知识准备:Nodejs, Angularjs,ES6,Reactjs,webpack。
2.了解thingsboard项目:
3.前端MVC、MVVM框架
4.前端打包方案
5.主要开发可视化小部件,后台管理平台数据ui展示
1.1.4 前后端分离之后端
1.熟悉工业标准IOT通信协议:
- MQTT:发布订阅模式
- COAP:请求响应模式
- HTTP :请求响应模式
2.熟悉postages和cassandra数据库结构
3.规则链的使用
4.其它系统与TB的对接
5.物联网网关:物联网网关主要的三个功能
1、协议转换能力
2、可管理能力
3、广泛的接入能力
物联网网关的两个因素
1、数据安全
2、可维护
对平台来说物联网网关也只是一个设备:只不过网关的消息体和其他设备不一样,网关监听的是消息代理发送的消息,针对MQTT来说,网关只不过选择性监听了topic,构建了一个映射“map”关系。
1.2
ThingsBoard实际接入项目
1.2.1
目前协议支持
1.目前支持HTTP,MQTT, COAP
2.官网原文:
Extend
default platform functionality using customizable rules, plugins, widgets and
transport implementations. In addition to MQTT, CoAP and HTTP support,
ThingsBoard users can use their own transport implementations or customize
behaviour of existing protocols.
使用可定制规则、插件、小部件以及传输协议扩展平台默认功能。支持MQTT, CoAP and HTTP 协议,此外,用户可定制MQTT, CoAP
and HTTP 协议或使用自己的协议。
3.添加第三方协议,需要二开,项目包名:Transport 代码改动量较大,建议将Thingsboard不支持的协议中间转换为Thingsboard支持协议,再推送到Thingsboard。
4.相似产品及公司协议支持对比


1.2.2
项目接入
- 内网部署设备:
通过MQTT协议对于Thingsboard也是网关的概念去接入
- 通外网设备:
外网设备,对于MQ,WebsSocket WebService等协议可以二开接入ThingsBoard或者统一转换为HTTP协议,建议十分不常见的其他协议不用考虑二次开发Thingsboard接入,对于ThingsBoard平台不支持的常见协议可以开发去接入,一次开发后通用。
- 数据可视化:
- 设备数据可视化对于力石可以起到辅助作用用于实时展示接入数据的变化,可以及时排查第三方接入故障。
- 设备数据接入Thingsboard平台后可以有多种可视化展示方式,echarts图标 数据走势图等,而且可以自己开发组件去展示数据。
- 数据使用:
我司看重的最重要的对于ThingsBoard作用就是对外第三方接入,对于公司需要调用第三方的需求的部分,可以统一接入ThingsBoard平台
1.3
ThingsBoard解决痛点
1.痛点描述:对于公司业务来说项目中大量使用第三方的接口,以及各种协议,没有统一去处理这些第三方的业务,每个新的协议过来,研发去研究接入。
当第三方的调用较少时,或者项目少的时候,痛点还不突出,当业务量越来越大,调用越来越多,项目越来越多的时候,随着项目的时间越来越远,维护起来会变的很痛苦,老旧项目第三方的代码的调用逻辑和管理就会变得很混乱。
2.接入ThingsBoard后 公司对接所需数据是对接中间介质ThingsBoard能解决的问题:
(1)统一了对外调用 我司设备对接完ThingsBoard后,不用再去考虑设备对接问题。
(2)Thingsboard对外提供的对接方式可以统一转换为主流的HTTP接口形式
(3)可扩展性也强大 特殊情况下,不需要HTTP形式的数据,Thingsboard通过规则链也可以对接到管道,例如:Kafka
(4)对于每个厂商可以通过租户(Thingsboard)的概念去区分管理,十分清晰。
(5)协议接入越多,平台功能越强大,类型滚雪球,后期会变得更轻松。
1.4
ThingsBoard难点
- 对于不支持的协议前期接入,当选用在ThingsBoad源码上二次开发,需要研发熟悉Thingsboard 协议接入模块的代码
- 对于不支持的协议接入,如果考虑统一中间转换一下协议再接入ThingsBoard,前期工作量较大,但是该转换协议的项目设计合理的前提下功能强大起来,后期接入其他相同协议的设备会十分省时。
- ThingsBoard部署问题,关键数据库postages和cassandra服务器大小的预估。
- 当内网设备接入时,虽说可以通过网关接入,例如使用MQTT接入需要说服设备厂商本地安装客户应用服务器,MQTT客户端。
1.5
相关资料
1.https://blog.csdn.net/github_35631540/category_10844433.html
2.https://fizzz.blog.csdn.net/article/details/114286380
3.https://thingsboard.io/

开源的物联网技术平台(Thingsboard)的更多相关文章
- Java开源生鲜电商平台-系统架构与技术选型(源码可下载)
Java开源生鲜电商平台-系统架构与技术选型(源码可下载) 1. 硬件环境 公司服务器 2. 软件环境 2.1 操作系统 Linux CentOS 6.8系列 2.2 反向代理/web服务器 ...
- TOP100summit:【分享实录-WalmartLabs】利用开源大数据技术构建WMX广告效益分析平台
本篇文章内容来自2016年TOP100summitWalmartLabs实验室广告平台首席工程师.架构师粟迪夫的案例分享. 编辑:Cynthia 粟迪夫:WalmartLabs实验室广告平台首席工程师 ...
- 点菜网---Java开源生鲜电商平台-技术选型(源码可下载)
点菜网---Java开源生鲜电商平台-技术选型(源码可下载) 1.内容简介 点菜网目前选用的是最流行的微服务架构模式,采用前后端分离的开发模式,具备高可用,高负载,支持千万级别的数据量的请求. 2. ...
- 【重大更新】开源跨平台物联网通讯框架ServerSuperIO 2.0(SSIO)下载
更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能.BUG.细节说明,以及升级思考过程! 声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间 ...
- [转帖]开源的监控技术栈除了ELK,还有InfluxData的TICK
开源的监控技术栈除了ELK,还有InfluxData的TICK https://cloud.tencent.com/developer/news/357119 来源 | Influxdata 译者 ...
- 《开源安全运维平台OSSIM最佳实践》
<开源安全运维平台OSSIM最佳实践> 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用80多万字记录了,作者10多年的IT行业 ...
- Java开源生鲜电商平台-系统简介
Java开源生鲜电商平台-系统简介 1.生鲜电商平台的价值与定位. 生鲜电商平台是一家致力于打造全国餐饮行业智能化.便利化.平台化与透明化服务的创新型移动互联网平台,连接买家与卖家之间的一个平台 看以 ...
- Java开源生鲜电商平台-性能优化以及服务器优化的设计与架构(源码可下载)
Java开源生鲜电商平台-性能优化以及服务器优化的设计与架构(源码可下载) 说明:Java开源生鲜电商平台-性能优化以及服务器优化的设计与架构,我采用以下三种维度来讲解 1. 代码层面. 2. 数 ...
- 开源大数据技术专场(下午):Databircks、Intel、阿里、梨视频的技术实践
摘要: 本论坛第一次聚集阿里Hadoop.Spark.Hbase.Jtorm各领域的技术专家,讲述Hadoop生态的过去现在未来及阿里在Hadoop大生态领域的实践与探索. 开源大数据技术专场下午场在 ...
随机推荐
- 线程的常用知识(包括 Thread/Executor/Lock-free/阻塞/并发/锁等)
本次内容列表: 1.使用线程的经验:设置名称.响应中断.使用ThreadLocal 2.Executor:ExecutorService和Future 3.阻塞队列:put和take.offer和po ...
- Java JVM【笔记】
Java JVM[笔记] Java的平台无关性是如何实现的? Java源码首先被编译成字节码,再由不同的平台的JVM进行解析,Java语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字 ...
- deepin下启动自己的springcloud服务报错
java.nio.file.AccessDeniedException: /home/msan/logs/csp/sentinel-record.log.2021-01-04.0.2.lck at s ...
- Windows安装Svn客户端
一.下载程序 官网地址,选择最新64位下载. 下载完成 二.安装过程 点击下一步 点击下一步 选择安装目录 点击安装 安装完成 三.修改中文 下载中文包 下载完成 点击下一步 安装完成 点击设置 选择 ...
- DLL-创建DLL
动态链接库的创建 fangyukuan 2010.6.20 编写DLL时的函数与一般的函数方法基本一样.但要对库中的函数进行必要的声明,以说明哪些函数是可以导出的,哪些函数是不可以导出的. 把DLL中 ...
- asp.net MVC 数据的验证
join 操作
- 13.SpringMVC之全局异常
我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生.在开发中,不管是dao层 ...
- Oracle插入中文乱码问题
PLSQL执行一条插入代码,两个字符既显示超长,一个字符插入后乱码 insert into person (pid, pname) values (1,'明'); Google查询说原因是Oracle ...
- clojure配置
1.转换clojure工程为eclipse工程 Install Counterclockwise plugin in Eclipse (from eclipse marketplace). This ...
- Spring之属性注入
时间:2017-1-31 23:38 --Bean的属性注入方式有三种注入方式: 1)接口注入: 定义一个接口,定义setName(String name)方法,定义一个类,实现该 ...