{"id":38375,"date":"2019-10-31T22:23:21","date_gmt":"2019-10-31T19:23:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii\/"},"modified":"2019-10-31T22:23:21","modified_gmt":"2019-10-31T19:23:21","slug":"iot-tuman-i-oblaka-pogovorim-pro-tehnologii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","title":{"rendered":"IoT, t\u00e5ge og sky: Lad os tale om teknologier?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"IoT, t\u00e5ge og sky: Lad os tale om teknologier?\" src=\"\/wp-content\/uploads\/2019\/09\/89eae3426589d2ed8041fd6dd26498cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Udviklingen af teknologi inden for software og hardware samt fremkomsten af nye kommunikationsprotokoller har f\u00f8rt til en udvidelse af Internet of Things (IoT). Antallet af enheder stiger dag for dag, og de genererer enorme m\u00e6ngder data. Derfor opst\u00e5r behovet for en praktisk systemarkitektur, der kan behandle, opbevare og overf\u00f8re disse data.<\/p>\n<p>I \u00f8jeblikket anvendes cloud-tjenester til dette form\u00e5l. Den stadig mere popul\u00e6re paradigm af fog computing kan dog supplere cloud-l\u00f8sninger ved at skalere og optimere IoT-infrastrukturen. <\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\"Clouds\" kan d\u00e6kke de fleste IoT-anmodninger. For eksempel kan de sikre overv\u00e5gning af tjenester, hurtig behandling af alle datam\u00e6ngder genereret af enheder samt deres visualisering. Fog computing er mere effektiv i l\u00f8sningen af real-time opgaver. Den sikrer hurtig respons p\u00e5 foresp\u00f8rgsler og minimal forsinkelse i datah\u00e5ndtering. Det vil sige, at Fog supplerer \"clouds\" og udvider deres kapabiliteter.<\/p>\n<p>Det vigtigste sp\u00f8rgsm\u00e5l er dog: hvordan skal alt dette interagere i konteksten af IoT? Hvilke kommunikationsprotokoller vil v\u00e6re de mest effektive i arbejdet med et integreret IoT-Fog-Cloud system?<\/p>\n<p>P\u00e5 trods af den tilsyneladende dominans af HTTP anvendes der mange andre l\u00f8sninger i IoT-, Fog- og Cloud-systemer. Dette skyldes, at IoT skal kombinere funktionelle muligheder fra forskellige enhedssensorer med sikkerhed, kompatibilitet og andre krav fra brugerne.<\/p>\n<p>Der er dog ikke et entydigt koncept for en referencearkitektur og kommunikationsstandard. Derfor er skabelsen af en ny protokol eller tilpasningen af en eksisterende protokol til specifikke IoT-opgaver en af de vigtigste opgaver, der st\u00e5r over for IT-samfundet.<\/p>\n<p>Hvilke protokoller anvendes i dag, og hvad kan de tilbyde? Lad os finde ud af det. Men f\u00f8rst lad os diskutere principperne for \u00f8kosystemet, hvor cloud, fog og Internet of Things interagerer.<\/p>\n<h3>IoT Fog-to-Cloud (F2C) Arkitektur<\/h3>\n<p>\nDu har sikkert bem\u00e6rket, hvor store bestr\u00e6belser der g\u00f8res for at unders\u00f8ge fordelene og fordelene ved rationel og koordineret styring af IoT, clouds og fog. Hvis ikke, s\u00e5 her er tre initiativer til standardisering: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openfogconsortium.org\/\">OpenFog Consortium<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/en.ecconsortium.org\/Uploads\/file\/20180328\/1522232376480704.pdf\">Edge Computing Consortium<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"http:\/\/www.mf2c-project.eu\/\">mF2C H2020 EU projekt<\/a><\/noindex>. <\/p>\n<p>Hvis man tidligere kun har overvejet to niveauer, cloud og endepunkter, introducerer den foresl\u00e5ede arkitektur et nyt niveau - t\u00e5gecomputing. T\u00e5geniveauet kan opdeles i flere underniveauer afh\u00e6ngigt af ressourcernes specifik s\u00e5som politikker, der bestemmer brugen af forskellige enheder i disse underniveauer.<\/p>\n<p>Hvordan kan denne abstraktion se ud? Her er et typisk IoT-Fog-Cloud \u00f8kosystem. IoT-enheder sender data til mere potente servere og beregningsenheder for at l\u00f8se opgaver, der kr\u00e6ver lav latens. I dette system er skyen ansvarlig for at l\u00f8se opgaver, der kr\u00e6ver store m\u00e6ngder beregningsressourcer eller lagringsplads.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, t\u00e5ge og sky: Lad os tale om teknologier?\" src=\"\/wp-content\/uploads\/2019\/09\/c78ea915ac4743a3def5651778e77873.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSmartphones, smartwatches og andre gadgets kan ogs\u00e5 v\u00e6re en del af IoT. Men s\u00e5danne enheder bruger typisk propriet\u00e6re kommunikationsprotokoller fra store udviklere. De genererede IoT-data sendes til t\u00e5geniveauet via REST HTTP-protokollen, som sikrer fleksibilitet og funktionel kompatibilitet ved oprettelse af RESTful-tjenester. Dette er vigtigt i lyset af behovet for at sikre bagudkompatibilitet med eksisterende beregningsinfrastruktur, der fungerer p\u00e5 lokale computere, servere eller serverklynger. Lokale ressourcer, der kaldes 't\u00e5geknuder', filtrerer de modtagne data og behandler dem lokalt eller videresender dem til skyen for videre beregning.<\/p>\n<p>Skyerne underst\u00f8tter forskellige kommunikationsprotokoller, hvoraf de mest almindelige er AMQP og REST HTTP. Da HTTP er velkendt og designet til internettet, kan man stille sp\u00f8rgsm\u00e5let: \"Skal vi ikke bruge det til at arbejde med IoT og t\u00e5gen?\". Men denne protokol har pr\u00e6stationsproblemer. Mere om dette senere.<\/p>\n<p>Generelt findes der to modeller for kommunikationsprotokoller, der passer til vores system. Det er anmodning-svar og publicering-abonnement. Den f\u00f8rste model er mere velkendt, is\u00e6r i server-klient-arkitektur. Klienten anmoder om information fra serveren, som s\u00e5 modtager anmodningen, behandler den og returnerer et svar. REST HTTP og CoAP-protokollerne fungerer efter denne model.<\/p>\n<p>Den anden model opstod ud fra behovet for at sikre asynkron, distribueret, svag forbindelse mellem kilder, der genererer data, og modtagerne af disse data.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, t\u00e5ge og sky: Lad os tale om teknologier?\" src=\"\/wp-content\/uploads\/2019\/09\/acf3b411fb9a0b7a61cf0188e4c29292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nModellen involverer tre deltagere: udgiver (datakilde), m\u00e6gler (dispatcher) og abonnent (modtager). Her skal klienten, der fungerer som abonnent, ikke anmode om information fra serveren. I stedet for at sende anmodninger abonnerer han p\u00e5 bestemte begivenheder i systemet via m\u00e6gleren, som er ansvarlig for filtrering af alle indg\u00e5ende meddelelser og deres routning mellem udgivere og abonnenter. Og n\u00e5r der sker en begivenhed, der vedr\u00f8rer et bestemt emne, publicerer udgiveren det til m\u00e6gleren, som sender oplysningerne til abonnenten om det \u00f8nskede emne.<\/p>\n<p>I bund og grund er denne arkitektur baseret p\u00e5 begivenheder. Og denne interaktionsmodel er interessant for applikationer inden for IoT, cloud, fog p\u00e5 grund af dens evne til at sikre skalerbarhed og forenkle forbindelsen mellem forskellige enheder, underst\u00f8tte dynamisk 'mange-til-mange' kommunikation og asynkron kommunikation. Blandt de mest kendte standardiserede meddelelsesprotokoller, der anvender 'publish-subscribe'-modellen, er MQTT, AMQP og DDS.<\/p>\n<p>Det er \u00e5benlyst, at 'publish-subscribe'-modellen har mange fordele:<\/p>\n<ul>\n<li>Udgiverne og abonnenterne har ikke brug for at vide om hinandens eksistens;<\/li>\n<li>En abonnent kan modtage information fra mange forskellige udgivelser, mens en udgiver kan sende data til mange forskellige abonnenter (princip om 'mange-til-mange');<\/li>\n<li>Udgiver og abonnent beh\u00f8ver ikke at v\u00e6re aktive samtidig for at udveksle data, fordi m\u00e6gleren (der fungerer som et k\u00f8system) kan opbevare meddelelser til kunder, der i \u00f8jeblikket ikke er online.<\/li>\n<\/ul>\n<p>\nMen 'request-response'-modellen har ogs\u00e5 sine styrker. I de tilf\u00e6lde, hvor serverens kapaciteter til at h\u00e5ndtere anmodninger fra flere kunder ikke er et problem, giver det mening at anvende de allerede afpr\u00f8vede p\u00e5lidelige l\u00f8sninger.<\/p>\n<p>Der er ogs\u00e5 protokoller, der underst\u00f8tter begge modeller. For eksempel XMPP og HTTP 2.0, som underst\u00f8tter muligheden for \u201eserver push\u201c. IETF har ogs\u00e5 frigivet CoAP. I et fors\u00f8g p\u00e5 at l\u00f8se problemet med meddelelser er der blevet skabt flere andre l\u00f8sninger, s\u00e5som WebSockets-protokollen eller brugen af HTTP-protokollen via QUIC (Quick UDP Internet Connections).<\/p>\n<p>N\u00e5r det g\u00e6lder WebSockets, selvom de bruges til at overf\u00f8re data i realtid fra server til webklient og sikrer vedholdende forbindelser med samtidig tovejs kommunikation, er de ikke beregnet til enheder med begr\u00e6nsede beregningsressourcer. QUIC fortjener ogs\u00e5 opm\u00e6rksomhed, da den nye transportprotokol giver masser af nye muligheder. Men da QUIC endnu ikke er standardiseret, ville det v\u00e6re for tidligt at forudsige dens mulige anvendelse og indflydelse p\u00e5 IoT-l\u00f8sninger. S\u00e5 vi gemmer WebSockets og QUIC i hukommelsen med udsigt til fremtiden, men vi vil ikke unders\u00f8ge dem n\u00e6rmere for nu.<\/p>\n<h3>Hvem er s\u00f8dere p\u00e5 jorden: vi sammenligner protokoller<\/h3>\n<p>\nLad os nu tale om styrker og svagheder ved protokollerne. For at komme direkte til sagen, er der ikke \u00e9n tydelig leder. Hver protokol har sine fordele og ulemper.<\/p>\n<p><b>Reaktionstid<\/b><\/p>\n<p>En af de vigtigste egenskaber ved kommunikationsprotokoller, is\u00e6r i forhold til Internet of Things, er reaktionstiden. Men blandt de eksisterende protokoller er der ingen ubestridt vinder, der viser det minimale niveau af forsinkelse under forskellige forhold. Derimod findes der et v\u00e6ld af unders\u00f8gelser og sammenligninger af protokollernes muligheder.<\/p>\n<p>For eksempel, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/323943358_Performance_Analysis_of_Internet_of_Things_Protocols_Based_FogCloud_over_High_Traffic\">resultater <\/a><\/noindex>Sammenligninger af ydeevnen mellem HTTP og MQTT i forbindelse med IoT har vist, at reaktionstiden for anmodninger i MQTT er mindre end i HTTP. Og under <noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/303188719_Comparison_of_two_lightweight_protocols_for_smartphone-based_sensing\">unders\u00f8gelsen <\/a><\/noindex>af transmissionstid (RTT) for MQTT og CoAP viste det sig, at den gennemsnitlige RTT for CoAP er 20% mindre end for MQTT.<\/p>\n<p>Andet <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7740559\">et eksperiment <\/a><\/noindex>RTT for the MQTT and CoAP protocols was tested in two scenarios: a local network and an IoT network. It turned out that the average RTT is 2-3 times higher in the IoT network. MQTT with QoS0 showed lower results compared to CoAP, while MQTT with QoS1 demonstrated a higher RTT due to ACK at the application and transport layers. For different QoS levels, the delays in a non-congested network for MQTT were in milliseconds, while for CoAP - in hundreds of microseconds. However, it is worth remembering that in less reliable networks, MQTT, operating over TCP, will show a completely different result.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.diva-portal.org\/smash\/get\/diva2:1092136\/FULLTEXT01.pdf\">Sammenligning <\/a><\/noindex>The response times of the AMQP and MQTT protocols through increased payloads showed that under light load, the level of latency is almost the same. But when transmitting large amounts of data, MQTT demonstrates lower response times. In another <noindex><a rel=\"nofollow\" href=\"http:\/\/www.tfzr.rs\/esociety\/issues\/eSocietyVol3No1.pdf#page=26\">forskning <\/a><\/noindex>CoAP was compared with HTTP in a machine-to-machine communication scenario involving devices deployed on vehicles equipped with gas sensors, weather sensors, GPS, and mobile network interface (GPRS). The time required to transmit a CoAP message over the mobile network was almost three times shorter than the time needed for HTTP messages.<\/p>\n<p>Research was conducted comparing not two, but three protocols. For example, <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7496622\">sammenligning <\/a><\/noindex>the performance of IoT protocols MQTT, DDS, and CoAP in a medical application scenario using a network emulator. DDS outperformed MQTT in terms of the latency experienced for telemetry under various poor network conditions. CoAP based on UDP performed well for applications requiring quick responses; however, due to its UDP foundation, there was significant unpredictable packet loss.<\/p>\n<p><b>B\u00e5ndbredde<\/b><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/267636202_Performance_evaluation_of_MQTT_and_CoAP_via_a_common_middleware\">Sammenligning <\/a><\/noindex>MQTT and CoAP were evaluated in terms of bandwidth efficiency by calculating the total amount of data transmitted per message. CoAP showed lower bandwidth than MQTT when transmitting small messages. However, when comparing the protocols' efficiency in terms of the ratio of useful information bytes to the total bytes transmitted, CoAP proved to be more efficient.<\/p>\n<p>Ved <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7496622\">analysis <\/a><\/noindex>Ved brugen af b\u00e5ndbredden i MQTT, DDS (med TCP som transportprotokol) og CoAP, viste det sig, at CoAP generelt havde et relativt lavere b\u00e5ndbreddeforbrug, som ikke steg ved \u00f8get netv\u00e6rkspakke tab eller \u00f8get netv\u00e6rkslatens, i mods\u00e6tning til MQTT og DDS, hvor der blev observeret en stigning i b\u00e5ndbreddeforbruget under de n\u00e6vnte scenarier. I et andet scenarie blev et stort antal enheder taget i brug til at sende data samtidigt, hvilket er en typisk situation i IoT-milj\u00f8er. Resultaterne viste, at CoAP var bedre til h\u00f8jere belastning.<\/p>\n<p>Ved lav belastning brugte CoAP mindst b\u00e5ndbredde, efterfulgt af MQTT og REST HTTP. Dog, n\u00e5r st\u00f8rrelsen af payloads steg, viste REST HTTP de bedste resultater.<\/p>\n<p><b>Energiforbrug<\/b><\/p>\n<p>Sp\u00f8rgsm\u00e5let om energiforbrug er altid vigtigt, og det er is\u00e6r relevant i IoT-systemer. Hvis <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7899537\">man sammenligner <\/a><\/noindex>energiforbruget for MQTT og HTTP, s\u00e5 \"sluger\" HTTP betydeligt mere. CoAP er mere <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mdpi.com\/1424-8220\/16\/12\/2044\/htm\">energieffektivt <\/a><\/noindex>sammenlignet med MQTT, hvilket muligg\u00f8r bedre energistyring. I enkle scenarier er MQTT dog bedre til informationsudveksling i IoT-netv\u00e6rk, is\u00e6r n\u00e5r der ikke er strenge kapacitetsbegr\u00e6nsninger.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/cgweb1.northumbria.ac.uk\/SubjectAreaResources\/KF7046\/papers\/review\/iot\/lpb15.pdf\">Andet <\/a><\/noindex>Eksperimentet, hvor vi sammenlignede funktionerne af AMQP og MQTT p\u00e5 et testbed i et mobilt eller ustabilt tr\u00e5dl\u00f8st netv\u00e6rk, viste, at AMQP tilbyder flere muligheder med hensyn til sikkerhed, mens MQTT er mere energieffektivt.<\/p>\n<p><b>Sikkerhed<\/b><\/p>\n<p>Sikkerhed er et andet vigtigt emne, der brings op, n\u00e5r man unders\u00f8ger emnet for IoT og fog\/cloud computing. Sikkerhedsmekanismen er normalt baseret p\u00e5 TLS i HTTP, MQTT, AMQP og XMPP, eller DTLS i CoAP, samt underst\u00f8tter begge dele i DDS.<\/p>\n<p>TLS og DTLS starter med en kommunikationsetableringsproces mellem klient- og serverparten for at udveksle underst\u00f8ttede cipher suites og n\u00f8gler. Begge parter aftaler disse s\u00e6t for at sikre, at den fremtidige kommunikation foreg\u00e5r i en sikker kanal. Forskellen mellem dem ligger i sm\u00e5 modifikationer, der g\u00f8r DTLS baseret p\u00e5 UDP i stand til at fungere over usikre forbindelser.<\/p>\n<p>Ved <noindex><a rel=\"nofollow\" href=\"http:\/\/www.isg.rhul.ac.uk\/tls\/lucky13.html\">testangreb<\/a><\/noindex> Flere forskellige implementeringer af TLS og DTLS har vist, at TLS klarer opgaven bedre. Angreb p\u00e5 DTLS var mere succesfulde p\u00e5 grund af dets tolerance over for fejl.<\/p>\n<p>Men det st\u00f8rste problem med disse protokoller er, at de oprindeligt ikke var designet til brug i IoT og ikke tog h\u00f8jde for drift i t\u00e5ge eller skyen. Gennem en aftalt h\u00e5ndtryk tilf\u00f8jer de ekstra trafik ved hver forbindelse, hvilket udt\u00f8mmer beregningsressourcerne. I gennemsnit er der en stigning p\u00e5 6,5% for TLS og 11% for DTLS i overhead sammenlignet med kommunikation uden sikkerhedsniveau. I ressourcerige milj\u00f8er, der normalt er placeret p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloud4y.ru\/cloud-hosting\/cloud-server\/?utm_source=habr&amp;utm_medium=referral&amp;utm_campaign=article\">sky niveau, <\/a><\/noindex>vil dette ikke v\u00e6re et problem, men i forbindelsen mellem IoT og t\u00e5geniveauet bliver det en v\u00e6sentlig begr\u00e6nsning.<\/p>\n<p>Hvad skal man s\u00e5 v\u00e6lge? Der er ikke noget entydigt svar. MQTT og HTTP synes at v\u00e6re de mest lovende protokoller, da de anses for at v\u00e6re relativt mere modne og stabile l\u00f8sninger for IoT i forhold til andre protokoller.<\/p>\n<h3>L\u00f8sninger baseret p\u00e5 en enkelt kommunikationsprotokol<\/h3>\n<p>\nPraksis for en protokol-l\u00f8sning har mange ulemper. For eksempel kan en protokol, der opfylder et begr\u00e6nset milj\u00f8, ikke fungere i et dom\u00e6ne med strenge sikkerhedskrav. Med dette in mente skal vi forkaste n\u00e6sten alle mulige l\u00f8sninger baseret p\u00e5 \u00e9n protokol i Fog-to-Cloud-\u00f8kosystemet i IoT, undtagen MQTT og REST HTTP.<\/p>\n<p><b>REST HTTP som en protokol-l\u00f8sning<\/b><\/p>\n<p>Der er et godt eksempel p\u00e5 interaktionen mellem foresp\u00f8rgsler og svar i REST HTTP i IoT-to-Fog: <noindex><a rel=\"nofollow\" href=\"https:\/\/dl.acm.org\/citation.cfm?doid=3152130.3152140\">intelligent landbrug<\/a><\/noindex>. Dyr udstyres med b\u00e6rbare sensorer (IoT-klient, C) og styres gennem cloud computing af det intelligente landbrugssystem (Fog-server, S).<\/p>\n<p>I overskriften for POST-metoden angives ressourcen, der skal \u00e6ndres (\\\/farm\\\/animals), samt HTTP-versionen og indholdstypen, som i dette tilf\u00e6lde er et JSON-objekt, der repr\u00e6senterer landbruget, som systemet skal styre (Dulcinea\\\/ko). Serverens svar angiver, at anmodningen var succesfuld ved at sende en HTTPS-statuskode 201 (ressource oprettet). GET-metoden skal kun angive den anmodede ressource i URI'en (f.eks. \\\/farm\\\/animals\\\/1), som returnerer JSON-repr\u00e6sentationen af dyret med dette ID fra serveren. <\/p>\n<p>PUT-metoden anvendes, n\u00e5r det er n\u00f8dvendigt at opdatere en bestemt post i ressourcen. I dette tilf\u00e6lde angives URI'en for parameteren, der skal \u00e6ndres, samt den aktuelle v\u00e6rdi (for eksempel angiver det, at en ko i \u00f8jeblikket gr\u00e6sser, \/farm\/animals\/1?state=gr\u00e6sser). Endelig anvendes DELETE-metoden p\u00e5 samme m\u00e5de som GET-metoden, men den sletter blot ressourcen som et resultat af operationen. <\/p>\n<p><b>MQTT som en enkeltprotokoll\u00f8sning<\/b><\/p>\n<p><img decoding=\"async\" alt=\"IoT, t\u00e5ge og sky: Lad os tale om teknologier?\" src=\"\/wp-content\/uploads\/2019\/09\/529857b556ea5a186ac1519e2804d1b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLad os tage den samme smarte farm, men i stedet for REST HTTP bruger vi MQTT-protokollen. En lokal server med den installerede Mosquitto-bibliotek fungerer som broker. I dette eksempel fungerer en simpel computer (ben\u00e6vnt farmserveren) Raspberry Pi som en MQTT-klient, implementeret ved hj\u00e6lp af installationen af MQTT Paho-biblioteket, som er helt kompatibel med Mosquitto-brokeren.<\/p>\n<p>Denne klient svarer til et IoT-abstraktionsniveau, der repr\u00e6senterer en enhed med opdagelses- og beregningsmuligheder. Middelmanden derimod svarer til et h\u00f8jere abstraktionsniveau, der repr\u00e6senterer en beregningsknude i t\u00e5gen, kendetegnet ved st\u00f8rre kapaciteter til behandling og lagring af data.<\/p>\n<p>I det foresl\u00e5ede scenarie for 'smart farm' tilsluttes Raspberry Pi til en accelerometer, GPS og temperaturf\u00f8lere og publicerer data fra disse sensorer i t\u00e5genoden. Som du sikkert ved, betragter MQTT emner som en hierarki. En MQTT-udgiver kan publicere meddelelser i et bestemt s\u00e6t emner. I vores tilf\u00e6lde er der tre. For sensoren, der m\u00e5ler temperaturen i dyrenes skur, v\u00e6lger klienten emnet (animalfarm\/shed\/temperature). For sensorer, der m\u00e5ler GPS-positionen og dyrenes bev\u00e6gelse via accelerometeret, publicerer klienten opdateringer (animalfarm\/animal\/GPS) og (animalfarm\/animal\/movement).<\/p>\n<p>Disse oplysninger vil blive sendt til brokeren, som midlertidigt kan gemme dem i en lokal database, hvis der senere opst\u00e5r en anden interesseret abonnent.<\/p>\n<p>Udover en lokal server, der fungerer som en MQTT-broker i t\u00e5gen, og som Raspberry Pi, der fungerer som MQTT-klienter, sender data fra sensorer til, kan der ogs\u00e5 v\u00e6re en anden MQTT-broker p\u00e5 cloud-niveau. I dette tilf\u00e6lde kan oplysningerne, der sendes til den lokale broker, midlertidigt gemmes i en lokal database og\/eller sendes til skyen. Den t\u00e5geh\u00e5ndterede MQTT-broker bruges i denne situation til at binde alle data til den cloud-baserede MQTT-broker. I en s\u00e5dan arkitektur kan brugeren af mobilapplikationen abonnere p\u00e5 begge brokere.<\/p>\n<p>I tilf\u00e6lde af forbindelsesfejl med en af brokerne (for eksempel cloud-broker), vil slutbrugeren modtage oplysninger fra den anden (t\u00e5gebroker). Dette er et karakteristisk tr\u00e6k ved kombinerede systemer med t\u00e5ge og cloud computing. Som standard kan mobilapplikationen konfigureres til f\u00f8rst at oprette forbindelse til den t\u00e5geh\u00e5ndterede MQTT-broker, og i tilf\u00e6lde af fejl til at oprette forbindelse til MQTT-brokeren i skyen. Denne l\u00f8sning er blot en af mange i IoT-F2C-systemer. <\/p>\n<h3>Multiprotokol-l\u00f8sninger<\/h3>\n<p>\nL\u00f8sninger med \u00e9n protokol er popul\u00e6re, fordi de er lettere at implementere. Men det er indlysende, at det i IoT-F2C-systemer giver mening at kombinere forskellige protokoller. Ideen er, at forskellige protokoller kan fungere p\u00e5 forskellige niveauer. Lad os tage tre abstraktioner: IoT-niveauet, t\u00e5geniveauet og cloud computing-niveauet. Enheder p\u00e5 IoT-niveauet betragtes normalt som begr\u00e6nsede. For denne gennemgang lad os betragte IoT-niveauet som mest begr\u00e6nset, cloud-niveauet som mindst begr\u00e6nset og t\u00e5geberegning som 'et sted imellem'. Det viser sig, at de aktuelle protokoll\u00f8sninger mellem IoT og t\u00e5geabstraktionerne inkluderer MQTT, CoAP og XMPP. Mellem t\u00e5gen og cloud-enheden er AMQP en af de prim\u00e6re anvendte protokoller sammen med REST HTTP, der takket v\u00e6re sin fleksibilitet ogs\u00e5 bruges mellem IoT og t\u00e5gelagene. <\/p>\n<p>Det prim\u00e6re problem her er den funktionelle kompatibilitet af protokoller og enkelheden ved at overs\u00e6tte beskeder fra \u00e9n protokol til en anden. Ideelt set b\u00f8r fremtidens arkitektur for Internet of Things med cloud- og t\u00e5geressourcer v\u00e6re uafh\u00e6ngig af den anvendte kommunikationsprotokol og sikre god interaktion mellem forskellige protokoller.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, t\u00e5ge og sky: Lad os tale om teknologier?\" src=\"\/wp-content\/uploads\/2019\/09\/cddc564cad572966002ae22eff8cb99d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nDa der er betydelige ligheder mellem de to protokoller, giver det mening at kombinere dem, uden at de adskiller sig v\u00e6sentligt. I denne forbindelse er en potentielt l\u00f8sning baseret p\u00e5 en kombination af to protokoller, der f\u00f8lger den samme arkitekturstil, REST HTTP og CoAP. En anden foresl\u00e5et l\u00f8sning er baseret p\u00e5 en kombination af to protokoller, der tilbyder interaktion efter \"publish-subscribe\" modellen, MQTT og AMQP. Brugen af n\u00e6rliggende koncepter (b\u00e5de MQTT og AMQP anvender m\u00e6glere, mens CoAP og HTTP anvender REST) forenkler implementeringen af disse kombinationer og kr\u00e6ver mindre integrationsindsats.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, t\u00e5ge og sky: Lad os tale om teknologier?\" src=\"\/wp-content\/uploads\/2019\/09\/395bc75880a154aeab7b61d043476802.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFigur (a) viser to anmodnings-svar modeller, HTTP og CoAP, og deres potentielle placering i IoT-F2C l\u00f8sningen. Da HTTP er et af de mest kendte og tilpassede protokoller i moderne netv\u00e6rk, er det usandsynligt, at det bliver helt erstattet af andre beskedprotokoller. Blandt noder, der repr\u00e6senterer kraftfulde enheder, der befinder sig mellem skyen og t\u00e5gen, er REST HTTP en fornuftig l\u00f8sning.<\/p>\n<p>P\u00e5 den anden side, for enheder med begr\u00e6nsede beregningsressourcer, der forbinder mellem t\u00e5geniveauerne og IoT, er det mere effektivt at anvende CoAP. En af de store fordele ved CoAP er faktisk dens kompatibilitet med HTTP, da begge protokoller er baseret p\u00e5 REST-principperne.<\/p>\n<p>Figur (b) viser to \"publish-subscribe\" interaktionsmodeller i et scenario, herunder MQTT og AMQP. Selvom begge protokoller hypotetisk kan bruges til kommunikation mellem noder p\u00e5 hvert abstractionsniveau, b\u00f8r deres placering bestemmes baseret p\u00e5 ydeevnen. MQTT blev designet som en forenklet protokol til enheder med begr\u00e6nsede beregningsressourcer, og kan derfor anvendes til kommunikation mellem IoT og t\u00e5gen. AMQP er mere velegnet til kraftigere enheder, som ideelt set ville placere den mellem t\u00e5gen og skyens noder. I stedet for MQTT kan XMPP-protokollen anvendes i IoT, da den betragtes som letv\u00e6gts. Men den anvendes ikke s\u00e5 bredt i s\u00e5danne scenarier.<\/p>\n<h3>Konklusioner<\/h3>\n<p>\nDet er usandsynligt, at \u00e9n af de betragtede protokoller vil v\u00e6re tilstr\u00e6kkelig til at d\u00e6kke al kommunikationen i systemet, fra enheder med begr\u00e6nsede computerressourcer til cloud-servere. Unders\u00f8gelser har vist, at de to mest lovende muligheder, som udviklere oftest bruger, er MQTT og RESTful HTTP. Disse to protokoller er ikke kun de mest modne og stabile, men inkluderer ogs\u00e5 mange veldokumenterede og succesfulde implementeringer samt online ressourcer.<\/p>\n<p>Takket v\u00e6re sin stabilitet og enkle konfiguration er MQTT en protokol, der med tiden har bevist sin fremragende ydeevne ved brug p\u00e5 IoT-niveau med begr\u00e6nsede enheder. I systemomr\u00e5der, hvor begr\u00e6nset forbindelse og batteriforbrug ikke er et problem, som i nogle fog-l\u00f8sninger og de fleste cloud computing-scenarier, er RESTful HTTP et simpelt valg. CoAP b\u00f8r ogs\u00e5 overvejes, da det hurtigt udvikler sig som standard for IoT-kommunikation, og det er meget sandsynligt, at det i den n\u00e6rmeste fremtid vil n\u00e5 et niveau af stabilitet og modenhed, der ligner MQTT og HTTP. Men standarden er i \u00f8jeblikket under udvikling, hvilket medf\u00f8rer kortsigtede kompatibilitetsproblemer.<\/p>\n<p><b>Hvad mere nyttigt kan man l\u00e6se i bloggen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloud4y.ru\/?utm_source=habr&amp;utm_medium=referral&amp;utm_campaign=article\">Cloud4Y<\/a><\/noindex><\/b><\/p>\n<p>\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/466755\/\">Computeren vil lave mad til dig<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/464155\/\">AI hj\u00e6lper med at studere dyrene i Afrika <\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/465251\/\">Sommeren er n\u00e6sten slut. N\u00e6sten ingen l\u00e6kkede data er tilbage<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/461713\/\">4 m\u00e5der at spare penge p\u00e5 cloud-backups<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/467769\/\">Om en samlet federal informationsressource, der indeholder oplysninger om befolkningen<\/a><\/noindex><\/p>\n<p>Tilmeld dig vores <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/cloud4y\">Telegram<\/a><\/noindex>-kanalen for ikke at misse den n\u00e6ste artikel! Vi skriver h\u00f8jst to gange om ugen og kun om relevante emner.<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/467711\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438 \u0436\u0435\u043b\u0435\u0437\u0430, \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441\u0432\u044f\u0437\u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0432\u0435\u0449\u0435\u0439 (IoT). \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0440\u0430\u0441\u0442\u0451\u0442 \u0434\u0435\u043d\u044c \u043e\u0442\u043e \u0434\u043d\u044f, \u0438 \u043e\u043d\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0449\u0430\u044f\u0441\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28806,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38375","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47IoT, \u0442\u0443\u043c\u0430\u043d \u0438 \u043e\u0431\u043b\u0430\u043a\u0430: \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:23:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:23:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47IoT, fog og cloud: lad os tale om teknologier? | ProHoster","description":"Udviklingen af teknologi inden for software og.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47IoT, \u0442\u0443\u043c\u0430\u043d \u0438 \u043e\u0431\u043b\u0430\u043a\u0430: \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438? | ProHoster","og:description":"\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u043e\u0444\u0442\u0430 \u0438.","og:url":"https:\/\/prohoster.info\/da\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:23:21+00:00","article:modified_time":"2019-10-31T19:23:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38375","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 21:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:10:24","updated":"2026-01-23 21:45:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/38375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=38375"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/38375\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/28806"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=38375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=38375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=38375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}