应用案例

物联网网关架构 物联网设备网关技术架构设计TCP Gateway

小编 2024-10-06 应用案例 23 0

物联网设备网关技术架构设计TCP Gateway

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)TCP Gateway。

介绍

物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)

说明

NioEventLoop 是 Netty 的 Reactor 线程,其角色:

Boss Group:作为服务端 Acceptor 线程,用于 accept 客户端链接,并转发给 WorkerGroup 中的线程。Worker Group:作为 IO 线程,负责 IO 的读写,从 SocketChannel 中读取报文或向 SocketChannel 写入报文。Task Queue/Delay Task Queue:作为定时任务线程,执行定时任务,例如链路空闲检测和发送心跳消息等。

概要说明

TcpServer :提供TCP连接服务TcpSessionManager: 你可以添加监听事件,用于监听TCP会话创建、销毁等LogSessionListener:一个日志监听器,它和tcpSessionManager关联,监听器必须事先 SessionListenerTcpSender:TCP发送者,用户向客户端发送消息通知、实现下行逻辑ServerConfig: TCP 的配置管理类TcpConnector: TCP 容器,用于管理服务和客户端的连接NotifyProxy: 发送通知到代理类

以上都是默认配置,你可以不修改,但是你可能需要换个TCP端口

.TCP网关的网络结构

基于Netty构建TCP网关的长连接容器,作为网关接入层提供服务API请求调用。

客户端通过域名+端口访问TCP网关,域名不同的运营商对应不同的VIP,VIP发布在LVS上,LVS将请求转发给后端的HAProxy,再由HAProxy把请求转发给后端的Netty的IP+Port。

LVS转发给后端的HAProxy,请求经过LVS,但是响应是HAProxy直接反馈给客户端的,这也就是LVS的DR模式。

TCP网关执行时序图

其中步骤一至步骤九是指 Netty 服务端的创建时序,步骤十至步骤十三是 TCP 网关容器创建的时序。

步骤一 :创建 ServerBootstrap 实例,ServerBootstrap 是 Netty 服务端的启动辅助类。步骤二 :设置并绑定 Reactor 线程池,EventLoopGroup 是 Netty 的 Reactor 线程池,EventLoop 负责所有注册到本线程的 Channel。步骤三 :设置并绑定服务器 Channel,Netty Server 需要创建 NioServerSocketChannel 对象。步骤四 :TCP 链接建立时创建 ChannelPipeline,ChannelPipeline 本质上是一个负责任的执行 ChannelHandler 的职责链。步骤五 :添加并设置 ChannelHandler,ChannelHandler 串行的加入 ChannelPipeline 中。步骤六 :绑定监听端口并启动服务端,将 NioServerSocketChannel 注册到 Selector 上。步骤七 :Selector 轮训,由 EventLoop 负责调度和执行 Selector 轮询操作。步骤八 :执行网络请求事件通知,轮询准备就绪的 Channel,由 EventLoop 执行 ChannelPipeline。步骤九 :执行 Netty 系统和业务 ChannelHandler,依次调度并执行 ChannelPipeline 的 ChannelHandler。步骤十 :通过 Proxy 代理调用后端服务,ChannelRead 事件过后,通过发射调度后端 Service。步骤十一 :创建 Session,Session 与 Connection 是相互依赖的关系。步骤十二 :创建 Connection,Connection 保存 ChannelHandlerContext。步骤十三 :添加 SessionListener,SessionListener 监听 SessionCreate 和 SessionDestory 等事件。

程序运行案例步骤

1.配置本地Host

Window 地址 // C:\Windows\System32\drivers\etc\hosts

添加 127.0.0.1 iot-open.icloud.com

2.启动Server

位置: com.ibyte.iot.test.server.TestTcpServer

2.启动Client

位置: com.ibyte.iot.test.client.TcpClient

更多内容:https://gitee.com/ibyte/icloud-tcp-gateway

物联网网关的架构

物联网解决方案的典型架构通常比大多数企业系统的架构复杂得多。增加物联网系统复杂性的一个主要因素是,数据中心中的后端服务实际上只是更大的物联网图景的一部分。使用物联网解决方案,我们必须处理大量在现场工作的设备。由于这些设备的性质与Web、台式机甚至移动客户机非常不同,因此我们需要一个中间体系结构,充当现场设备世界和企业数据中心之间的代理。我们需要的是物联网网关。

