点赞
评论
收藏
分享
举报
概念回顾:物联网 (IoT)
发表于2024-03-19 16:30

浏览 296

原文链接:概念回顾:物联网 (IoT)
转载来源:NGINX 开源社区

NGINX 唯一中文官方社区 ,尽在 nginx.org.cn



   

物联网 (the Internet of Things, IoT) 是指由物理设备(配有传感器和软件的车辆、可穿戴设备及电器等“物 [things]”)以及技术平台与协议(可支持这些“物 [things]”收集、存储并分析数据以实现任务和流程自动化)组成的众多网络。

 

物联网如何运作

物联网系统通过物联网设备或应用与云端之间实时数据收集和通信,或者物联网设备与应用本身之间互联互通来运作。

物联网系统主要由三部分组成:

    • 智能设备 — 收集和传递数据的“物”
    • 物联网应用 — 接收和存储数据的服务、软件及平台
    • 用户界面 — 数据管理和显示(如网站)


物联网平台

商用和开源物联网平台为构建和管理物联网应用提供了一系列功能和服务,有助于企业和开发人员更轻松地创建物联网系统。

这些通常基于云的平台提供各种工具和服务来构建、管理、存储并分析物联网应用数据。物联网系统的平台选项包括 Amazon Web Services (AWS)、Microsoft Azure、Google Cloud 及 IBM Watson。

 

物联网的类别和类型

物联网基于特定行业内常用的设备和应用进行划分。常见的物联网类别包括:

    • 消费物联网:用于日常消费生活,如智能家居控制中心、可定制冰箱及可穿戴健康和健身追踪器。
    • 工业物联网:用于制造及其他工业流程的自动化和优化,例如检测设备故障、加快维修、减少损坏、跟踪库存水平及监控生产线的设备和应用。
    • 商用物联网:用于改善零售、酒店和医疗行业的客户体验并优化业务运营。例如,通过扫描跟踪购买情况、在餐厅自动下单或远程医疗预约。
    • 医疗物联网:严格用于医疗环境,监测患者情况、改善护理服务并收集实时医疗设备数据。
    • 农业物联网:用于农业环境,例如用于监测牲畜移动和健康状况的传感器、可跟踪和报告土壤健康状况的设备以及向联网系统发出天气状况和温度变化警报的应用。
    • 智慧城市物联网:用于城市环境中的智能照明、交通监控和废物管理。
    • 自主式物联网:用于自动操作以前需要人工介入的机器,如自动驾驶汽车和无人机。

 

物联网为何如此重要?

物联网简化了许多过去相对繁琐的日常事务。想想您上次订购了生日礼物、周年纪念礼物或其他礼物但却无法跟踪包裹能否提前送达。现在,这些订单的处理、跟踪和配送均通过各种物联网设备和应用协调完成。

从医疗到农业用例,上述类别中还具有许多其他示例,每个示例都说明了现代世界对物联网设备的高度依赖。

 

物联网的优点

通过实时通信,物联网系统可大幅改善以下方面:

效率

物联网系统可以自动化和优化各种流程,从而减少对人工介入的需求,并提高制造业、运输业和农业等行业的效率。

节省成本

物联网系统能够通过提高能效、减少浪费并优化资源利用,帮助降低成本。

实时监控

物联网系统可对设备和环境因素进行实时监控,以便及时解决问题并防止停机。

提高安全性

物联网系统能够实时监控并检测安全隐患或安全威胁,从而提高安全性。

增强客户体验

从智能家电到可穿戴设备,物联网系统可为客户提供更加个性化的无缝体验。

数据收集和分析

物联网系统会生成大量数据,以供收集和分析并用于做出决策、确定趋势和优化流程。

 

物联网的缺点

尽管物联网系统可帮助许多行业实现改进,但同时也带来了一系列独特的挑战和风险:

生产成本

物联网系统的采购成本可能很高,一旦部署便会产生额外的费用。对于中小型公司而言,投资物联网可能不划算。

建议:请在投资前仔细评估物联网采用成本和收益,包括开发、维护和保护物联网设备的成本。

