{"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\/pl\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","title":{"rendered":"IoT, chmura i przetwarzanie w chmurze: porozmawiajmy o technologiach?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"IoT, chmura i przetwarzanie w chmurze: porozmawiajmy o technologiach?\" src=\"\/wp-content\/uploads\/2019\/09\/89eae3426589d2ed8041fd6dd26498cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Rozw\u00f3j technologii w obszarze oprogramowania i sprz\u0119tu oraz pojawienie si\u0119 nowych protoko\u0142\u00f3w komunikacyjnych przyczyni\u0142y si\u0119 do rozszerzenia Internetu rzeczy (IoT). Liczba urz\u0105dze\u0144 ro\u015bnie z dnia na dzie\u0144, generuj\u0105c ogromne ilo\u015bci danych. W zwi\u0105zku z tym pojawia si\u0119 potrzeba wygodnej architektury systemu, zdolnej do przetwarzania, przechowywania i przesy\u0142ania tych danych.<\/p>\n<p>Obecnie do tych cel\u00f3w wykorzystywane s\u0105 us\u0142ugi chmurowe. Jednak coraz bardziej popularna paradigma oblicze\u0144 w chmurze Fog mo\u017ce uzupe\u0142nia\u0107 rozwi\u0105zania chmurowe, skaluj\u0105c i optymalizuj\u0105c infrastruktur\u0119 IoT. <\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Chmury s\u0105 w stanie zaspokoi\u0107 wi\u0119kszo\u015b\u0107 zapotrzebowania IoT. Na przyk\u0142ad zapewniaj\u0105 monitoring us\u0142ug, szybkie przetwarzanie wszelkich ilo\u015bci danych generowanych przez urz\u0105dzenia oraz ich wizualizacj\u0119. Obliczenia w chmurze Fog s\u0105 skuteczniejsze w rozwi\u0105zywaniu zada\u0144 w czasie rzeczywistym. Zapewniaj\u0105 szybki czas reakcji na zapytania oraz minimalne op\u00f3\u017anienia w przetwarzaniu danych. Oznacza to, \u017ce Fog uzupe\u0142nia chmury, rozszerzaj\u0105c ich mo\u017cliwo\u015bci.<\/p>\n<p>Jednak g\u0142\u00f3wne pytanie brzmi: jak wszystko to ma wsp\u00f3\u0142dzia\u0142a\u0107 w kontek\u015bcie IoT? Jakie protoko\u0142y komunikacyjne b\u0119d\u0105 najskuteczniejsze w dzia\u0142aj\u0105cej zintegrowanej systemie IoT-Fog-Cloud?<\/p>\n<p>Pomimo pozornego dominowania HTTP, w systemach IoT, Fog i Cloud u\u017cywane jest wiele innych rozwi\u0105za\u0144. Wyja\u015bnia to, \u017ce IoT musi \u0142\u0105czy\u0107 funkcjonalno\u015bci r\u00f3\u017cnych czujnik\u00f3w urz\u0105dze\u0144 z bezpiecze\u0144stwem, kompatybilno\u015bci\u0105 oraz innymi wymaganiami stawianymi przez u\u017cytkownik\u00f3w.<\/p>\n<p>Niemniej jednak, nie istnieje jednolite wyobra\u017cenie o wzorcowej architekturze i standardzie komunikacji. Dlatego stworzenie nowego protoko\u0142u lub dostosowanie istniej\u0105cego do konkretnych zada\u0144 IoT jest jednym z najwa\u017cniejszych zada\u0144 przed spo\u0142eczno\u015bci\u0105 IT.<\/p>\n<p>Jakie protoko\u0142y s\u0105 obecnie u\u017cywane i co mog\u0105 oferowa\u0107? Zajmijmy si\u0119 tym. Ale najpierw om\u00f3wmy zasady ekosystemu, w kt\u00f3rym wsp\u00f3\u0142dzia\u0142aj\u0105 chmury, mg\u0142a i Internet rzeczy.<\/p>\n<h3>Architektura IoT Fog-to-Cloud (F2C)<\/h3>\n<p>\nZ pewno\u015bci\u0105 zauwa\u017cyli\u015bcie, jak ogromne wysi\u0142ki s\u0105 podejmowane w celu zbadania korzy\u015bci i zysk\u00f3w zwi\u0105zanych z racjonalnym i skoordynowanym zarz\u0105dzaniem IoT, chmurami i mg\u0142\u0105. Je\u015bli nie, oto trzy inicjatywy standaryzacyjne: <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> i <noindex><a rel=\"nofollow\" href=\"http:\/\/www.mf2c-project.eu\/\">mF2C H2020 EU project<\/a><\/noindex>. <\/p>\n<p>Je\u015bli wcze\u015bniej rozwa\u017cano tylko 2 poziomy, chmur\u0119 i urz\u0105dzenia ko\u0144cowe, to proponowana architektura wprowadza nowy poziom \u2014 obliczenia mg\u0142owe. Poziom mg\u0142y mo\u017ce by\u0107 podzielony na kilka podpoziom\u00f3w, w zale\u017cno\u015bci od specyfiki zasob\u00f3w lub zestawu polityk okre\u015blaj\u0105cych u\u017cycie r\u00f3\u017cnych urz\u0105dze\u0144 w tych podpoziomach.<\/p>\n<p>Jak mo\u017ce wygl\u0105da\u0107 ta abstrakcja? Oto typowy ekosystem IoT-Mg\u0142a-Chmura. Urz\u0105dzenia IoT przesy\u0142aj\u0105 dane do bardziej wydajnych serwer\u00f3w i urz\u0105dze\u0144 obliczeniowych, aby rozwi\u0105zywa\u0107 zadania wymagaj\u0105ce niskiego poziomu op\u00f3\u017anienia. W tym samym systemie chmury odpowiadaj\u0105 za zadania wymagaj\u0105ce du\u017cej mocy obliczeniowej lub miejsca na dane.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, chmura i przetwarzanie w chmurze: porozmawiajmy o technologiach?\" src=\"\/wp-content\/uploads\/2019\/09\/c78ea915ac4743a3def5651778e77873.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSmartfony, inteligentne zegarki i inne gad\u017cety r\u00f3wnie\u017c mog\u0105 by\u0107 cz\u0119\u015bci\u0105 IoT. Jednak takie urz\u0105dzenia zazwyczaj korzystaj\u0105 z zamkni\u0119tych protoko\u0142\u00f3w komunikacyjnych od du\u017cych producent\u00f3w. Wygenerowane dane z Internetu rzeczy s\u0105 przesy\u0142ane na poziom mg\u0142y za pomoc\u0105 protoko\u0142u REST HTTP, kt\u00f3ry zapewnia elastyczno\u015b\u0107 i funkcjonaln\u0105 zgodno\u015b\u0107 przy tworzeniu us\u0142ug RESTful. Jest to istotne w \u015bwietle potrzeby zapewnienia zgodno\u015bci wstecznej z istniej\u0105c\u0105 infrastruktur\u0105 obliczeniow\u0105 dzia\u0142aj\u0105c\u0105 na lokalnych komputerach, serwerach lub w klastrze serwer\u00f3w. Lokalne zasoby, nazywane \"w\u0119z\u0142ami mg\u0142owymi\", filtruj\u0105 otrzymane dane i przetwarzaj\u0105 je lokalnie lub przesy\u0142aj\u0105 do chmury w celu dalszego przetwarzania.<\/p>\n<p>Chmury obs\u0142uguj\u0105 r\u00f3\u017cne protoko\u0142y komunikacyjne, z kt\u00f3rych najcz\u0119\u015bciej spotykane to AMQP i REST HTTP. Poniewa\u017c HTTP jest powszechnie znane i zaprojektowane do pracy w Internecie, mo\u017ce pojawi\u0107 si\u0119 pytanie: \u201eczy nie u\u017cywa\u0107 go do pracy z IoT i mg\u0142\u0105?\u201d. Jednak ten protok\u00f3\u0142 ma problemy z wydajno\u015bci\u0105. O tym p\u00f3\u017aniej.<\/p>\n<p>Og\u00f3lnie rzecz bior\u0105c, istniej\u0105 2 modele protoko\u0142\u00f3w komunikacyjnych, kt\u00f3re pasuj\u0105 do naszego systemu. S\u0105 to model \u017c\u0105danie-odpowied\u017a oraz model publikacja-subskrypcja. Pierwszy model jest szerzej znany, szczeg\u00f3lnie w architekturze klient-serwer. Klient \u017c\u0105da informacji z serwera, a ten otrzymuje zapytanie, przetwarza je i zwraca wiadomo\u015b\u0107 odpowiedzi. Protoko\u0142y REST HTTP i CoAP dzia\u0142aj\u0105 wed\u0142ug tego modelu.<\/p>\n<p>Druga model powsta\u0142a w odpowiedzi na potrzeb\u0119 zapewnienia asynchronicznego, rozproszonego, lu\u017anego powi\u0105zania mi\u0119dzy \u017ar\u00f3d\u0142ami generuj\u0105cymi dane a ich odbiorcami.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, chmura i przetwarzanie w chmurze: porozmawiajmy o technologiach?\" src=\"\/wp-content\/uploads\/2019\/09\/acf3b411fb9a0b7a61cf0188e4c29292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nModel zak\u0142ada trzech uczestnik\u00f3w: wydawc\u0119 (\u017ar\u00f3d\u0142o danych), brokera (dispatcher) oraz subskrybenta (odbiorc\u0119). Klient, pe\u0142ni\u0105cy rol\u0119 subskrybenta, nie musi pobiera\u0107 informacji z serwera. Zamiast wysy\u0142a\u0107 zapytania, subskrybuje okre\u015blone zdarzenia w systemie poprzez brokera, odpowiedzialnego za filtrowanie wszystkich przychodz\u0105cych wiadomo\u015bci i ich routowanie mi\u0119dzy wydawcami a subskrybentami. W momencie wyst\u0105pienia zdarzenia zwi\u0105zanego z okre\u015blonym tematem, wydawca publikuje je brokerowi, kt\u00f3ry przesy\u0142a dane subskrybentowi dotycz\u0105ce zam\u00f3wionego tematu.<\/p>\n<p>W istocie ta architektura jest oparta na zdarzeniach. Taki model interakcji jest interesuj\u0105cy dla aplikacji w IoT, chmurze, fog computing, ze wzgl\u0119du na swoj\u0105 zdolno\u015b\u0107 do zapewniania skalowalno\u015bci oraz upraszczania komunikacji mi\u0119dzy r\u00f3\u017cnymi urz\u0105dzeniami, wspierania dynamicznej komunikacji \u201ewiele do wielu\u201d oraz asynchronicznej komunikacji. Do najbardziej znanych znormalizowanych protoko\u0142\u00f3w wymiany wiadomo\u015bci wykorzystuj\u0105cych model \u201epublikacja-subskrypcja\u201d mo\u017cna zaliczy\u0107 MQTT, AMQP i DDS.<\/p>\n<p>Oczywi\u015bcie model \u201epublikacja-subskrypcja\u201d ma wiele zalet:<\/p>\n<ul>\n<li>Wydawcy i subskrybenci nie musz\u0105 wiedzie\u0107 o swoim istnieniu;<\/li>\n<li>Jeden subskrybent mo\u017ce otrzymywa\u0107 informacje od wielu r\u00f3\u017cnych wydawc\u00f3w, a jeden wydawca mo\u017ce wysy\u0142a\u0107 dane do wielu r\u00f3\u017cnych subskrybent\u00f3w (zasada \u201ewiele do wielu\u201d);<\/li>\n<li>Wydawca i subskrybent nie musz\u0105 by\u0107 jednocze\u015bnie aktywni do wymiany danych, poniewa\u017c broker (dzia\u0142aj\u0105cy jako system kolejek) mo\u017ce przechowywa\u0107 wiadomo\u015b\u0107 dla klient\u00f3w, kt\u00f3rzy w danym momencie nie s\u0105 pod\u0142\u0105czeni do sieci.<\/li>\n<\/ul>\n<p>\nJednak model \u201ezapytanie-odpowied\u017a\u201d ma r\u00f3wnie\u017c swoje mocne strony. W przypadkach, gdy mo\u017cliwo\u015bci strony serwerowej do obs\u0142ugi zapyta\u0144 wielu klient\u00f3w nie stanowi\u0105 problemu, sensowne jest korzystanie z ju\u017c sprawdzonych, niezawodnych rozwi\u0105za\u0144.<\/p>\n<p>Istniej\u0105 r\u00f3wnie\u017c protoko\u0142y, kt\u00f3re wspieraj\u0105 oba modele. Na przyk\u0142ad XMPP i HTTP 2.0, kt\u00f3re obs\u0142uguj\u0105 opcj\u0119 \u201eserver push\u201d. IETF wyda\u0142o tak\u017ce CoAP. W pr\u00f3bie rozwi\u0105zania problemu wymiany wiadomo\u015bci stworzono kilka innych rozwi\u0105za\u0144, takich jak protok\u00f3\u0142 WebSockets lub korzystanie z protoko\u0142u HTTP przez QUIC (Quick UDP Internet Connections).<\/p>\n<p>W przypadku WebSockets, mimo \u017ce jest u\u017cywany do przesy\u0142ania danych w czasie rzeczywistym z serwera do klienta internetowego i zapewnia sta\u0142e po\u0142\u0105czenia z jednoczesn\u0105 dwukierunkow\u0105 komunikacj\u0105, nie jest przeznaczony dla urz\u0105dze\u0144 o ograniczonych zasobach obliczeniowych. QUIC r\u00f3wnie\u017c zas\u0142uguje na uwag\u0119, poniewa\u017c nowy protok\u00f3\u0142 transportowy daje wiele nowych mo\u017cliwo\u015bci. Jednak poniewa\u017c QUIC nie zosta\u0142 jeszcze sstandaryzowany, przedwczesne jest prognozowanie jego mo\u017cliwego zastosowania i wp\u0142ywu na rozwi\u0105zania w obszarze IoT. Tak wi\u0119c WebSockets i QUIC zostawiamy w pami\u0119ci z my\u015bl\u0105 o przysz\u0142o\u015bci, ale na razie nie b\u0119dziemy ich dok\u0142adniej bada\u0107.<\/p>\n<h3>Kto jest najmilsi na \u015bwiecie: por\u00f3wnujemy protoko\u0142y<\/h3>\n<p>\nTeraz porozmawiajmy o mocnych i s\u0142abych stronach protoko\u0142\u00f3w. Z g\u00f3ry zaznaczamy, \u017ce nie ma jednego wyra\u017anego lidera. Ka\u017cdy protok\u00f3\u0142 ma swoje zalety i wady.<\/p>\n<p><b>Czas reakcji<\/b><\/p>\n<p>Jedn\u0105 z najwa\u017cniejszych cech protoko\u0142\u00f3w komunikacyjnych, szczeg\u00f3lnie w kontek\u015bcie Internetu rzeczy, jest czas reakcji. Jednak w\u015br\u00f3d istniej\u0105cych protoko\u0142\u00f3w nie ma bezwarunkowego zwyci\u0119zcy, kt\u00f3ry demonstruje minimalny poziom op\u00f3\u017anienia w r\u00f3\u017cnych warunkach. Jest za to mn\u00f3stwo bada\u0144 i por\u00f3wna\u0144 mo\u017cliwo\u015bci protoko\u0142\u00f3w.<\/p>\n<p>Na przyk\u0142ad, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/323943358_Performance_Analysis_of_Internet_of_Things_Protocols_Based_FogCloud_over_High_Traffic\">wyniki <\/a><\/noindex>Por\u00f3wnania efektywno\u015bci HTTP i MQTT w kontek\u015bcie IoT pokaza\u0142y, \u017ce czas reakcji dla zapyta\u0144 w MQTT jest kr\u00f3tszy ni\u017c w HTTP. A przy <noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/publication\/303188719_Comparison_of_two_lightweight_protocols_for_smartphone-based_sensing\">badaniach <\/a><\/noindex>czasu przyj\u0119cia i transmisji (RTT) MQTT i CoAP ustalono, \u017ce \u015bredni RTT CoAP jest o 20% mniejszy ni\u017c w przypadku MQTT.<\/p>\n<p>Inny <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7740559\">eksperyment <\/a><\/noindex>Pomiar RTT dla protoko\u0142\u00f3w MQTT i CoAP wykonano w dw\u00f3ch scenariuszach: w lokalnej sieci i w sieci IoT. Okaza\u0142o si\u0119, \u017ce \u015bredni RTT jest 2-3 razy wy\u017cszy w sieci IoT. MQTT z QoS0 wykaza\u0142 gorszy wynik w por\u00f3wnaniu do CoAP, a MQTT z QoS1 pokaza\u0142 wy\u017cszy RTT z powodu ACK na poziomie aplikacji i transportu. Dla r\u00f3\u017cnych poziom\u00f3w QoS op\u00f3\u017anienia w sieci bez przeci\u0105\u017cenia dla MQTT wynios\u0142y milisekundy, a dla CoAP \u2014 setki mikrosekund. Jednak warto pami\u0119ta\u0107, \u017ce w mniej niezawodnych sieciach MQTT, dzia\u0142aj\u0105cy na TCP, poka\u017ce zupe\u0142nie inne wyniki.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.diva-portal.org\/smash\/get\/diva2:1092136\/FULLTEXT01.pdf\">Por\u00f3wnanie <\/a><\/noindex>Analiza czasu odpowiedzi protoko\u0142\u00f3w AMQP i MQTT poprzez zwi\u0119kszenie obci\u0105\u017cenia pokaza\u0142a, \u017ce przy ma\u0142ym obci\u0105\u017ceniu poziom op\u00f3\u017anie\u0144 jest prawie taki sam. Jednak przy przesy\u0142aniu du\u017cych zbior\u00f3w danych MQTT wykazuje mniejsze czasy odpowiedzi. W innym <noindex><a rel=\"nofollow\" href=\"http:\/\/www.tfzr.rs\/esociety\/issues\/eSocietyVol3No1.pdf#page=26\">badaniu <\/a><\/noindex>CoAP por\u00f3wnano z HTTP w scenariuszu komunikacji mi\u0119dzy maszynami z urz\u0105dzeniami zainstalowanymi na pojazdach i wyposa\u017conymi w czujniki gazu, czujniki pogody, lokalizacj\u0119 (GPS) oraz interfejs sieci mobilnej (GPRS). Czas potrzebny na przes\u0142anie wiadomo\u015bci CoAP przez sie\u0107 kom\u00f3rkow\u0105 by\u0142 prawie trzykrotnie kr\u00f3tszy ni\u017c czas potrzebny do u\u017cycia wiadomo\u015bci HTTP.<\/p>\n<p>Prowadzono badania, w kt\u00f3rych por\u00f3wnywano nie dwa, a trzy protoko\u0142y. Na przyk\u0142ad, <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7496622\">por\u00f3wnanie <\/a><\/noindex>wydajno\u015bci protoko\u0142\u00f3w IoT MQTT, DDS i CoAP w scenariuszu zastosowa\u0144 medycznych z u\u017cyciem emulatora sieci. DDS przewy\u017cszy\u0142 MQTT pod wzgl\u0119dem do\u015bwiadczonego op\u00f3\u017anienia telemetrii w r\u00f3\u017cnych z\u0142ych warunkach sieciowych. CoAP oparty na UDP dobrze dzia\u0142a\u0142 dla aplikacji, kt\u00f3re wymaga\u0142y szybkiej reakcji, jednak ze wzgl\u0119du na to, \u017ce oparty jest na UDP, wyst\u0105pi\u0142a znaczna nieprzewidywalna utrata pakiet\u00f3w.<\/p>\n<p><b>Przepustowo\u015b\u0107<\/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\">Por\u00f3wnanie <\/a><\/noindex>MQTT i CoAP z punktu widzenia efektywno\u015bci wykorzystania pasma przeprowadzono jako obliczenie ca\u0142kowitej liczby danych przesy\u0142anych w jednej wiadomo\u015bci. CoAP wykaza\u0142 mniejsz\u0105 przepustowo\u015b\u0107 ni\u017c MQTT przy przesy\u0142aniu ma\u0142ych wiadomo\u015bci. Jednak w por\u00f3wnaniu z efektywno\u015bci\u0105 protoko\u0142\u00f3w z punktu widzenia stosunku liczby u\u017cytecznych bajt\u00f3w informacji do ca\u0142kowitej liczby przesy\u0142anych bajt\u00f3w, CoAP okaza\u0142 si\u0119 bardziej efektywny.<\/p>\n<p>Przy <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7496622\">analizie <\/a><\/noindex>u\u017cycia pasma MQTT, DDS (z TCP jako protoko\u0142em transportowym) i CoAP ustalono, \u017ce CoAP zazwyczaj wykazuje stosunkowo ni\u017csze zu\u017cycie pasma, kt\u00f3re nie wzrasta przy zwi\u0119kszonej utracie pakiet\u00f3w sieciowych lub wyd\u0142u\u017conym czasie oczekiwania w sieci, w przeciwie\u0144stwie do MQTT i DDS, gdzie w wymienionych scenariuszach odnotowano wzrost wykorzystania pasma. W innym scenariuszu zaanga\u017cowano du\u017c\u0105 liczb\u0119 urz\u0105dze\u0144 przesy\u0142aj\u0105cych dane jednocze\u015bnie, co jest typowym przypadkiem w \u015brodowiskach IoT. Wyniki pokaza\u0142y, \u017ce przy wy\u017cszym obci\u0105\u017ceniu lepiej u\u017cywa\u0107 CoAP.<\/p>\n<p>W przypadku niewielkiego obci\u0105\u017cenia protok\u00f3\u0142 CoAP wykorzysta\u0142 najmniejsz\u0105 przepustowo\u015b\u0107, a zaraz za nim znalaz\u0142y si\u0119 MQTT i REST HTTP. Jednak gdy rozmiar \u0142adunk\u00f3w wzrasta\u0142, najlepsze wyniki osi\u0105gn\u0105\u0142 REST HTTP.<\/p>\n<p><b>Zu\u017cycie energii<\/b><\/p>\n<p>Kwesti\u0105 zu\u017cycia energii zawsze ma ogromne znaczenie, a w systemach IoT \u2014 szczeg\u00f3lnie. Je\u015bli <noindex><a rel=\"nofollow\" href=\"https:\/\/ieeexplore.ieee.org\/document\/7899537\">por\u00f3wnujemy <\/a><\/noindex>zu\u017cycie energii w MQTT i HTTP, to HTTP zu\u017cywa znacznie wi\u0119cej. Z kolei CoAP jest bardziej <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mdpi.com\/1424-8220\/16\/12\/2044\/htm\">efektywny energetycznie <\/a><\/noindex>w por\u00f3wnaniu do MQTT, co pozwala na zarz\u0105dzanie zasilaniem. W prostych scenariuszach MQTT lepiej nadaje si\u0119 do wymiany informacji w sieciach internetu rzeczy, szczeg\u00f3lnie gdy nie ma ogranicze\u0144 dotycz\u0105cych mocy.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/cgweb1.northumbria.ac.uk\/SubjectAreaResources\/KF7046\/papers\/review\/iot\/lpb15.pdf\">Inny <\/a><\/noindex>Eksperyment, podczas kt\u00f3rego por\u00f3wnano mo\u017cliwo\u015bci AMQP i MQTT na stanowisku testowym w mobilnej lub niestabilnej sieci bezprzewodowej, wykaza\u0142, \u017ce AMQP oferuje wi\u0119ksze mo\u017cliwo\u015bci w zakresie bezpiecze\u0144stwa, podczas gdy MQTT jest bardziej efektywny energetycznie.<\/p>\n<p><b>Bezpiecze\u0144stwo<\/b><\/p>\n<p>Bezpiecze\u0144stwo to kolejna istotna kwestia omawiana przy badaniach nad tematem internetu rzeczy i obliczeniami w chmurze\/na kraw\u0119dzi. Mechanizm bezpiecze\u0144stwa zazwyczaj oparty jest na TLS w HTTP, MQTT, AMQP i XMPP, lub DTLS w CoAP, a tak\u017ce obs\u0142uguj\u0105cym obie opcje DDS.<\/p>\n<p>TLS i DTLS rozpoczynaj\u0105 si\u0119 od procesu nawi\u0105zywania po\u0142\u0105czenia pomi\u0119dzy stron\u0105 klienta a serwera w celu wymiany wspieranych zestaw\u00f3w szyfr\u00f3w i kluczy. Obie strony uzgadniaj\u0105 zestawy, aby zapewni\u0107, \u017ce dalsza komunikacja odbywa si\u0119 w bezpiecznym kanale. R\u00f3\u017cnica pomi\u0119dzy nimi polega na niewielkich modyfikacjach, kt\u00f3re pozwalaj\u0105 DTLS, opartemu na UDP, dzia\u0142a\u0107 w niestabilnym po\u0142\u0105czeniu.<\/p>\n<p>Przy <noindex><a rel=\"nofollow\" href=\"http:\/\/www.isg.rhul.ac.uk\/tls\/lucky13.html\">testowych atakach<\/a><\/noindex> na kilku r\u00f3\u017cnych implementacjach TLS i DTLS wykaza\u0142o, \u017ce TLS lepiej poradzi\u0142 sobie z zadaniem. Ataki na DTLS by\u0142y bardziej udane z powodu jego odporno\u015bci na b\u0142\u0119dy.<\/p>\n<p>Jednak najwi\u0119kszym problemem tych protoko\u0142\u00f3w jest to, \u017ce pierwotnie nie zosta\u0142y zaprojektowane do u\u017cytku w IoT i nie przewidywa\u0142y pracy w chmurze ani na kraw\u0119dzi. Poprzez uzgodnion\u0105 wymian\u0119 (handshaking) wprowadzaj\u0105 dodatkowy ruch przy ka\u017cdym nawi\u0105zywaniu po\u0142\u0105czenia, co wyczerpuje zasoby obliczeniowe. \u015arednie zwi\u0119kszenie wynosi 6,5% dla TLS i 11% dla DTLS w obci\u0105\u017ceniu pomocniczym w por\u00f3wnaniu do po\u0142\u0105czenia bez poziomu bezpiecze\u0144stwa. W bogatych w zasoby \u015brodowiskach, kt\u00f3re zazwyczaj znajduj\u0105 si\u0119 na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloud4y.ru\/cloud-hosting\/cloud-server\/?utm_source=habr&amp;utm_medium=referral&amp;utm_campaign=article\">chmurze <\/a><\/noindex>na poziomie, nie b\u0119dzie to problemem, ale w zwi\u0105zku mi\u0119dzy IoT a poziomem mg\u0142y staje si\u0119 to istotnym ograniczeniem.<\/p>\n<p>Co wybra\u0107? Nie ma jednoznacznej odpowiedzi. MQTT i HTTP wydaj\u0105 si\u0119 najbardziej perspektywicznymi protoko\u0142ami, gdy\u017c s\u0105 relatywnie bardziej dojrza\u0142ymi i stabilnymi rozwi\u0105zaniami dla IoT w por\u00f3wnaniu z innymi protoko\u0142ami.<\/p>\n<h3>Rozwi\u0105zania oparte na jednolitym protokole komunikacyjnym<\/h3>\n<p>\nPraktyka jednoprotocolowego rozwi\u0105zania ma wiele wad. Na przyk\u0142ad, protok\u00f3\u0142, kt\u00f3ry dzia\u0142a w ograniczonej przestrzeni, mo\u017ce nie funkcjonowa\u0107 w domenie, dla kt\u00f3rej obowi\u0105zuj\u0105 surowe wymagania bezpiecze\u0144stwa. Maj\u0105c to na uwadze, musimy odrzuci\u0107 prawie wszystkie mo\u017cliwe rozwi\u0105zania oparte na jednym protokole w ekosystemie Fog-to-Cloud w IoT, z wyj\u0105tkiem MQTT i REST HTTP.<\/p>\n<p><b>REST HTTP jako rozwi\u0105zanie jednoprotocolowe<\/b><\/p>\n<p>Istnieje dobry przyk\u0142ad interakcji zapyta\u0144 i odpowiedzi REST HTTP w obszarze IoT-to-Fog: <noindex><a rel=\"nofollow\" href=\"https:\/\/dl.acm.org\/citation.cfm?doid=3152130.3152140\">inteligentna farma<\/a><\/noindex>. Zwierz\u0119ta s\u0105 wyposa\u017cone w noszone czujniki (klient IoT, C) i s\u0105 zarz\u0105dzane przez obliczenia w chmurze systemu inteligentnego rolnictwa (serwer Fog, S).<\/p>\n<p>W nag\u0142\u00f3wku metody POST okre\u015blany jest zas\u00f3b do zmiany (\\\/farm\\\/animals) oraz wersja HTTP i typ zawarto\u015bci, kt\u00f3ry w tym przypadku jest obiektem JSON, reprezentuj\u0105cym farm\u0119 zwierz\u0119c\u0105, kt\u00f3r\u0105 ma zarz\u0105dza\u0107 system (Dulcynea\\\/krowa). Odpowied\u017a z serwera wskazuje, \u017ce \u017c\u0105danie zosta\u0142o zrealizowane pomy\u015blnie, wysy\u0142aj\u0105c kod stanu HTTPS 201 (zas\u00f3b utworzony). Metoda GET powinna wskazywa\u0107 jedynie \u017c\u0105dany zas\u00f3b w URI (na przyk\u0142ad \\\/farm\\\/animals\\\/1), kt\u00f3ry zwraca reprezentacj\u0119 JSON zwierz\u0119cia o tym identyfikatorze z serwera. <\/p>\n<p>Metoda PUT jest u\u017cywana, gdy trzeba zaktualizowa\u0107 konkretny wpis zasobu. W tym przypadku w zasobie okre\u015bla si\u0119 URI dla parametru, kt\u00f3ry ma zosta\u0107 zmieniony, oraz jego bie\u017c\u0105c\u0105 warto\u015b\u0107 (na przyk\u0142ad wskazuj\u0105c, \u017ce krowa w danym momencie spaceruje, \\\/farm\\\/animals\\\/1?state=chodzenie). W ko\u0144cu metoda DELETE jest u\u017cywana na r\u00f3wni z metod\u0105 GET, ale po prostu usuwa zas\u00f3b w wyniku operacji. <\/p>\n<p><b>MQTT jako rozwi\u0105zanie jednoprotocolowe<\/b><\/p>\n<p><img decoding=\"async\" alt=\"IoT, chmura i przetwarzanie w chmurze: porozmawiajmy o technologiach?\" src=\"\/wp-content\/uploads\/2019\/09\/529857b556ea5a186ac1519e2804d1b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWe will take the same smart farm, but instead of REST HTTP, we will use the MQTT protocol. A local server with the Mosquitto library installed acts as the broker. In this example, a simple computer (designated as the farm server) Raspberry Pi serves as the MQTT client, implemented through the installation of the MQTT Paho library, fully compatible with the Mosquitto broker.<\/p>\n<p>This client corresponds to the IoT abstraction level representing a device with detection and computation capabilities. The broker, on the other hand, corresponds to a higher level of abstraction, representing a fog computing node characterized by greater processing and data storage capabilities.<\/p>\n<p>In the proposed 'smart farm' scenario, Raspberry Pi connects to an accelerometer, GPS, and temperature sensors, publishing data from these sensors to a fog node. As you may know, MQTT treats topics as a hierarchy. One MQTT publisher can publish messages in a specific set of topics. In our case, there are three. For the sensor measuring temperature in the animal shed, the client selects the topic (animalfarm\/shed\/temperature). For the sensors measuring GPS location and animal movement through the accelerometer, the client publishes updates (animalfarm\/animal\/GPS) and (animalfarm\/animal\/movement).<\/p>\n<p>This information will be transmitted to the broker, which can temporarily store it in a local database in case another interested subscriber appears later.<\/p>\n<p>In addition to the local server acting as the MQTT broker in the fog, to which Raspberry Pi, acting as MQTT clients, send data from sensors, there could be another MQTT broker at the cloud level. In this case, the information sent to the local broker can be temporarily stored in a local database and\/or sent to the cloud. The fog MQTT broker in this situation is used to connect all data with the cloud MQTT broker. With this architecture, a mobile app user can be subscribed to both brokers.<\/p>\n<p>W przypadku awarii po\u0142\u0105czenia z jednym z broker\u00f3w (np. chmurowym), u\u017cytkownik ko\u0144cowy otrzyma informacje od innego brokera (fog). Jest to charakterystyczna cecha kombinowanych system\u00f3w chmury i fog computing. Domy\u015blnie aplikacja mobilna mo\u017ce by\u0107 skonfigurowana do pierwszego po\u0142\u0105czenia z brokera MQTT fog, a w przypadku niepowodzenia \u2014 do po\u0142\u0105czenia z brokerem MQTT w chmurze. To rozwi\u0105zanie jest tylko jednym z wielu w systemach IoT-F2C. <\/p>\n<h3>Rozwi\u0105zania wieloprotoko\u0142owe<\/h3>\n<p>\nRozwi\u0105zania z jednym protoko\u0142em s\u0105 popularne ze wzgl\u0119du na \u0142atwo\u015b\u0107 ich wdro\u017cenia. Jednak oczywiste jest, \u017ce w systemach IoT-F2C warto \u0142\u0105czy\u0107 r\u00f3\u017cne protoko\u0142y. Chodzi o to, \u017ce na r\u00f3\u017cnych poziomach mog\u0105 dzia\u0142a\u0107 r\u00f3\u017cne protoko\u0142y. We\u017amy na przyk\u0142ad trzy abstrakcje: poziomy IoT, fog i chmury obliczeniowej. Urz\u0105dzenia na poziomie IoT zwykle uwa\u017cane s\u0105 za ograniczone. Do tego przegl\u0105du rozwa\u017cmy poziomy IoT jako najbardziej ograniczone, chmurowe jako najmniej ograniczone, a obliczenia fog jako \u201egdzie\u015b po\u015brodku\u201d. Tak wi\u0119c mi\u0119dzy IoT a abstrakcjami fog bie\u017c\u0105ce rozwi\u0105zania protoko\u0142owe obejmuj\u0105 MQTT, CoAP i XMPP. Z drugiej strony, mi\u0119dzy fog a chmur\u0105, AMQP jest jednym z g\u0142\u00f3wnych u\u017cywanych protoko\u0142\u00f3w wraz z REST HTTP, kt\u00f3ry dzi\u0119ki swojej elastyczno\u015bci jest r\u00f3wnie\u017c u\u017cywany mi\u0119dzy IoT a warstwami fog. <\/p>\n<p>Podstawowym problemem jest tutaj funkcjonalna zgodno\u015b\u0107 protoko\u0142\u00f3w oraz prostota translacji wiadomo\u015bci z jednego protoko\u0142u na inny. W idealnym przypadku, w przysz\u0142o\u015bci architektura systemu Internetu rzeczy z zasobami chmurowymi i fog b\u0119dzie niezale\u017cna od u\u017cywanego protoko\u0142u komunikacyjnego i zapewni dobr\u0105 interakcj\u0119 r\u00f3\u017cnych protoko\u0142\u00f3w.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, chmura i przetwarzanie w chmurze: porozmawiajmy o technologiach?\" src=\"\/wp-content\/uploads\/2019\/09\/cddc564cad572966002ae22eff8cb99d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nPoniewa\u017c na chwil\u0119 obecn\u0105 tak nie jest, ma sens \u0142\u0105czenie protoko\u0142\u00f3w, kt\u00f3re nie maj\u0105 znacz\u0105cych r\u00f3\u017cnic. W tym celu jedno z potencjalnych rozwi\u0105za\u0144 opiera si\u0119 na kombinacji dw\u00f3ch protoko\u0142\u00f3w, kt\u00f3re trzymaj\u0105 si\u0119 tego samego stylu architektonicznego, REST HTTP i CoAP. Inne proponowane rozwi\u0105zanie opiera si\u0119 na po\u0142\u0105czeniu dw\u00f3ch protoko\u0142\u00f3w, kt\u00f3re oferuj\u0105 interakcj\u0119 w modelu \u201epublikacja-subskrypcja\u201d, MQTT i AMQP. U\u017cycie bliskich koncepcji (zar\u00f3wno MQTT, jak i AMQP wykorzystuj\u0105 broker\u00f3w, CoAP i HTTP u\u017cywaj\u0105 REST), upraszcza realizacj\u0119 tych kombinacji i wymaga mniejszego wysi\u0142ku w integracji.<\/p>\n<p><img decoding=\"async\" alt=\"IoT, chmura i przetwarzanie w chmurze: porozmawiajmy o technologiach?\" src=\"\/wp-content\/uploads\/2019\/09\/395bc75880a154aeab7b61d043476802.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa rysunku (a) przedstawione s\u0105 dwa modele oparte na wymianie zapyta\u0144-odpowiedzi, HTTP i CoAP, oraz ich potencjalne umiejscowienie w rozwi\u0105zaniu IoT-F2C. Poniewa\u017c HTTP jest jednym z najbardziej znanych i przystosowanych protoko\u0142\u00f3w w nowoczesnych sieciach, ma\u0142o prawdopodobne jest, \u017ce zostanie ca\u0142kowicie zast\u0105pione innymi protoko\u0142ami komunikacyjnymi. W\u015br\u00f3d w\u0119z\u0142\u00f3w, reprezentuj\u0105cych pot\u0119\u017cne urz\u0105dzenia znajduj\u0105ce si\u0119 pomi\u0119dzy chmur\u0105 a mg\u0142\u0105, REST HTTP stanowi rozs\u0105dne rozwi\u0105zanie.<\/p>\n<p>Z drugiej strony, dla urz\u0105dze\u0144 z ograniczonymi zasobami obliczeniowymi, kt\u00f3re \u0142\u0105cz\u0105 si\u0119 pomi\u0119dzy poziomami mg\u0142y a IoT, bardziej efektywne jest u\u017cycie CoAP. Jedn\u0105 z g\u0142\u00f3wnych zalet CoAP jest jego kompatybilno\u015b\u0107 z HTTP, poniewa\u017c oba protoko\u0142y opieraj\u0105 si\u0119 na zasadach REST.<\/p>\n<p>Na rysunku (b) przedstawiono dwa modele interakcji \u201epublikacja-subskrypcja\u201d w jednym scenariuszu, w tym MQTT i AMQP. Chocia\u017c hipotetycznie oba protoko\u0142y mog\u0105 by\u0107 u\u017cywane do komunikacji mi\u0119dzy w\u0119z\u0142ami na ka\u017cdym poziomie abstrakcji, ich umiejscowienie powinno by\u0107 okre\u015blone na podstawie wydajno\u015bci. MQTT zosta\u0142 opracowany jako uproszczony protok\u00f3\u0142 dla urz\u0105dze\u0144 z ograniczonymi zasobami obliczeniowymi, dlatego mo\u017cna go wykorzysta\u0107 do komunikacji mi\u0119dzy IoT a mg\u0142\u0105. AMQP jest bardziej odpowiedni dla pot\u0119\u017cniejszych urz\u0105dze\u0144, kt\u00f3re idealnie umiejscowi\u0142yby go pomi\u0119dzy w\u0119z\u0142ami mg\u0142y a chmur\u0105. Zamiast MQTT w IoT mo\u017cna u\u017cy\u0107 protoko\u0142u XMPP, poniewa\u017c uwa\u017ca si\u0119 go za lekki. Nie jest jednak tak szeroko stosowany w podobnych scenariuszach.<\/p>\n<h3>Wnioski<\/h3>\n<p>\nMa\u0142o prawdopodobne jest, \u017ceby jeden z om\u00f3wionych protoko\u0142\u00f3w wystarczy\u0142 do pokrycia ca\u0142ej komunikacji w systemie, zaczynaj\u0105c od urz\u0105dze\u0144 z ograniczonymi zasobami obliczeniowymi, a ko\u0144cz\u0105c na serwerach chmurowych. Badania wykaza\u0142y, \u017ce dwie najbardziej obiecuj\u0105ce opcje, kt\u00f3re najcz\u0119\u015bciej wykorzystuj\u0105 deweloperzy, to MQTT i RESTful HTTP. Te dwa protoko\u0142y s\u0105 nie tylko najbardziej dojrza\u0142e i stabilne, ale r\u00f3wnie\u017c zawieraj\u0105 wiele dobrze udokumentowanych i udanych wdro\u017ce\u0144 oraz zasob\u00f3w online.<\/p>\n<p>Dzi\u0119ki swojej stabilno\u015bci i \u0142atwej konfiguracji, MQTT jest protoko\u0142em, kt\u00f3ry w trakcie czasu udowodni\u0142 swoj\u0105 doskona\u0142\u0105 wydajno\u015b\u0107 przy u\u017cyciu na poziomie IoT w urz\u0105dzeniach o ograniczonych zasobach. W cz\u0119\u015bciach systemu, gdzie ograniczona \u0142\u0105czno\u015b\u0107 i zu\u017cycie energii nie stanowi\u0105 problemu, na przyk\u0142ad w niekt\u00f3rych obszarach chmurowych i w wi\u0119kszo\u015bci oblicze\u0144 w chmurze, RESTful HTTP jest prostym wyborem. Nale\u017cy r\u00f3wnie\u017c wzi\u0105\u0107 pod uwag\u0119 CoAP, poniewa\u017c szybko rozwija si\u0119 jako standard wymiany wiadomo\u015bci IoT, i jest bardzo prawdopodobne, \u017ce w najbli\u017cszej przysz\u0142o\u015bci osi\u0105gnie poziom stabilno\u015bci i dojrza\u0142o\u015bci por\u00f3wnywalny z MQTT i HTTP. Jednak standard obecnie si\u0119 rozwija, co wi\u0105\u017ce si\u0119 z kr\u00f3tkoterminowymi problemami z kompatybilno\u015bci\u0105.<\/p>\n<p><b>Co jeszcze ciekawego mo\u017cna przeczyta\u0107 na blogu <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\/\">Komputer zrobi to smacznie<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/464155\/\">AI pomaga w badaniu zwierz\u0105t Afryki <\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/465251\/\">Lato prawie si\u0119 sko\u0144czy\u0142o. Prawie nie pozosta\u0142y \u017cadne przecieki danych<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/461713\/\">4 sposoby na zaoszcz\u0119dzenie na kopiach zapasowych w chmurze<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cloud4y\/blog\/467769\/\">O jednolitym federalnym zasobie informacyjnym zawieraj\u0105cym dane o populacji.<\/a><\/noindex><\/p>\n<p>Subskrybuj nasz <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/cloud4y\">Telegram<\/a><\/noindex>-kana\u0142, aby nie przegapi\u0107 kolejnego artyku\u0142u! Piszemy nie cz\u0119\u015bciej ni\u017c dwa razy w tygodniu i tylko w wa\u017cnych sprawach.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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, chmura i ob\u0142oki: porozmawiajmy o technologiach? | ProHoster","description":"Rozw\u00f3j technologii w zakresie oprogramowania i.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/iot-tuman-i-oblaka-pogovorim-pro-tehnologii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/38375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=38375"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/38375\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/28806"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=38375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=38375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=38375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}