为什么需要IoT网关

您现在可能想知道:将网关引入您的物联网架构背后的主要原因是什么?让我通过讨论网关架构如何运作的一些最重要的方面来阐明这个问题。

首先,传感器在网络连接方面通常具有非常有限的能力。 您的传感器可能会使用蓝牙低功耗(BLE),就像市场上的大多数信标一样; 您的某些传感器还可能使用ZigBee协议提供连接。 在局域网(LAN),家庭局域网(HAN)或个人局域网(PAN)中还可以找到许多其他协议。 所有这些协议都有一个共同点:它们无法直接连接到广域网(WAN)或Internet等大型网络。 您需要一个网关,通过使用WiFi,GSM或其他类型的连接,可以为您的传感器提供与外部网络的单点联系。

网关不仅仅是将数据从传感器转发到后端服务的转储代理。将传感器收集到的所有信息发送到数据中心在性能和网络利用率方面都是非常无效的。在将信息发送到数据中心之前,需要一个物联网网关对现场信息进行预处理。这种预处理包括消息过滤和聚合。

网关还应充当单个访问点,用于监视操作字段的选定区域。不需要使用监视软件连接到每个传感器;只监视网关更容易,网关反过来负责从传感器收集所有必要的数据。

体系结构概述

下面的网关体系结构图是最常见的体系结构设计,其中网关本身没有配备传感器。安装在设备上的网关软件负责从传感器收集数据,对数据进行预处理,并将结果发送到数据中心。

请记住,在此传感器体系结构上有可能发生变化,其中一些传感器位于网关设备上,它可能存在于网关的嵌入式传感器可以包括GPS单元或使用GPIO接口连接到网关的温度传感器等选项。

网关软件

软件应用程序是网关的核心。网关软件负责收集来自传感器的信息,并将其适当存储,直到可以对其进行预处理和发送到数据中心。网关软件决定在给定处理阶段的数据是临时的、持久的保存在内存中的。

网关软件的设计应考虑到故障和灾难恢复。由于网关设备通常在现场操作,因此您应该为不理想的工作条件做好准备。例如,应为断电或可能导致网关处理中断的其他操作准备网关软件。网关软件应在电源恢复后立即自动启动,并从中断点继续工作。

网关软件还应该足够智能,能够正确处理系统日志记录。它必须在存储在设备上的日志条目数和发送到数据中心的日志条目数之间找到正确的平衡。

软件安装和更新

网关软件如何进入设备?这个问题有三种主要的解决方法。

第一种方法是在网关磁盘(或存储卡)上预安装软件。这种方法称为工厂引导程序。正如您可能猜到的,如果您的解决方案包含大量网关,则此技术无法很好地扩展。

第二种方法是服务器启动的引导。在此模式下,中央软件管理服务器与网关设备通信,并向其部署正确版本的软件。这种方法比工厂引导扩展得更好,但是仍然需要在服务器端启动部署操作。

第三种方法是客户端启动的引导程序。此模式假定网关负责连接到中央存储库服务器并下载适当版本的软件。在这种情况下,网关需要安装轻量级引导软件,以便它可以与软件管理服务器通信。此方法是最具可扩展性的方法

物联网网关的一个非常重要的特性是能够通过无线方式下载更新。 将网关软件安装到设备上并将其交付到现场后,您在网关软件维护方面的功能非常有限。 从安全角度来看,通过无线方式下载软件更新的能力尤其重要,因为它可能会影响关键安全修复程序的交付时间。因为它不需要对部署操作进行任何集中协调。每个网关设备在打开电源后立即下载软件。

传感器消费者

如果软件应用程序是网关的核心,那么传感器就是网关的眼睛和耳朵。传感器是可以测量现实世界某些方面的小型硬件设备。传感器收集的常见数据类型有温度、GPS坐标、湿度、气压等。

网关从传感器收集的消息通常很小。 例如,传感器测量的温度的当前值仅为十进制数。 GPS坐标是两个十进制数字,代表经度和纬度。 这是一个需要记住的重要事项:网关对大量的小消息进行操作。