安全防护

物联网系统可能容易遭到安全攻击,导致敏感数据被盗或关键系统发生中断。

建议:使用强加密协议和身份验证机制确保物联网设备和应用安全,同时监控可疑活动。

数据隐私

物联网设备和应用将收集大量数据,其中可能包括个人和组织的敏感信息。

建议:确定提供物联网服务所需收集的最小数据量。在数据收集实践方面保持透明,并采取有效措施保护数据收集对象(个人和组织)的隐私。

互操作性

物联网设备和应用通常采用不同的技术和协议构建而成,因此很难与其他系统和设备相集成。物联网领域不断发展演进,如果没有一套普遍接受的标准和协议,设备和系统很快就会变得孤立或分散。这可能会导致兼容性问题并加大物联网系统管理和维护的难度。

建议:尽可能采用标准协议和数据格式。行业需要建立标准来提高互操作性。

复杂性

物联网系统包含许多设备和数据源,这可能导致很难快速扩展。

建议:负责物联网系统的团队必须清楚地了解支持物联网系统所需的架构和基础设施,并具有管理和维护这些系统所需的技能与资源。

 

物联网设备如何通信?

在探讨物联网设备和用例使用何种协议或技术时,连接能力必须是一个关键考虑因素。物联网设备通常使用基于云的物联网平台来提供设备管理、数据存储和分析等一系列服务。

为了与设备通信,物联网平台通常使用 API 和不同协议,例如 HTTP、消息队列遥测传输 (MQTT) 及受限应用协议 (CoAP)。其他通信方式包括:

    • Wi-Fi — 常用于所有设备都处于 Wi-Fi 接入点范围内的情境(例如,智能家居设备或医院中监控健康统计数据的患者可穿戴设备)。Wi-Fi 通常覆盖范围较广,因此非常适合高速数据传输和低延迟。
    • 蓝牙 — 作为一种日常通信方法,蓝牙适用于需要在物联网设备之间短距离共享的信息(例如,使用无线耳机在智能手机上听音乐)。
    • Zigbee — 这种低功耗无线通信协议常用于工业环境,可最大限度降低所需功耗,因此十分适合无需充电即可长时间运行的设备。Zigbee 还可以在单个网络中同时支持多台设备。
    • LoRaWAN — 一种低功耗、广域 (LPWA)、远程无线通信协议,通常用于农业、智慧城市及其他需要远程通信的情境。LoRaWAN 是基于专有无线电通信技术 LoRa 的云通信协议。
    • 蜂窝 — 由于利用基于云的系统提供较广的覆盖范围,因此是远程用例的可行选择。不过,由于牌照费用和定期维护支出,蜂窝通信的成本可能比较昂贵。

 

物联网软件开发涉及哪些方面?

物联网软件开发可能涉及多项任务,例如为物联网设备开发固件和驱动程序、设计和实施设备与后端系统之间的通信协议、构建基于云的平台以管理和分析来自物联网设备的数据,并开发移动应用或 Web 应用来与物联网平台进行交互。

负责物联网软件或设备开发的开发人员必须考虑安全和隐私问题。物联网设备通常连接到敏感系统和网络 — 往往涉及多层身份验证、受限访问及其他旨在防范网络攻击和数据泄露的严苛安全措施。

物联网开发人员所需具备的技能因行业和公司而异。例如,自动驾驶汽车公司的开发人员需要拥有使用云系统的经验,因为车辆传感器的信息共享需求。

物联网开发工作所需具备的其他技能包括:

    • 机器学习和人工智能
    • 编程语言(包括但不限于 JavaScript、Python 和 C 语言)
    • Node.js 开发
    • 云计算
    • 信息安全
    • 用户界面和用户体验设计
    • 大数据分析

 

采用物联网技术之前需要考虑的因素

希望采用物联网技术的软件开发人员首先需要确定一个用例。思考:如何利用物联网技术解决这一具体业务问题或把握这一特定业务机遇?该用例可以是从优化现有外部流程到简化内部工作流程的一切事务。确定用例后,开始制定物联网技术实施策略,以解决该问题。

