数据通讯平台建设方案(物联网数据采集平台)

1.数据通讯平台

软件开发全资料获取:软件项目开发全套文档下载_软件项目技术实现文档-CSDN博客

1.1.1.系统概述

对不同的数据协议、数据模式进行采集适配。基于XX智慧平台统一数据交换标准,与第三方系统对接,实现数据交换;实现不同场景中的在线监测仪表以及其他物联传感设备的通讯和数据交换。为企业信息化集成平台的不同业务系统提供底层物联采集及数据支撑。

1.1.2.需求分析

数据通讯平台主要承担硬件设备与应用系统的交互,第三方系统与企业内部系统的交互。需要满足内部业务在该通讯平台的基础上,实现业务系统的业务可扩展性。基于以上分析对数据通讯平台,提出了以下要求:

(1) 多协议的支持,由于设备厂商的差异性,采用的协议参差不齐,基于以上原因对数据通讯平台提出了较高的要求,要求数据通讯平台支持多协议,例如MQTT、TCP、CoAP。

(2) 同类型设备数据包通讯的标识,硬件同类型设备采购的厂商不同,设备通讯数据包格式不同,而在业务系统中,需要以标准的数据实现对业务系统的支持,基于以上原因要求数据通讯平台能实现不同类型设备的标识,以用于设备通讯数据协议的解析。

(3) 通讯数据临时存储,业务系统存在着升级、机房临时停电等情况,基于以上情况,通讯服务需要提供通讯数据的临时存储功能。

(4) 通信服务状态监测,通讯平台提供的通讯服务,可能面向不同类型设备群,不同设备群自定义协议存在差异,基于以上情况建立不同的通讯链路,用于自定义通讯协议的区分,是非常有必要的。通讯链路的稳定性与通讯服务质量有关,也与运维有关,实时监测通讯服务的稳定性,对数据的完整性非常重要。

(5) 数据标准化服务,项目施工完毕后可能存在相同功能设备的二次采购服务于项目,数据通讯平台提供面向业务的统一数据标准化服务,有利于减少系统的接入与建设成本。

(6) 通讯服务的统一维护,数据通讯服务支持不同协议的数据通讯时,异构协议需要采用统一的资源管理服务进行调度与管理;

通讯服务需要支持大规模的设备接入,单机通讯服务存在并发极限,基于以上需求,通讯服务需要满足协议通讯服务的横向可扩展,用于支持大规模的设备接入。

1.1.3.重难点分析

通过需求的深度分析,我们可以看出单独一种通讯协议的实现比较简单,单协议的通讯服务可以采用开源的解决方案,该方案可以满足规模较小的设备接入,但在面对大规模高并发的情况下会显得力不从心的情况。当出现多协议的情况下,系统实现会变得非常复杂,实现成本和维护成本非常高。多协议的通讯集成对于通讯服务平台的实现是一种挑战。

通讯服务资源的管理与监控,对于通讯服务的实现也是一种挑战。通讯服务的管理,主要解决通讯服务对于硬件资源的合理利用、通讯数据包的临时存储、通讯状态的监测、通讯服务的鉴权管理。

在系统集成中,适配不同的业务系统非常有必要,但这对通讯服务平台性能的适配提出了更高的要求。

1.1.4.重难点解决措施

针对重难点,在技术上提出了一下解决措施:

(1) 通讯服务横向扩展技术,设备接入规模在硬件资源满足的情况下无限制,数据采集平台可依据业务扩展的需要,动态的新增不同类型的通讯服务器资源;

(2) 支持多协议硬件设备接入,该数据采集平台,针对不同的协议,开发了不同的通讯服务器,并进行通讯集成;从而支持更为广泛的设备接入通讯平台;

(3) 数据隔离技术,支持接入平台的通讯数据,进行数据的隔离,支持企业之间数据的隔离,项目之间数据的隔离;

(4) 数据分发技术,支持同一通讯服务数据的分发,用户可以根据业务,动态增减数据的分发,用于满足业务的需要;