虽然传感器本身可以经常生成消息,但重要的是预测我们真正需要从传感器收集多少消息。例如,我们可以每毫秒读取一个传感器的温度,但在测量温度变化时我们真的需要这种精度吗?在大多数情况下,每秒读取传感器值几次就足够了,因为我们对更长时间内的度量标准更感兴趣。网关软件通常定期轮询传感器数据。良好的网关软件允许您轻松配置每个传感器的轮询间隔。您绝对不希望将不必要的传感器数据放入网关,因为过时的消息会占用受限网关设备的宝贵处理能力。

网关数据传输

通常,网关通过GPS、WiFi或以太网连接到互联网。有些网关还可以在GPS和WiFi模式下工作(例如,安装在移动车辆上的网关)。一般来说,非GPS连接优先于发送数据,因为它不需要付费的移动计划。一些网关将不断地连接到廉价的本地网络,但是那些使用GPS连接的网关在发送到数据中心的数据方面应该非常保守。网关应该对它收集的数据应用业务逻辑,以了解哪些消息应该通过昂贵的GPS网络发送,哪些数据可以缓存在设备上以进行延迟的脱机处理。

总结

网关是每个物联网解决方案的关键组件。在决定要购买哪种硬件作为网关平台之前,请花一些时间分析消息和有效负载的数据格式,并尝试在将数据从网关发送到数据中心之前过滤或聚合尽可能多的数据。此外,虽然为物联网解决方案选择合适的硬件非常重要,但您必须记住,选择合适的网关软件和管理基础设施(如用于管理设备的LWM2M服务器)将对你的总维护成本产生重大影响。

相关问答

物联网 的体系结构可以分为哪三个层次?

1、从技术架构上来看,物联网可分为三层:感知层、网络层和应用层。2、感知层由各种传感器以及传感器网关构技术架构图示成,包括二氧化碳浓度传感器、温度传...

物联网 智能 网关 通常有哪些开发方式?

两种开发方式,一种是在线开发,一种是线下开发,在线开发使用网络作为处理器来开发线下开发就是使用硬件来开发。两种开发方式,一种是在线开发,一种是线下开发,...

物联网 的系统组成?

物联网系统构成:1、东西(设备):这些被定义为唯一可识别的节点,主要是传感器,它们通过网络进行通信,无需人工干预。2、网关:它们充当东西和云之间的中介,...

物联网 的层次结构如何划分?

物联网架构按层级来划分可分为3个层级:感知层、网络层、应用层。以下将对它们在物联网系统中扮演的的角色及作用进行阐述。首先底层是用来感知数据的感知层...

华为 物联网网关 是什么?

物联网网关,作为一个新的名词,在未来的物联网时代将会扮演非常重要的角色,它将成为连接感知网络与传统通信网络的纽带。作为网关设备,物联网网关可以实现感知...

物联网关 是什么?

物联网网关(IoTGateway)是将物联网设备数据、信号转换为标准化协议,进行协议转换、数据清洗等处理,同时对数据进行边缘计算、存储、加密、传输等操作。它是...

物联网关键 技术有哪些? - 挨饿德爷 的回答 - 懂得

目前涉及物联网运营的关键技术是终端接入和平台服务。终端是直接与用户接触的使用界面,而平台则是承载服务的核心系统。终端接入和平台服务保障了物...

西门子IoT 物联网网关 是做什么用的?,IoT开放式网关价格高吗??

[回答]做不了领头之人便做出谋之人,做一个缺你不可之人,感谢合作商武汉万象奥科电子有限公司团队。武汉万象奥科电子有限公司公司拥有以华中科技大学博士...

物联网 技术包括什么 - 184****2234 的回答 - 懂得

终端接入技2113术:物联5261网终端的种类非常多,包括物联网4102网关、通信模块以及大量的行业终端,1653其中尤以行业终端的种类最为丰富。从终端接入...

麻烦在座的大神!有谁知道么!!西门子IoT 物联网网关 是做什么用...

[回答]武汉万象奥科电子有限公司公司拥有以华中科技大学博士为骨干的资深嵌入式专家、系统底层软件工程师、EMC工程师组成的研发团队研发中心下设嵌入式技...

猜你喜欢