跨组织环境下 MQTT 桥接架构的评估

news/2025/2/2 23:45:28 标签: 物联网

论文标题

中文标题: 跨组织环境下 MQTT 桥接架构的评估
英文标题: Evaluation of MQTT Bridge Architectures in a Cross-Organizational Context

作者信息

Keila Lima, Tosin Daniel Oyetoyan, Rogardt Heldal, Wilhelm Hasselbring
Western Norway University of Applied Sciences, Norway
Email: {keila.lima, rogardt.heldal, tosin.daniel.oyetoyan}@hvl.no
Kiel University, Kiel, Germany
Email: hasselbring@email.uni-kiel.de

摘要

本文对物联网(IoT)平台中使用的 MQTT 桥接架构进行了初步研究,重点关注实时数据处理的基准配置选项。研究识别了系统组件部署中的相关 MQTT 可配置参数和指标,并以一个真实世界的 IoT 平台为基准,评估了在跨组织环境中数据传输的延迟和可靠性。研究结果表明,桥接组件的数量、MQTT 数据包大小和主题名称会对使用 MQTT 协议的 IoT 架构的质量属性产生影响。

1. 引言

随着 IoT 设备数量的快速增长(预计到 2025 年将达到 160 亿台),数据作为服务的提供方式变得越来越普遍。然而,这种跨组织的数据共享带来了互操作性和信任边界等问题。MQTT 协议作为一种轻量级的发布/订阅通信协议,被广泛应用于 IoT 系统中。本文研究了在跨组织环境中,MQTT 桥接架构的部署选项对延迟和可靠性的影响,并评估了主题名称和负载大小对性能的影响。

2. MQTT 在 IoT 架构中的角色

IoT 架构通常分为感知层、网络层、处理层、应用层和业务层。MQTT 协议因其轻量级和可靠性而被广泛应用于网络层。MQTT 采用发布/订阅模型,支持三种服务质量(QoS)级别:最多一次(QoS 0)、至少一次(QoS 1)和恰好一次(QoS 2)。本文还讨论了 MQTT 桥接架构的三种部署选项:单个代理、代理集群和代理桥接。

3. 方法论

本研究采用基准测试方法,评估了两种 MQTT 桥接架构部署选项(AUT 1 和 AUT 2)在跨组织环境下的延迟和可靠性。实验设置包括数据提供者、源代理、转换器(桥接组件)、目标代理和数据消费者。实验中考虑了不同的主题名称、QoS 级别和负载大小。实验使用真实传感器数据生成负载,并在不同的网络环境中进行测试。

 

4. 结果与讨论

实验结果显示,较小的负载大小(如 1.5 KB)在 QoS 0 级别下可以可靠传输,而较大的负载大小(如 35 KB 和 125 KB)则会遭受较高的消息丢失率。对于所有负载大小,QoS 1 和 QoS 2 级别在延迟和可靠性之间存在权衡。AUT 1 架构(每个数据提供者部署一个桥接组件)在延迟方面表现更好,而 AUT 2 架构(每个传感器中心部署一个桥接组件)在小负载大小下表现出更高的可靠性。此外,主题名称的长度对延迟有一定影响,但这种影响相对较小。

5. 有效性威胁

本文讨论了研究的构建有效性和可靠性。实验中使用了端到端延迟作为延迟指标,并通过在不同网络环境中部署客户端和代理来评估消息丢失情况。实验重复了 10 次以减少云基础设施和网络变化的影响。然而,由于实验仅考虑了有限的负载大小和部署选项,因此无法推广到其他配置。

6. 相关工作

本文回顾了其他关于 MQTT 性能评估的研究,这些研究主要关注 MQTT 代理的延迟、可扩展性和 QoS 级别。与以往研究不同,本文引入了主题名称长度作为基准参数,并使用真实传感器数据进行测试。此外,本文还讨论了网络局部性和负载大小对 MQTT 性能的影响。

7. 结论与未来工作

本文得出结论,MQTT 的负载大小和 QoS 级别对延迟和可靠性有显著影响。对于小负载大小,QoS 0 级别可以实现可靠传输,但对于大负载大小,应避免使用 QoS 0 级别。未来的研究可以进一步探索不同负载大小和网络条件下的 MQTT 性能,并考虑数据传输的能效作为质量属性。


http://www.niftyadmin.cn/n/5840375.html

相关文章

微信小程序1.3 开发工具的使用

内容提要 1.1 创建项目 1.2 开发者工具界面 1.3 模拟器区域 创建项目 开发者工具界面 模拟器区域

windows蓝牙驱动开发-查询蓝牙接口

蓝牙驱动程序堆栈会公开以下接口,配置文件驱动程序可使用这些接口与蓝牙设备交互。 GUID_BTHDDI_SDP_NODE_INTERFACE: 配置文件驱动程序会查询 GUID_BTHDDI_SDP_NODE_INTERFACE 以获取指向允许其创建服务发现协议 (SDP) 记录的函数的指针。此接口对应于…

PostgreSQL 数据查询操作(排序、筛选、连接、分组、子查询)

(1)排序查询与筛选查询操作 排序查询使用ORDER BY,对某个表中的列1按照列升序(ASC,默认升序)或降序(DESC)排序,排序后展示列1和列2两列。此外,也可以按照多列…

【数据结构-前缀树】力扣208. 实现 Trie (前缀树)

Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void…

代码随想录 Day 15 | 【第六章 二叉树】110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数

一、110.平衡二叉树 再一次涉及到,什么是高度,什么是深度,可以巩固一下。 题目链接/文章讲解/视频讲解:代码随想录 1. 整体逻辑 一棵高度平衡二叉树定义为平衡二叉树 是指该树所有节点的左右子树的高度相差不超过 1。通过比较两两…

洛谷 P8724 [蓝桥杯 2020 省 AB3] 限高杆

洛谷题目传送门 题目描述 某市有 n 个路口,有 m 段道路连接这些路口,组成了该市的公路系统。其中一段道路两端一定连接两个不同的路口。道路中间不会穿过路口。 由于各种原因,在一部分道路的中间设置了一些限高杆,有限高杆的路…

工作流引擎Camunda

一,什么是Camunda? Camunda是一个开源的工作流引擎和业务流程管理平台,基于Java和Spring框架构建。它支持BPMN 2.0标准,允许用户通过图形界面或编程方式定义复杂的工作流和业务流程。Camunda可以嵌入到任何Java应用程序中&#x…

如何为用户设置密码

[rootxxx ~]# passwd aa #交互式的为用户设置密码 或者 [rootxxx ~]# echo 123 | passwd --stdin aa #不交互式的为用户设置密码 (适用于批量的为用户更改密码,比如一次性为100个用户初始化密码)