(5) 微服务技术,由传统的单体服务技术,转向微服务技术,故障率更低,后期可维护性更好;

(6) 各通讯协议服务独立开发,采用微服务技术进行通讯平台集成;

1.2.系统架构设计

1.2.1.系统架构图

在目前主流的基于企业级别的技术路线,可供选择的有Java 技术体系、C#技术体系、.netCore技术体系;从目前国内主流技术应用和国内环境考虑,我们优先选择Java 技术体系,该体系用户使用群里大,开源资源较多,有完整的技术架构体系;Java技术体系中,所选用的技术路线为java、注册中心、网关、基于开源的通讯服务、跨服务调用插件、监测中心。详细技术架构如图所示:

1.2.2.业务架构设计

数据通讯平台主要包括:MQ消息服务、TCP通讯服务、CoAP通讯服务、MQTT通讯服务、资源管理服务。每个子服务中核心业务模块如图所示:

核心业务模块

(1) MQ消息服务

MQ消息服务,为独立部署的开源软件系统,资源管理平台通过组件的方式,根据业务需要,动态的创建销毁消息队列,MQ消息队列服务的部署,可以横向的扩展部署,部署后的消息服务信息,需要录入到资源管理服务中,作为基础信息供平台使用。用户通过资源管理平台,创建的消息队列需绑定对应的通讯服务,供通信服务使用。

(2) TCP通讯服务

TCP通讯服务,支持远程服务的创建、销毁、消息转发、权限验证、IP过滤、反向控制等功能。平台通过资源管理服务,完成以上操作,TCP通讯服务也可作为单独的插件使用。TPC通讯服务与资源管理平台的信息交互通过注册中心进行。TCP通讯服务部署完成后,需将相关信息录入到资源管理服务中,供资源管理平台对TCP通讯服务的远程检测与控制。

(3) CoAP通讯服务

CoAP通讯服务主要用于处理资源有限的低功耗设备协议。该服务支持服务创建、销毁、反向控制、权限认证、设备在线注册等功能。

(4) MQTT通讯服务

MQTT通讯服务支持服务创建、服务销毁、消息转发、权限认证。

(5) 资源管理服务

资源管理服务主要用于管理在服务器上部署的通讯服务、通讯服务中的鉴权、MQ服务。通讯服务主要包括TCP通讯服务、CoAP通讯服务、MQTT通讯服务。

1.2.3.主流技术架构分析

目前主流通讯服务设计思路有三种,通讯服务的横向设计方案与纵向设计方案。

1) 常规设计方案

纵向设计方案

小型公司采用的技术架构,也是开源市场上提供的最直接的解决方案,该方案会取消通讯路由(通讯路由的开发存在技术难度,且机器硬件采购成本较高),取消通讯路由后,通讯并发不加载业务的情况下能达到1w;

应用场景:以项目为为主,主要应用于局域网,加载业务单机并发可达到3-6K;

备注:在大部分以项目为主,或者工业应用,软件基于局域网部署的场合下,采用小型公司采用的技术方案,该方案,网络上有现成的解决方案,开发成低,技术难度低。

应用场景:以项目为主的局域网,或者工业设备互联上。

2) 纵向设计方案,该框架为中型公司常用软件框架结构,该框架存在并发瓶颈,瓶颈在通讯路由上,并发程度的高低取决于通讯路由硬件的配置,在机器高配的情况下,高并发在100w以上。

纵向设计方案

该框架为中型公司常用软件框架结构,该框架存在并发瓶颈,瓶颈在通讯路由上,并发程度的高低取决于通讯路由硬件的配置,在机器高配的情况下,高并发在100w以上。

难点:通讯路由的开发(选型,测试),设备管理平台的开发。

应用场景:专注于家具销售,设备销售。

3) 横向设计方案,该设计方案目前azure云,阿里云等为代表的大型互联网公司,采用了该软件架构方式,主要有由通讯组件,队列组件,Rpc.api通讯接口,设备管理平台构成该通讯采集系统。

横向设计方案

