MQTT, wat staat voor Message Queuing Telemetry Transport, is een lichtgewicht berichtenprotocol dat is ontworpen voor apparaten met beperkte bandbreedte en netwerken met lage bandbreedte en hoge latentie. Het is met name handig voor externe verbindingen waarbij een kleine codevoetafdruk vereist is of de netwerkbandbreedte beperkt is.
MQTT 5 is de nieuwste versie van het protocol en biedt veel verbeteringen ten opzichte van zijn voorgangers. Nieuwe functies zijn onder meer redencodes, sessie-vervalintervallen, onderwerpaliassen, gebruikerseigenschappen, abonnementsopties, verzoek/antwoord-functies en gedeelde abonnementen.
We zullen deze nieuwe functies verkennen, uitleggen hoe populaire makelaars en client-SDK's MQTT 5 ondersteunen, en enkele belangrijke overwegingen bij de migratie van MQTT 3.1.1 naar MQTT 5.
Korte geschiedenis en evolutie van MQTT 5
MQTT werd eind jaren negentig voor het eerst ontwikkeld door Dr. Andy Stanford-Clark van IBM en Arlen Nipper van Arcom (nu Eurotech) om oliepijpleidingen via satellietnetwerken te monitoren. De eerste versie, MQTT v1990, is ontworpen om lichtgewicht en eenvoudig te implementeren te zijn, waardoor deze geschikt is voor veel IoT-apparaten.
MQTT 3.1.1, een OASIS-standaard, werd uitgebracht in 2014 en bevatte kleine wijzigingen in het protocol om de duidelijkheid en interoperabiliteit ervan te verbeteren. De eenvoud en efficiëntie bij het bezorgen van berichten via netwerken met beperkte middelen hebben geleid tot een wijdverbreide acceptatie ervan in IoT-toepassingen.
Naarmate de IoT-industrie evolueerde, evolueerden ook de behoeften van haar toepassingen. Dit leidde tot de ontwikkeling van MQTT 5, uitgebracht in 2019, waarin nieuwe functies werden geïntroduceerd om aan deze veranderende behoeften te voldoen. Met zijn verbeterde functies is MQTT 5 beter uitgerust om aan de complexe eisen van moderne IoT-toepassingen te voldoen.
7 nieuwe functies in MQTT v5
Redencodes: inzicht in verbroken verbindingen of storingen
In tegenstelling tot zijn voorgangers kan MQTT 5 een oorzaakcode voor elk bevestigingspakket, waardoor we beter begrijpen waarom een verbroken verbinding of storing heeft plaatsgevonden. Deze verbetering helpt bij het oplossen van problemen en zorgt voor een nauwkeurigere foutafhandeling.
Als een client er bijvoorbeeld niet in slaagt verbinding te maken met de server, retourneert de server een redencode waarin wordt uitgelegd waarom de verbinding niet is gelukt. Dit kan te wijten zijn aan een reeks problemen, van onjuiste inloggegevens tot het niet beschikbaar zijn van een server.
Vervalintervallen van sessies: de levensduur van sessies beheren
Met deze functie kan de klant specificeren hoe lang de server zijn sessie moet behouden nadat de client de verbinding heeft verbroken. In eerdere MQTT-versies eindigde een sessie onmiddellijk na het verbreken van de verbinding of ging voor onbepaalde tijd door.
Met MQTT 5 kunt u een specifieke periode definiëren gedurende welke de sessie na het verbreken van de verbinding actief moet blijven. Dit biedt meer flexibiliteit bij het beheren van de sessieduur en bespaart bronnen op de server.
MQTT 5 introduceert onderwerp aliassen om de overhead in berichtkoppen te verminderen. In eerdere versies moest de onderwerpnaam in elk bericht worden opgenomen, wat leidde tot grotere pakketgroottes.
Met onderwerpaliassen kan aan een onderwerp een korte numerieke alias worden toegewezen. Deze alias kan in volgende berichten worden gebruikt in plaats van de volledige onderwerpnaam, waardoor de grootte van de MQTT-header aanzienlijk wordt verkleind en de netwerkbandbreedte wordt bespaard.
Met deze functie kunnen gebruikers aangepaste metagegevens opnemen in de headers van MQTT-pakketten. Dit kan met name handig zijn voor toepassingen die aanvullende informatie moeten verzenden met hun MQTT-berichten, zoals de tijdstempel van het bericht, de apparaatlocatie of andere toepassingsspecifieke gegevens. Gebruikerseigenschappen bieden meer flexibiliteit en controle over MQTT-berichten.
Abonnementsopties: gedetailleerde abonnementsbeheer
Met MQTT 5 kunnen klanten specificeren hoe ze berichten willen ontvangen voor elk geabonneerd onderwerp. Klanten kunnen nu bijvoorbeeld opgeven of ze bewaarde berichten willen ontvangen voor een bepaald abonnement, of dat ze berichten willen ontvangen, zelfs als ze hetzelfde QoS-niveau (Quality of Service) hebben als het abonnement.
Verzoek/antwoord: klanten toestaan te reageren op een specifiek onderwerp
De verzoek/antwoord-functie Hiermee kan een client een onderwerp specificeren dat de server kan gebruiken om een direct antwoord te sturen.
Als een client in eerdere versies van MQTT een antwoord op een bericht wilde sturen, moest hij het antwoord op een onderwerp publiceren en moest de oorspronkelijke afzender op dat onderwerp geabonneerd zijn om het antwoord te ontvangen. Met de request/response-functie van MQTT 5 wordt de communicatie tussen clients en servers veel efficiënter en eenvoudiger.
Gedeeld abonnement: taakverdelingsfunctie voor abonnees
Met deze functie kunnen meerdere klanten een abonnement delen. Wanneer een bericht naar een gedeeld onderwerp wordt gepubliceerd, distribueert de server het bericht naar een van de clients in het gedeelde abonnement, waardoor de taakverdeling van de berichten effectief wordt verdeeld.
Deze functie is met name handig in scenario's waarin meerdere exemplaren van een service actief zijn en u de werklast gelijkmatig over hen wilt verdelen.
Huidige ondersteuning van Broker- en Client-SDK's in MQTT 5.0
Het MQTT 5.0-protocol is goed ontvangen door de IoT-gemeenschap, en talrijk MQTT-makelaars en client Software Development Kits (SDK's) hebben er ondersteuning voor toegevoegd. Grote MQTT-makelaars hebben MQTT 5.0-functies al op hun platforms geïmplementeerd, waardoor gebruikers de voordelen van het nieuwe protocol kunnen benutten.
Op het gebied van de client-SDK hebben bibliotheken zoals Paho, die een brede gebruikersbasis hebben, ondersteuning voor MQTT 5.0 toegevoegd. Dit betekent dat ontwikkelaars nu MQTT 5.0-functies kunnen gebruiken in hun IoT-toepassingen. Andere voorbeelden van client-SDK's die MQTT 5.0 ondersteunen zijn MQTT.js en MQTTnet.
Checklist voor de migratie van MQTT 3.1.1 naar MQTT 5
Als u momenteel MQTT 3.1.1 gebruikt, is het waarschijnlijk tijd om te upgraden naar MQTT 5. Hier zijn enkele van de belangrijkste dingen waarmee u rekening moet houden als u de overstap maakt.
Update MQTT-makelaars
Nadat u uw huidige infrastructuur heeft geëvalueerd en hebt besloten om door te gaan met de migratie, is de volgende stap het updaten van uw MQTT-brokers. Dit omvat het installeren van de nieuwste versie van uw MQTT-broker die MQTT 5.0 ondersteunt.
Het upgraden van uw makelaar moet met zorg gebeuren, omdat dit van invloed is op al uw MQTT-clients. Het is raadzaam om de nieuwe broker eerst in een niet-productieomgeving te testen voordat u deze in productie uitrolt. Zorg er ook voor dat de configuratie van uw makelaar indien nodig wordt bijgewerkt om de nieuwe functies te ondersteunen die zijn geïntroduceerd in MQTT 5.0.
Update clientbibliotheken
Na het bijwerken van uw MQTT-brokers is de volgende stap het bijwerken van uw MQTT-clientbibliotheken. Net als bij de Broker-update moet u deze update eerst in een niet-productieomgeving uitvoeren. Zorg er ook voor dat uw applicatiecode is bijgewerkt om de nieuwe MQTT 5.0-functies te kunnen verwerken. Houd er rekening mee dat dit enige code-refactoring met zich mee kan brengen.
Adres Beveiliging
Hoewel MQTT 5.0 verschillende verbeteringen met zich meebrengt, introduceert het ook nieuwe beveiligingsoverwegingen. Met de nieuwe functie voor gebruikerseigendommen kunnen klanten nu bijvoorbeeld aangepaste gegevens naar de makelaar sturen.
Hoewel dit een krachtige functie is, kan deze worden uitgebuit als deze niet correct wordt gebruikt. Daarom is het belangrijk om alle nieuwe functies vanuit een beveiligingsperspectief te beoordelen.
Enkele van de stappen die u kunt nemen om de beveiliging aan te pakken, zijn onder meer het gebruik van de nieuwe verbeterde authenticatiefunctie voor een sterkere beveiliging, het beperken van de gebruikerseigenschappen die clients kunnen verzenden naar alleen wat nodig is, en het voortdurend controleren op verdachte activiteiten.
Monitor na migratie
Ten slotte is het belangrijk om, nadat u naar MQTT 5.0 bent gemigreerd en de functies ervan hebt geïmplementeerd, uw systeem voortdurend te monitoren. Monitoring mag niet alleen beperkt blijven tot technische aspecten zoals het bezorgen van berichten of klantverbindingen.
U moet ook het gebruik van de nieuwe MQTT 5.0-functies in uw toepassingen controleren. Dit geeft u inzicht in hoe deze functies uw applicaties verbeteren en waar verdere verbeteringen kunnen worden aangebracht.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- Bron: https://www.iotforall.com/mqtt-5-7-new-features-and-a-migration-checklist
- : heeft
- :is
- :niet
- :waar
- 1
- 2014
- 2019
- 7
- a
- Account
- activiteiten
- toegevoegd
- Extra
- Extra informatie
- adres
- Adoptie
- raadzaam
- Na
- vooruit
- AIDS
- in leven
- Alles
- Het toestaan
- toestaat
- al
- ook
- onder
- an
- en
- elke
- Aanvraag
- toepassingen
- ZIJN
- AS
- aspecten
- schatten
- toegewezen
- authenticatie
- bandbreedte
- baseren
- BE
- wordt
- geweest
- vaardigheden
- wezen
- betekent
- Betere
- tussen
- Brengt
- breed
- makelaar
- brokers
- by
- CAN
- verzorging
- Wijzigingen
- veranderende
- helderheid
- klant
- klanten
- code
- codes
- Communicatie
- gemeenschap
- complex
- Configuratie
- Verbinden
- versterken
- aansluitingen
- Overwegen
- overwegingen
- voortgezet
- doorlopend
- onder controle te houden
- correct
- kon
- Geloofsbrieven
- Actueel
- Op dit moment
- gewoonte
- gegevens
- beslist
- bepalen
- het leveren van
- levering
- ontworpen
- ontwikkelde
- ontwikkelaars
- Ontwikkeling
- apparaat
- systemen
- DEED
- directe
- uitschakeling
- verdelen
- gedaan
- dr
- twee
- elk
- Vroeger
- En het is heel gemakkelijk
- effectief
- doeltreffendheid
- doeltreffend
- beide
- afgelopen
- verbeterde
- verbeteren
- verzekeren
- Milieu
- uitgerust
- fout
- geëvalueerd
- Zelfs
- gelijkmatig
- Alle
- Evolutie
- evolueerde
- voorbeeld
- voorbeelden
- verstrijken
- Verklaren
- uitleggen
- Exploited
- Verken
- mislukt
- Storing
- Kenmerk
- Voordelen
- Voornaam*
- Flexibiliteit
- Footprint
- Voor
- oppompen van
- voor
- vol
- functie
- verder
- Geven
- Vrijgevigheid
- Go
- meer
- HAD
- handvat
- Behandeling
- Hebben
- headers
- hier
- geschiedenis
- Hoe
- HTTPS
- IBM
- if
- per direct
- Effecten
- uitvoeren
- geïmplementeerd
- belangrijk
- verbeteren
- verbetering
- verbeteringen
- in
- omvatten
- inclusief
- -industrie
- informatie
- Infrastructuur
- eerste
- inzichten
- installeren
- instantie
- gevallen
- Interoperabiliteit
- in
- geïntroduceerd
- Introduceert
- betrekken
- gaat
- iot
- iot apparaten
- problemen
- IT
- HAAR
- jpg
- voor slechts
- gehouden
- sleutel
- groter
- Laat
- laatste
- leidend
- LED
- Niveau
- Hefboomwerking
- bibliotheken
- lichtgewicht
- als
- Beperkt
- plaats
- Log in
- gemaakt
- Hoofd
- onderhouden
- groot
- maken
- beheren
- veel
- max-width
- middel
- Bericht
- berichten
- messaging
- Metadata
- macht
- gemigreerd
- migreren
- migratie
- minder
- Modern
- monitor
- Grensverkeer
- meer
- efficiënter
- beweging
- veel
- meervoudig
- naam
- noodzakelijk
- Noodzaak
- nodig
- behoeften
- netwerk
- netwerken
- New
- Nieuwe mogelijkheden
- volgende
- nu
- Oase
- opgetreden
- of
- het aanbieden van
- Olie
- on
- EEN
- Slechts
- Opties
- or
- origineel
- Overige
- uit
- over
- pakketten
- bijzonder
- vooral
- uitvoeren
- periode
- perspectief
- plaats
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- Populair
- krachtige
- nauwkeurig
- vorig
- waarschijnlijk
- productie
- vastgoed
- eigendom
- protocol
- protocollen
- zorgen voor
- biedt
- publiceren
- gepubliceerde
- kwaliteit
- reeks
- reden
- ontvangen
- ontvangen
- verminderen
- vermindering
- uitgebracht
- vanop
- antwoord
- nodig
- Voorwaarden
- Resources
- antwoord
- behouden
- terugkeer
- Rollen
- lopend
- dezelfde
- satelliet
- scenario's
- sdk
- SDK's
- veiligheid
- sturen
- afzender
- server
- servers
- service
- Sessie
- verscheidene
- Delen
- gedeeld
- Bermuda's
- moet
- aanzienlijk
- eenvoud
- Maat
- maten
- Klein
- So
- Software
- software development
- sommige
- specifiek
- gespecificeerd
- standaard
- staat
- Stap voor
- Stappen
- eenvoudig
- sterker
- abonnement
- abonnementen
- volgend
- dergelijk
- geschikt
- ondersteuning
- Ondersteuning
- steunen
- verdacht
- system
- Nemen
- Technisch
- proef
- dat
- De
- hun
- Ze
- daarom
- Deze
- ze
- spullen
- dit
- niet de tijd of
- tijdstempel
- naar
- onderwerp
- vervoeren
- begrip
- bijwerken
- bijgewerkt
- bijwerken
- upgrade
- op
- us
- Gebruik
- .
- gebruikt
- Gebruiker
- gebruikers
- gebruik
- gebruik maken van
- versie
- willen
- gezocht
- was
- GOED
- wanneer
- of
- welke
- Waarom
- wijd verspreid
- wil
- Met
- u
- Your
- zephyrnet