接下来,评估物联网平台。请牢记已确定的用例,并根据您解决方案所需的具体特性和功能来评估平台选项。然后,测试选定平台。与任何软件开发项目一样,必须测试和迭代物联网应用,以确保其按预期运行。这可能需要进行用户测试、在物联网设备和网络上执行负载测试,以及监控应用在实际环境中的性能。

最后,进行安全检查。物联网设备和网络很容易遭到安全攻击,因此采取有效措施保护物联网应用和数据至关重要。这可能需要实施强加密协议、使用安全身份验证机制,以及实施设备管理和监控工具来检测和化解安全威胁。

 

探索 NGINX 在物联网部署中的应用

NGINX 不仅可用于在物联网设备和基于云的系统之间路由流量(帮助管理流量并确保高效安全地传输数据),而且还能够轻松集成其他工具和协议,因此是安全管理物联网流量的强大工具。

NGINX 能够以多种方式用于物联网部署,其中包括:

    • 在物联网设备和基于云的系统之间路由流量,确保高效安全地传输数据。
    • 跨多台物联网设备对流量执行负载均衡,确保无任何设备过载和均匀分配流量。
    • 充当反向代理,以防止物联网设备直接暴露到互联网上。
    • 缓存频繁访问的数据,从而缩短响应时间并减少物联网设备的负载。
    • 对物联网设备的 MQTT 流量进行加密和身份验证。

 


 

NGINX 唯一中文官方社区 ,尽在 nginx.org.cn

更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源: 开源社区官网 | 微信公众号 | B 站

已修改于2024-03-19 16:30
本作品系原创
创作不易,留下一份鼓励
NGINX官方账号

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
NGINX官方账号
这家伙很懒还未留下介绍~
245
文章
21
问答
198
粉丝
相关文章
众所周知,Nginx最常见的传统场景是Web服务器,HTTP反向代理以及负载均衡,此外,它在物联网的技术领域,也可以发挥同样可观的作用。本节我们会重点讨论使用Nginx实现物联网消息组件MQTTBroker的高可用。MQTT流量负载均衡带有健康检查的高可用实践基于MQTTClientID的会话保持0x01MQTT原理首先我们来熟悉一下MQTT协议。MQTT(MessageQueuingTelemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT协议原理1MQTT协议实现方式实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(S
点赞 1
浏览 3.2k
上一节我们介绍过了通过Nginx实现MQTT会话的负载均衡,那么如何解决每个MQTTBroker在消息分发的时候,只能收到一半信息的情况呢?此时,我们就需要借助NginxPlus的高级功能:NginxJavaScript,来定制基于ClientID的会话保持机制,将客户端与某个MQTTBroker进行会话保持,保障其信息的完整性,除非该MQTTBroker出现故障。"Round Robinloadbalancingisaneffectivemechanismfordistributingclientconnectionsacrossagroupofservers.However,thereareseveralreasonswhyitisnotidealforMQTTconnections."0x01NginxJavaScript会话保持代码mqtt.js提取MQTTClientId varclient_messages=1;2varclient_id_str="-";34
点赞 2
浏览 1.8k
为了使我们的NginxPlus具有对MQTTBroker的正常工作状况具有主动健康检查的能力,首先我们要了解MQTT的协议的连接。0x01MQTT协议第一节我们介绍过,MQTT是一种基于TCP建立的的一套协议,MQTT报文中也有类似于TCP三次握手的状态码。简单来讲,我们只需要构建一个合法的CONNECT连接,等待MQTT返回一个CONNACK的回应报文,就能确认MQTTBroker正在处于一个正常工作的状态。0x02NginxPlus构建CONNECT1matchmqtt_conn{12#SendCONNECTpacketwithclientID"nginxhealthcheck"13send\x10\x20\x00\x06\x4d\x51\x49\x73\x64\x70\x03\x02\x00\x3c\x00\x12\x6e\x67\x69\x6e\x78\x20\x68\x65\x61\x6c\x74\x68\x20\x63\x68\x65\x63\x6b;14expect\x2
点赞 1
浏览 1.5k