说明:设备管理平台中的通讯组件,动态队列,用户基于业务动态在设备管理平台上进行创建,并动态绑定通讯组件与动态队列。设备接入该通讯平台时需要预先在该设备平台上注册设备终端,平台会分配各个设备对应的连接认证码后,方可接入通讯平台。

该设计方案的优点:由于高端计算机造价高,单机通讯存在并发极限,采用通讯分布式,并发方式存在无限扩张的可能;

技术难点:dynamic.IOTHub的动态创建,队列的动态创建,设备平台的上对IOTHub与Dynamic.queue动态绑定,硬件设备的动态扩容,无技术积累的公司,存在挑战。

应用场景:用于多业主使用,各业主无相关性,无性能瓶颈(单机高配通讯可满足上万并发)。该性能,能支持绝大多数业务,即使存在特定业务单IOTHub不能满足需求的情况下,可采用新增IOT的方式支持更多设备的接入。

以上三种技术方案,应用于不同的场景,方案选择需要根据实际应用场景,开发技术储备,人员配置情况。

1.2.4.关键技术

基于目前的市场上采用主流解决方案,我们吸收了现有的解决方案的基础上,提出了满足业务需求,合理技术解决方案。如图所示。

横向设计方案

该方案采用了,通讯服务与MQ消息服务横向扩展的技术,采用资源管理平台进行通讯资源的管理与监测手段,最后对交互的数据实现数据规则化,提供给业务系统使用。

1.3.系统功能设计

1.3.1.功能清单列表

通过需求分析深度分析与难点分析,整理出的功能清单列如表:

数据通讯平台功能

序号

功能点

描述

1

资源管理

通讯资源管理

用于通讯资源的录入服务

MQ资源管理

用于MQ消息资源的录入服务

2

MQ队列管理

队列创建

用于对了MQ队列的动态创建,销毁

3

TCP服务

启动服务

承担通讯服务的创建、销毁工作

IP认证服务

用于通讯服务的鉴权IP过滤

TCP通道验证

用于通讯服务的鉴权认证

4

MQTT服务

启动服务

承担通讯服务的创建、销毁、编辑工作

认证服务

用于通讯服务的鉴权认证

5

CoAP通讯服务

启动服务

承担通讯服务的创建、销毁、编辑工作

CoAP通道认证

用于CoAP鉴权服务

CoAP命令

用于设备的方向控制

6

项目管理

项目浏览

用于TCP、MQTT、COAP、MQ服务的管理与监测

设备管理

7

数据标准

用于将通讯中的数据进行标准化,标准化后的数据统一提供给业务系统使用。

1.3.2.资源管理

资源管理服务主要用于通讯服务资源的管理,通讯服务资源包括TCP服务,CoAP通讯服务、MQTT通讯服务,MQ消息队列通讯服务,这些服务需要提前部署到硬件环境中,供通讯服务使用。通讯服务资源单独部署,采用了通讯资源横向扩展的方式,解决了单机通讯并发受限的瓶颈问题。

1.3.3.MQ队列管理

MQ通讯队列管理,主要用于MQ队列的动态创建,销毁,浏览工作,创建的队列用于通讯服务消息的临时存储,或者消息的转发。MQ服务是一种异步的服务间通信方式,适用于无服务器和微服务架构。消息在被处理和删除之前存储在队列上,每条消息仅可被一位用户处理一次。消息队列用于缓存或批处理工作以及缓解高峰期工作负载,在应用程序中主要解决应用耦合,异步消息,流量削锋等问题,实现高性能、高可用、可伸缩。

1.3.4.TCP通讯服务

该服务通过TCP协议进行数据传输,该服务提供服务的动态创建、销毁、监测;传统的工业应用TCP通讯服务缺少鉴权机制,在该通讯服务中,提供了鉴权机制,用于通讯服务的鉴权,同时支持无鉴权的通讯服务,用于兼容不支持通讯鉴权的硬件设备。较老旧的通讯设备,常采用该通讯协议作用工业互联的协议,现阶段仍然有大部分企业,采用该协议作为主要通讯协议,用于设备通讯。

