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.主流技术架构分析
目前主流通讯服务设计思路有三种,通讯服务的横向设计方案与纵向设计方案。
- 常规设计方案
纵向设计方案
小型公司采用的技术架构,也是开源市场上提供的最直接的解决方案,该方案会取消通讯路由(通讯路由的开发存在技术难度,且机器硬件采购成本较高),取消通讯路由后,通讯并发不加载业务的情况下能达到1w;
应用场景:以项目为为主,主要应用于局域网,加载业务单机并发可达到3-6K;
备注:在大部分以项目为主,或者工业应用,软件基于局域网部署的场合下,采用小型公司采用的技术方案,该方案,网络上有现成的解决方案,开发成低,技术难度低。
应用场景:以项目为主的局域网,或者工业设备互联上。
- 纵向设计方案,该框架为中型公司常用软件框架结构,该框架存在并发瓶颈,瓶颈在通讯路由上,并发程度的高低取决于通讯路由硬件的配置,在机器高配的情况下,高并发在100w以上。
纵向设计方案
该框架为中型公司常用软件框架结构,该框架存在并发瓶颈,瓶颈在通讯路由上,并发程度的高低取决于通讯路由硬件的配置,在机器高配的情况下,高并发在100w以上。
难点:通讯路由的开发(选型,测试),设备管理平台的开发。
应用场景:专注于家具销售,设备销售。
- 横向设计方案,该设计方案目前azure云,阿里云等为代表的大型互联网公司,采用了该软件架构方式,主要有由通讯组件,队列组件,Rpc.api通讯接口,设备管理平台构成该通讯采集系统。
横向设计方案
说明:设备管理平台中的通讯组件,动态队列,用户基于业务动态在设备管理平台上进行创建,并动态绑定通讯组件与动态队列。设备接入该通讯平台时需要预先在该设备平台上注册设备终端,平台会分配各个设备对应的连接认证码后,方可接入通讯平台。
该设计方案的优点:由于高端计算机造价高,单机通讯存在并发极限,采用通讯分布式,并发方式存在无限扩张的可能;
技术难点:dynamic.IOTHub的动态创建,队列的动态创建,设备平台的上对IOTHub与Dynamic.queue动态绑定,硬件设备的动态扩容,无技术积累的公司,存在挑战。
应用场景:用于多业主使用,各业主无相关性,无性能瓶颈(单机高配通讯可满足上万并发)。该性能,能支持绝大多数业务,即使存在特定业务单IOTHub不能满足需求的情况下,可采用新增IOT的方式支持更多设备的接入。
以上三种技术方案,应用于不同的场景,方案选择需要根据实际应用场景,开发技术储备,人员配置情况。
1.2.4.关键技术
基于目前的市场上采用主流解决方案,我们吸收了现有的解决方案的基础上,提出了满足业务需求,合理技术解决方案。如图所示。
横向设计方案
该方案采用了,通讯服务与MQ消息服务横向扩展的技术,采用资源管理平台进行通讯资源的管理与监测手段,最后对交互的数据实现数据规则化,提供给业务系统使用。
1.3.系统功能设计
1.3.1.功能清单列表
通过需求分析深度分析与难点分析,整理出的功能清单列如表:
数据通讯平台功能
|----|----------|----------|----------------------------|
| 序号 | 功能点 || 描述 |
| 1 | 资源管理 | 通讯资源管理 | 用于通讯资源的录入服务 |
| 1 | 资源管理 | MQ资源管理 | 用于MQ消息资源的录入服务 |
| 2 | MQ队列管理 | 队列创建 | 用于对了MQ队列的动态创建,销毁 |
| 3 | TCP服务 | 启动服务 | 承担通讯服务的创建、销毁工作 |
| 3 | TCP服务 | IP认证服务 | 用于通讯服务的鉴权IP过滤 |
| 3 | TCP服务 | TCP通道验证 | 用于通讯服务的鉴权认证 |
| 4 | MQTT服务 | 启动服务 | 承担通讯服务的创建、销毁、编辑工作 |
| 4 | MQTT服务 | 认证服务 | 用于通讯服务的鉴权认证 |
| 5 | CoAP通讯服务 | 启动服务 | 承担通讯服务的创建、销毁、编辑工作 |
| 5 | CoAP通讯服务 | CoAP通道认证 | 用于CoAP鉴权服务 |
| 5 | CoAP通讯服务 | CoAP命令 | 用于设备的方向控制 |
| 6 | 项目管理 | 项目浏览 | 用于TCP、MQTT、COAP、MQ服务的管理与监测 |
| 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.数据标准化
业务系统开发完毕后,接入数据的格式有特定标准,项目采购设备的通讯数据标准存在差异性,若项目存在阶段性建设,或者持续性的优化,缺少数据标准化的过程,后期项目的维护,改造与第三方的对接成本会非常高,特别是在大型多子系统的项目中表现得尤为突出,基于以上原因考虑通讯数据接入业务系统之前,进行数据的标准化非常有必要。