1.3.5.MQTT通讯服务

该服务提供服务的动态创建、销毁、监测、鉴权,与此同时该服务支持无鉴权的通讯设备。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。MQTT通讯协议,在卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用,该通讯服务为目前主流的通讯服务。

1.3.6.CoAP通讯服务

CoAP通讯服务主要用于低功耗支持CoAP协议的设备,该服务支持CoAP通讯的认证,设备的方向控制,与此同时该服务支持无鉴权的通讯服务,用于支持无鉴权的设备。该服务通过CoAP协议进行数据传输。CoAP(Constrained Application Protocol)是一种在物联网世界的类web协议。顾名思义,使用在资源受限的物联网设备上。物联网设备的ram,rom都通常非常小,运行TCP和HTTP是不可以接受的。目前CoAP通讯协议在低功耗要求和信号穿透能力要求较高的场景下使用较多。

1.3.7.项目管理

平台支持基于公司多项目接入,公司与公司之间数据进行逻辑隔离,支持项目与项目之间进行数据隔离。注册到平台的公司,可以在平台上新建项目,并将项目绑定到通讯的消息队列上,项目业务编程时依据绑定的消息队列,消费队列中的消息。

平台提供web页面或者API接口,为用户提供设备注册接口,设备注册成功后,可采用平台提供的通讯服务,进行硬件设备与通讯服务器的通讯,并将消息发送到消息队列,业务程序从消息队列中获取数据进行消费。

1.3.8.数据标准化

业务系统开发完毕后,接入数据的格式有特定标准,项目采购设备的通讯数据标准存在差异性,若项目存在阶段性建设,或者持续性的优化,缺少数据标准化的过程,后期项目的维护,改造与第三方的对接成本会非常高,特别是在大型多子系统的项目中表现得尤为突出,基于以上原因考虑通讯数据接入业务系统之前,进行数据的标准化非常有必要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/606388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【金猿CIO展】是石科技CIO侯建业:算力产业赋能,促进数字经济建设

‍ 侯建业 本文由是石科技CIO侯建业撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 是石科技(江苏)有限公司成立于2021年,由国家超级计算无锡中心与…

ECharts 实现省份在对应地图的中心位置

使用 ECharts 下载的中国省市区的json文件不是居中的(如下图所示),此时需要修改json文件中的 cp 地理位置,设置成每个省份的中心位置 {"type": "FeatureCollection","features":[{ "type": "Feature"…

P9 视频码率及其码率控制方式

前言 从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_C…

外包做了1个月,技术退步一大半了。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

Java课程设计个人博客

目录 引言:在此说明在本次课设过程中所遇到的困难! 一、项目搭建的问题 Q1:Web项目应用啥么编译器编写? Q2:如何创建Web项目(MAVEN)? Q3:Tomcat服务器开头控制台显示乱码如何解决? Q4:Tomcat服务器怎么设置项目的…

2024最新腾讯云CVM服务器和轻量应用服务器有什么区别?

腾讯云轻量服务器和云服务器CVM该怎么选?不差钱选云服务器CVM,追求性价比选择轻量应用服务器,轻量真优惠呀,腾讯云服务器网txyfwq.com活动 https://curl.qcloud.com/oRMoSucP 轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元…

过滤器和拦截器

上篇文章我们学习了 Session 认证和 Token 认证,这篇我们来学习一下过滤器和拦截器,过滤器和拦截器在日常项目中经常会用到。 一、过滤器 1.1、理论概念 过滤器 Filter 是 JavaWeb 三大组件(Servlet、Filter、Listener)之一&am…

Mac 环境多JDK安装与切换

一、下载jdk 去Oracle官网上下载想要安装的jdk版本,M芯片选择arm架构的.bmg格式的文件。 https://www.oracle.com/java/technologies/downloads/。 二、安装jdk 2.1 双击下载的文件,安装步骤一步步点继续就好。 2.2 安装完成后会在/Library/Java/JavaV…

【Linux Shell】9. 流程控制

文章目录 【 1. if else 判断 】1.1 if1.2 if else1.3 if elif else1.4 实例 【 2. case 匹配 】【 3. 循环 】3.1 for 循环3.2 while 循环3.3 until 循环3.4 无限循环3.5 跳出循环3.5.1 break 跳出所有循环3.5.2 continue 仅跳出当前循环 【 1. if else 判断 】 1.1 if fi 是…

国际新产品开发专业认证-NPDP

👑NPDP认证是美国产品开发管理协会(PDMA)所发起的新产品开发专业认证,是国际公认的wei一的新产品开发专业认证。 ✍🏻NPDP考试每年考2次,分别在每年的5月和11月。考试一共200道单选题,做对150道及格通过考试。 &#x…

应用层

title: 应用层 date: 2023-12-20 21:03:48 tags: 知识总结 categories: 计算机网络 应用层:负责最直观的应用请求的封装、发起 一、域名系统DNS 连接在互联网上的主机不仅有IP地址,还有便于用户记忆的主机名字。域名系统DNS能够把互联网上的主机的名字…

亲测有效:腾讯云免费服务器30天申请流程

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM,轻量配置可选2核2G3M、2核8G7M和4核8G12M,CVM云服务器可选2核2G3M和2核4G3M配置,腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

【Unity】如何在Unity中使用C#的NuGet 包资源

【背景】 Unity的脚本语言是C#,而C#有很多功能和能力可以通过nuget包提供。有没有办法把这些能力结合到Unity中一起使用呢?如果可以,那将大大扩展Unity中各类功能实现的便捷性。 【方法】 答案是:你可以! 获取Nuge…

创建第一个SpringMVC项目,入手必看!

文章目录 创建第一个SpringMVC项目,入手必看!1、新建一个maven空项目,在pom.xml中设置打包为war之前,右击项目添加web框架2、如果点击右键没有添加框架或者右击进去后没有web框架,点击左上角file然后进入项目结构在模块…

gem5学习(9):构建gem5——Building gem5

目录 一、Requirements for gem5 二、Getting the code 三、Your first gem5 build 1、gem5 binary types 四、Common errors 1、gcc版本过低 2、使用非默认版本的python 3、未安装M4宏处理器 4、Protobuf版本过低 前面的gem5学习(3)—&#xf…

基于Java SSM框架实现游戏论坛平台系统项目【项目源码+论文说明】

基于java的SSM框架实现游戏论坛平台系统演示 摘要 本论文主要论述了如何使用java语言开发一个游戏论坛平台的设计,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构、ssm 框架和 java 开发的 Web 框架,基于Werkzeug WSGI工具箱和…

react antd EditableProTable - 可编辑表格

与编辑表格外的内容联动 value 同 dataSource,传入一个数组,是 table 渲染的元数据 T[] undefined onChange dataSource 修改时触发,删除和修改都会触发,如果设置了 value,Table 会成为一个受控组件。 (value:T[])>void undefined recordC…

Hello 2024(A~D,F1)

新年坐大牢 A - Wallet Exchange 题意:共有俩钱包,每回合从其中一个钱包中拿走一块钱,谁拿走最后一块钱谁赢。 思路:奇偶讨论即可。 // Problem: A. Wallet Exchange // Contest: Codeforces - Hello 2024 // URL: https://cod…

BERT 模型是什么

科学突破很少发生在真空中。相反,它们往往是建立在积累的人类知识之上的阶梯的倒数第二步。要了解 ChatGPT 和 Google Bart 等大型语言模型 (LLM) 的成功,我们需要回到过去并谈论 BERT。 BERT 由 Google 研究人员于 2018 年开发&…

用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?

大型语言模型(LLM)的出现带火了Agent。利用LLM理解人类意图、生成复杂计划并且能够自主行动的能力。Agent具有无与伦比的能力,能够做出类似于人类复杂性的决策和完成一些复杂的工作。 目前市面上已经出现非常多得Agent框架:XAgen…