ãœãããŠã§ã¢ããã³ããŒããŠã§ã¢ã®åéã«ããããã¯ãããžãŒã®çºå±ãæ°ããéä¿¡ãããã³ã«ã®åºçŸã«ãããã¢ãã®ã€ã³ã¿ãŒããã (IoT) ãæ¡å€§ããŸããã ããã€ã¹ã®æ°ã¯æ¥ã
å¢å ããŠãããèšå€§ãªéã®ããŒã¿ãçæãããŠããŸãã ãããã£ãŠããã®ããŒã¿ãåŠçãä¿åãéä¿¡ã§ãã䟿å©ãªã·ã¹ãã ã¢ãŒããã¯ãã£ãå¿
èŠã§ãã
çŸåšããããã®ç®çã«ã¯ã¯ã©ãŠã ãµãŒãã¹ã䜿çšãããŠããŸãã ãã ãã人æ°ãé«ãŸã£ãŠãããã©ã° ã³ã³ãã¥ãŒãã£ã³ã° ãã©ãã€ã (Fog) ã¯ãIoT ã€ã³ãã©ã¹ãã©ã¯ãã£ã®æ¡åŒµãšæé©åã«ãã£ãŠã¯ã©ãŠã ãœãªã¥ãŒã·ã§ã³ãè£å®ã§ããŸãã
ã¯ã©ãŠãã¯ã»ãšãã©ã® IoT ãªã¯ãšã¹ããã«ããŒã§ããŸãã ããšãã°ããµãŒãã¹ã®ç£èŠãããã€ã¹ã«ãã£ãŠçæãããããããéã®ããŒã¿ã®é«éåŠçãããã³ãã®èŠèŠåãæäŸããŸãã ãã©ã° ã³ã³ãã¥ãŒãã£ã³ã°ã¯ããªã¢ã«ã¿ã€ã ã®åé¡ã解決ããå Žåã«ããå¹æçã§ãã ãªã¯ãšã¹ãã«å¯Ÿããè¿ éãªå¿çãšãããŒã¿åŠçã®é 延ãæå°éã«æããŸãã ã€ãŸããFog ã¯ãé²ããè£å®ãããã®æ©èœãæ¡åŒµããŸãã
ããããäž»ãªè³ªåã¯ç°ãªããŸããIoT ã®ã³ã³ããã¹ãã§ããããã¹ãŠãã©ã®ããã«çžäºäœçšããã¹ãã§ãããã? IoTããã©ã°ãã¯ã©ãŠããçµã¿åãããã·ã¹ãã ã§åäœããå Žåãã©ã®éä¿¡ãããã³ã«ãæãå¹æçã§ãã?
HTTP ãæããã«åªå¢ã§ããã«ãããããããIoTããã©ã°ãã¯ã©ãŠã ã·ã¹ãã ã§ã¯ä»ã«ãå€æ°ã®ãœãªã¥ãŒã·ã§ã³ã䜿çšãããŠããŸãã ããã¯ãIoT ã§ã¯ãããŸããŸãªããã€ã¹ ã»ã³ãµãŒã®æ©èœãšãã»ãã¥ãªãã£ãäºææ§ããã®ä»ã®ãŠãŒã¶ãŒã®èŠä»¶ãçµã¿åãããå¿ èŠãããããã§ãã
ãããããªãã¡ã¬ã³ã¹ ã¢ãŒããã¯ãã£ãšéä¿¡èŠæ Œã«ã€ããŠã¯ãåäžã®ã¢ã€ãã¢ãååšããŸããã ãããã£ãŠãç¹å®ã® IoT ã¿ã¹ã¯çšã«æ°ãããããã³ã«ãäœæããããæ¢åã®ãããã³ã«ãå€æŽãããããããšã¯ãIT ã³ãã¥ããã£ãçŽé¢ããŠããæãéèŠãªã¿ã¹ã¯ã® XNUMX ã€ã§ãã
çŸåšã©ã®ãããªãããã³ã«ã䜿çšãããŠããããããã¯äœãæäŸã§ããã®ã§ãããã? ãããç解ããŸãããã ãã®åã«ãé²ãé§ãã¢ãã®ã€ã³ã¿ãŒããããçžäºäœçšãããšã³ã·ã¹ãã ã®åçã«ã€ããŠèª¬æããŸãããã
IoT ãã©ã°ããŒã¯ã©ãŠã (F2C) ã¢ãŒããã¯ãã£
ãããããIoTãã¯ã©ãŠãããã©ã°ã®ã¹ããŒãã§èª¿æŽããã管çã«é¢é£ããå©ç¹ãšã¡ãªãããæ¢æ±ããããšã«ãã©ãã»ã©ã®åŽåãè²»ããããŠãããã«æ°ã¥ããŠããã§ãããã ããã§ãªãå Žåã¯ã次㮠XNUMX ã€ã®æšæºåãžã®åãçµã¿ã玹ä»ããŸãã
以åã¯ã¯ã©ãŠããšãšã³ãããã€ã¹ã® 2 ã€ã®ã¬ãã«ã®ã¿ãèæ ®ãããŠããå Žåãææ¡ãããã¢ãŒããã¯ãã£ã§ã¯æ°ããã¬ãã«ã§ãããã©ã° ã³ã³ãã¥ãŒãã£ã³ã°ãå°å ¥ãããŸãã ãã®å Žåããã©ã° ã¬ãã«ã¯ããªãœãŒã¹ã®è©³çŽ°ãããããã®ãµãã¬ãã«ã§ã®ããŸããŸãªããã€ã¹ã®äœ¿çšã決å®ããäžé£ã®ããªã·ãŒã«å¿ããŠãããã€ãã®ãµãã¬ãã«ã«åå²ã§ããŸãã
ãã®æœè±¡åã¯ã©ã®ãããªãã®ã«ãªãã§ãããã? ããã¯å žåç㪠IoT-Fog-Cloud ãšã³ã·ã¹ãã ã§ãã IoT ããã€ã¹ã¯ãäœé 延ãå¿ èŠãªåé¡ã解決ããããã«ãããé«éãªãµãŒããŒãã³ã³ãã¥ãŒãã£ã³ã° ããã€ã¹ã«ããŒã¿ãéä¿¡ããŸãã åãã·ã¹ãã å ã§ãã¯ã©ãŠãã¯å€§éã®ã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãããŒã¿ ã¹ãã¬ãŒãž ã¹ããŒã¹ãå¿ èŠãšããåé¡ã解決ãã責任ãè² ããŸãã
ã¹ããŒããã©ã³ãã¹ããŒããŠã©ããããã®ä»ã®ã¬ãžã§ããã IoT ã®äžéšãšãªãå¯èœæ§ããããŸãã ãããããã®ãããªããã€ã¹ã¯ãååãšããŠã倧èŠæš¡ãªéçºè
ãæäŸããç¬èªã®éä¿¡ãããã³ã«ã䜿çšããŸãã çæããã IoT ããŒã¿ã¯ãREST HTTP ãããã³ã«ãä»ããŠãã©ã° ã¬ã€ã€ãŒã«è»¢éãããRESTful ãµãŒãã¹ãäœæããéã®æè»æ§ãšçžäºéçšæ§ãå®çŸããŸãã ããã¯ãããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒããµãŒããŒããŸãã¯ãµãŒã㌠ã¯ã©ã¹ã¿ãŒã§å®è¡ãããŠããæ¢åã®ã³ã³ãã¥ãŒãã£ã³ã° ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã®äžäœäºææ§ã確ä¿ããå¿
èŠæ§ãèæ
®ãããšéèŠã§ãã ããã©ã° ããŒãããšåŒã°ããããŒã«ã« ãªãœãŒã¹ã¯ãåä¿¡ããããŒã¿ããã£ã«ã¿ãªã³ã°ããŠããŒã«ã«ã§åŠçãããããããªãèšç®ã®ããã«ã¯ã©ãŠãã«éä¿¡ããŸãã
ã¯ã©ãŠãã¯ããŸããŸãªéä¿¡ãããã³ã«ããµããŒãããŠããŸãããæãäžè¬çãªã®ã¯ AMQP ãš REST HTTP ã§ãã HTTP ã¯ããç¥ãããŠãããã€ã³ã¿ãŒãããåãã«èª¿æŽãããŠããããããIoT ããã©ã°ãšé£æºããããã« HTTP ã䜿çšãã¹ãã§ã¯ãªãã§ãããã?ããšããçåãçãããããããŸããã ãã ãããã®ãããã³ã«ã«ã¯ããã©ãŒãã³ã¹ã®åé¡ããããŸãã ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
äžè¬ã«ãå¿ èŠãªã·ã¹ãã ã«é©ããéä¿¡ãããã³ã«ã® 2 ã€ã®ã¢ãã«ããããŸãã ãããã¯ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ãšãããªãã·ã¥/ãµãã¹ã¯ã©ã€ãã§ãã æåã®ã¢ãã«ã¯ãç¹ã«ãµãŒããŒã¯ã©ã€ã¢ã³ã ã¢ãŒããã¯ãã£ã«ãããŠãããåºãç¥ãããŠããŸãã ã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«æ å ±ãèŠæ±ãããµãŒããŒã¯ãã®èŠæ±ãåä¿¡ããŠââåŠçããå¿çã¡ãã»ãŒãžãè¿ããŸãã REST HTTP ããã³ CoAP ãããã³ã«ã¯ãã®ã¢ãã«ã§åäœããŸãã
XNUMX çªç®ã®ã¢ãã«ã¯ãããŒã¿ãçæãããœãŒã¹ãšãã®ããŒã¿ã®åä¿¡è ã®éã«éåæãåæ£åã®ççµåãæäŸããå¿ èŠæ§ããçãŸããŸããã
ãã®ã¢ãã«ã¯ããããªãã·ã£ãŒ (ããŒã¿ ãœãŒã¹)ããããŒã«ãŒ (ãã£ã¹ãããã£ãŒ)ãããã³ãµãã¹ã¯ã©ã€ã㌠(åä¿¡è
) ã® XNUMX 人ã®åå è
ãæ³å®ããŠããŸãã ããã§ããµãã¹ã¯ã©ã€ããšããŠæ©èœããã¯ã©ã€ã¢ã³ãã¯ããµãŒããŒã«æ
å ±ãèŠæ±ããå¿
èŠã¯ãããŸããã ãªã¯ãšã¹ããéä¿¡ãã代ããã«ããããŒã«ãŒãéããŠã·ã¹ãã å
ã®ç¹å®ã®ã€ãã³ãããµãã¹ã¯ã©ã€ãããŸãããããŒã«ãŒã¯ããã¹ãŠã®åä¿¡ã¡ãã»ãŒãžããã£ã«ã¿ãªã³ã°ãããããªãã·ã£ãŒãšãµãã¹ã¯ã©ã€ããŒéã§ã¡ãã»ãŒãžãã«ãŒãã£ã³ã°ãã圹å²ãæãããŸãã ãããŠããããªãã·ã£ãŒã¯ãç¹å®ã®ãããã¯ã«é¢ããŠã€ãã³ããçºçãããšãããããããŒã«ãŒã«ãããªãã·ã¥ãããããŒã«ãŒã¯ãèŠæ±ããããããã¯ã«é¢ããããŒã¿ããµãã¹ã¯ã©ã€ããŒã«éä¿¡ããŸãã
åºæ¬çã«ããã®ã¢ãŒããã¯ãã£ã¯ã€ãã³ãããŒã¹ã§ãã ãããŠããã®å¯Ÿè©±ã¢ãã«ã¯ãã¹ã±ãŒã©ããªãã£ãæäŸããããŸããŸãªããã€ã¹éã®çžäºæ¥ç¶ãç°¡çŽ åããåçãªå€å¯Ÿå€éä¿¡ãšéåæéä¿¡ããµããŒãããæ©èœããããããIoTãã¯ã©ãŠãããã©ã°ã®ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠèå³æ·±ããã®ã§ãã ãããªãã·ã¥/ãµãã¹ã¯ã©ã€ã ã¢ãã«ã䜿çšããæãããç¥ãããæšæºåãããã¡ãã»ãŒãžã³ã° ãããã³ã«ã«ã¯ãMQTTãAMQPãDDS ãªã©ããããŸãã
æããã«ããããªãã·ã¥/ãµãã¹ã¯ã©ã€ã ã¢ãã«ã«ã¯å€ãã®å©ç¹ããããŸãã
- ãããªãã·ã£ãŒãšãµãã¹ã¯ã©ã€ããŒã¯ããäºãã®ååšã«ã€ããŠç¥ãå¿ èŠã¯ãããŸããã
- XNUMX 人ã®ãµãã¹ã¯ã©ã€ããŒã¯å€ãã®ç°ãªãåºçç©ããæ å ±ãåä¿¡ã§ããXNUMX ã€ã®ãããªãã·ã£ãŒã¯å€ãã®ç°ãªããµãã¹ã¯ã©ã€ããŒã«ããŒã¿ãéä¿¡ã§ããŸã (å€å¯Ÿå€ã®åå)ã
- ãããªãã·ã£ãŒãšãµãã¹ã¯ã©ã€ããŒã¯ãéä¿¡ããããã«åæã«ã¢ã¯ãã£ãã§ããå¿ èŠã¯ãããŸãããããã¯ããããŒã«ãŒ (ãã¥ãŒ ã·ã¹ãã ãšããŠæ©èœ) ããçŸåšãããã¯ãŒã¯ã«æ¥ç¶ããŠããªãã¯ã©ã€ã¢ã³ããžã®ã¡ãã»ãŒãžãä¿åã§ããããã§ãã
ãã ãããªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ ã¢ãã«ã«ãå©ç¹ããããŸãã è€æ°ã®ã¯ã©ã€ã¢ã³ãèŠæ±ãåŠçãããµãŒããŒåŽã®èœåãåé¡ã«ãªããªãå Žåã¯ãå®çžŸã®ããä¿¡é Œæ§ã®é«ããœãªã¥ãŒã·ã§ã³ã䜿çšããããšãåççã§ãã
äž¡æ¹ã®ã¢ãã«ããµããŒããããããã³ã«ããããŸãã ããšãã°ãããµãŒã㌠ããã·ã¥ããªãã·ã§ã³ããµããŒããã XMPP ãš HTTP 2.0 ã§ãã IETF 㯠CoAP ããªãªãŒã¹ããŸããã ã¡ãã»ãŒãžã³ã°ã®åé¡ã解決ããããã«ãWebSocket ãããã³ã«ã QUIC (Quick UDP Internet Connections) ã§ã® HTTP ãããã³ã«ã®äœ¿çšãªã©ãä»ã®ããã€ãã®è§£æ±ºçãäœæãããŠããŸãã
WebSocket ã®å ŽåããµãŒããŒãã Web ã¯ã©ã€ã¢ã³ãã«ãªã¢ã«ã¿ã€ã ã§ããŒã¿ã転éããåæåæ¹åéä¿¡ã«ããæ°žç¶çãªæ¥ç¶ãæäŸããããã«äœ¿çšãããŸãããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãéãããããã€ã¹åãã§ã¯ãããŸããã æ°ãããã©ã³ã¹ããŒã ãããã³ã«ã¯å€ãã®æ°ããæ©äŒãæäŸãããããQUIC ã泚ç®ã«å€ããŸãã ããããQUIC ã¯ãŸã æšæºåãããŠããªãããããã®å¿çšã®å¯èœæ§ã IoT ãœãªã¥ãŒã·ã§ã³ãžã®åœ±é¿ãäºæž¬ããã®ã¯ææå°æ©ã§ãã ãã®ãããå°æ¥ãèŠæ®ã㊠WebSocket ãš QUIC ã念é ã«çœ®ããŠããŸãããä»ã¯ãã以äžè©³ããã¯æ€èšããŸããã
äžçã§äžçªããããã®ã¯èª°ã§ãã: ãããã³ã«ã®æ¯èŒ
次ã«ããããã³ã«ã®é·æãšçæã«ã€ããŠè©±ããŸãããã ä»åŸãèŠæ®ããŠãæ確ãªãªãŒããŒã¯ããªããšããããšãçŽã¡ã«çä¿ããŠãããŸãã åãããã³ã«ã«ã¯ããã€ãã®å©ç¹ãšæ¬ ç¹ããããŸãã
å¿çæé
éä¿¡ãããã³ã«ã®æãéèŠãªç¹æ§ã® XNUMX ã€ã¯ãç¹ã«ã¢ãã®ã€ã³ã¿ãŒãããã«é¢é£ããå Žåãå¿çæéã§ãã ããããæ¢åã®ãããã³ã«ã®äžã§ãããŸããŸãªæ¡ä»¶äžã§åäœããéã«æå°ã¬ãã«ã®é 延ã瀺ãæ確ãªåè ã¯ååšããŸããã ãããããããã³ã«ã®æ©èœã«ã€ããŠã¯èšå€§ãªèª¿æ»ãšæ¯èŒãè¡ãããŠããŸãã
ããšãã°ã
ÐÑÑгПй
XNUMX ã€ã§ã¯ãªã XNUMX ã€ã®ãããã³ã«ãæ¯èŒããç 究ãå®æœãããŸããã äŸãã°ã
ã¹ã«ãŒããã
ã«
è² è·ã軜ãå ŽåãCoAP ã®äœ¿çšåž¯åå¹ ãæãå°ãªãã次㫠MQTT ãš REST HTTP ãç¶ããŸãã ãã ãããã€ããŒãã®ãµã€ãºãå¢å ããå ŽåãREST HTTP ãæè¯ã®çµæããããããŸããã
æ¶è²»é»å
ãšãã«ã®ãŒæ¶è²»ã®åé¡ã¯åžžã«éåžžã«éèŠã§ãããç¹ã« IoT ã·ã¹ãã ã§ã¯éèŠã§ãã ãã
ã»ãã¥ãªãã£
ã»ãã¥ãªãã£ã¯ãã¢ãã®ã€ã³ã¿ãŒããããšãã©ã°/ã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ã®ãããã¯ãç 究ããéã«æèµ·ããããã XNUMX ã€ã®éèŠãªåé¡ã§ãã ã»ãã¥ãªã㣠ã¡ã«ããºã ã¯éåžžãHTTPãMQTTãAMQPãXMPP ã® TLSããŸã㯠CoAP ã® DTLS ã«åºã¥ããŠãããäž¡æ¹ã® DDS ããªã¢ã³ãããµããŒãããŸãã
TLS ãš DTLS ã¯ããµããŒããããŠããæå·ã¹ã€ãŒããšããŒã亀æããããã«ãã¯ã©ã€ã¢ã³ãåŽãšãµãŒããŒåŽã®éã§éä¿¡ã確ç«ããããã»ã¹ããå§ãŸããŸãã åæ¹ãã»ãããããŽã·ãšãŒãããŠãå®å šãªãã£ãã«ã§ãããªãéä¿¡ã確å®ã«è¡ãããããã«ããŸãã XNUMX ã€ã®éãã¯ãä¿¡é Œæ§ã®äœãæ¥ç¶ã§ã UDP ããŒã¹ã® DTLS ãåäœã§ããããã«ããããã®å°ããªå€æŽã«ãããŸãã
ã«
ãã ãããããã®ãããã³ã«ã®æ倧ã®åé¡ã¯ããããã®ãããã³ã«ãå
ã
IoT ã§äœ¿çšããããã«èšèšãããŠããããé§ãã¯ã©ãŠãã§åäœããããšãæå³ããŠããªãããšã§ãã ãã³ãã·ã§ã€ã¯ãéããŠãæ¥ç¶ã確ç«ããããã³ã«è¿œå ã®ãã©ãã£ãã¯ãè¿œå ãããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãæ¶èãããŸãã å¹³åãããšãã»ãã¥ãªãã£å±€ã®ãªãéä¿¡ãšæ¯èŒããŠããªãŒããŒãããã TLS 㧠6,5%ãDTLS 㧠11% å¢å ããŸãã ãªãœãŒã¹ãè±å¯ãªç°å¢ã§ã¯ãéåžžã¯
äœãéžã¶ã¹ãã§ããïŒ æ確ãªçãã¯ãããŸããã MQTT ãš HTTP ã¯ãä»ã®ãããã³ã«ã«æ¯ã¹ãŠæ¯èŒçæçããŠãããããå®å®ãã IoT ãœãªã¥ãŒã·ã§ã³ã§ãããšèããããŠãããããæãææãªãããã³ã«ã§ãããšæãããŸãã
ãŠããã¡ã€ãã³ãã¥ãã±ãŒã·ã§ã³ãããã³ã«ã«åºã¥ããœãªã¥ãŒã·ã§ã³
åäžãããã³ã« ãœãªã¥ãŒã·ã§ã³ã®å®è·µã«ã¯å€ãã®æ¬ ç¹ããããŸãã ããšãã°ãå¶éãããç°å¢ã«é©ãããããã³ã«ã¯ãå³æ Œãªã»ãã¥ãªãã£èŠä»¶ããããã¡ã€ã³ã§ã¯æ©èœããªãå¯èœæ§ããããŸãã ããã念é ã«çœ®ããšãMQTT ãš REST HTTP ãé€ããIoT ã® Fog-to-Cloud ãšã³ã·ã¹ãã ã§èããããã»ãŒãã¹ãŠã®åäžãããã³ã« ãœãªã¥ãŒã·ã§ã³ãå»æ£ããããšã«ãªããŸãã
åäžãããã³ã« ãœãªã¥ãŒã·ã§ã³ãšããŠã® REST HTTP
REST HTTP ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã IoT-to-Fog ã¹ããŒã¹ã§ã©ã®ããã«å¯Ÿè©±ãããã瀺ãè¯ãäŸããããŸãã
POST ã¡ãœããã®ããããŒã§ã¯ãå€æŽãããªãœãŒã¹ (/farm/animals) ãš HTTP ããŒãžã§ã³ããã³ã³ã³ãã³ã ã¿ã€ããæå®ããŸãããã®å Žåãããã¯ã·ã¹ãã ã管çããåç©èŸ²å Ž (Dulcinea/cow) ãè¡šã JSON ãªããžã§ã¯ãã§ãã ã ãµãŒããŒããã®å¿çã¯ãHTTPS ã¹ããŒã¿ã¹ ã³ãŒã 201 (ãªãœãŒã¹ãäœæãããŸãã) ãéä¿¡ããããšã§ãèŠæ±ãæåããããšã瀺ããŸãã GET ã¡ãœããã§ã¯ãURI ã§èŠæ±ããããªãœãŒã¹ (/farm/animals/1 ãªã©) ã®ã¿ãæå®ããå¿ èŠããããŸããããã«ããããã® ID ãæã€åç©ã® JSON è¡šçŸããµãŒããŒããè¿ãããŸãã
PUT ã¡ãœããã¯ãç¹å®ã®ãªãœãŒã¹ ã¬ã³ãŒããæŽæ°ããå¿ èŠãããå Žåã«äœ¿çšãããŸãã ãã®å ŽåããªãœãŒã¹ã¯å€æŽãããã©ã¡ãŒã¿ãŒã® URI ãšçŸåšã®å€ (ããšãã°ãçãçŸåšæ©ããŠããããšã瀺ããŸãã/farm/animals/1? state=walking) ãæå®ããŸãã æåŸã«ãDELETE ã¡ãœãã㯠GET ã¡ãœãããšåæ§ã«äœ¿çšãããŸãããæäœã®çµæãšããŠãªãœãŒã¹ãåã«åé€ããã ãã§ãã
åäžãããã³ã« ãœãªã¥ãŒã·ã§ã³ãšããŠã® MQTT
åãã¹ããŒã ãã¡ãŒã ãèããŠã¿ãŸãããããã ããREST HTTP ã®ä»£ããã« MQTT ãããã³ã«ã䜿çšããŸãã Mosquitto ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããããŒã«ã« ãµãŒããŒã¯ãããŒã«ãŒãšããŠæ©èœããŸãã ãã®äŸã§ã¯ãåçŽãªã³ã³ãã¥ãŒã¿ãŒ (ãã¡ãŒã ãµãŒããŒãšåŒã°ãã) Raspberry Pi ã MQTT ã¯ã©ã€ã¢ã³ããšããŠæ©èœããMosquitto ãããŒã«ãŒãšå®å
šãªäºææ§ããã Paho MQTT ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«ã«ãã£ãŠå®è£
ãããŸãã
ãã®ã¯ã©ã€ã¢ã³ãã¯ãã»ã³ã·ã³ã°æ©èœãšã³ã³ãã¥ãŒãã£ã³ã°æ©èœãåããããã€ã¹ãè¡šã IoT æœè±¡åã¬ã€ã€ãŒã«å¯Ÿå¿ããŸãã äžæ¹ãã¡ãã£ãšãŒã¿ã¯ããé«ãã¬ãã«ã®æœè±¡åã«å¯Ÿå¿ãããã倧ããªåŠçèœåãšèšæ¶å®¹éãç¹åŸŽãšãããã©ã° ã³ã³ãã¥ãŒãã£ã³ã° ããŒããè¡šããŸãã
ææ¡ãããŠããã¹ããŒã ãã¡ãŒã ã·ããªãªã§ã¯ãRaspberry Pi ãå é床ã»ã³ãµãŒãGPSã枩床ã»ã³ãµãŒã«æ¥ç¶ãããããã®ã»ã³ãµãŒããã®ããŒã¿ããã©ã° ããŒãã«å ¬éããŸãã ãåç¥ããšæããŸãããMQTT ã¯ãããã¯ãéå±€ãšããŠæ±ããŸãã åäžã® MQTT ãããªãã·ã£ãŒã¯ãç¹å®ã®ãããã¯ã®ã»ããã«ã¡ãã»ãŒãžããããªãã·ã¥ã§ããŸãã ç§ãã¡ã®å Žåãããã㯠XNUMX ã€ãããŸãã çèå ã®æž©åºŠã枬å®ããã»ã³ãµãŒã®å Žåãã¯ã©ã€ã¢ã³ãã¯ããŒã (çè/å°å±/枩床) ãéžæããŸãã å é床èšãéã㊠GPS äœçœ®ãšåç©ã®åãã枬å®ããã»ã³ãµãŒã®å Žåãã¯ã©ã€ã¢ã³ã㯠(animalfarm/animal/GPS) ããã³ (animalfarm/animal/movement) ãžã®æŽæ°ãå ¬éããŸãã
ãã®æ å ±ã¯ãããŒã«ãŒã«æž¡ãããåŸã§å¥ã®é¢å¿ã®ããå å ¥è ãçŸããå Žåã«åããŠãããŒã«ã« ããŒã¿ããŒã¹ã«äžæçã«ä¿åã§ããŸãã
ãã©ã°å 㧠MQTT ãããŒã«ãŒãšããŠæ©èœããMQTT ã¯ã©ã€ã¢ã³ããšããŠæ©èœãã Raspberry Pi ãã»ã³ãµãŒ ããŒã¿ãéä¿¡ããããŒã«ã« ãµãŒããŒã«å ããŠãã¯ã©ãŠã ã¬ãã«ã«å¥ã® MQTT ãããŒã«ãŒãååšããå ŽåããããŸãã ãã®å ŽåãããŒã«ã« ãããŒã«ãŒã«éä¿¡ãããæ å ±ã¯ãããŒã«ã« ããŒã¿ããŒã¹ã«äžæçã«ä¿åããããã¯ã©ãŠãã«éä¿¡ãããããããšãã§ããŸãã ãã®ç¶æ³ã«ããããã©ã° MQTT ãããŒã«ãŒã¯ããã¹ãŠã®ããŒã¿ãã¯ã©ãŠã MQTT ãããŒã«ãŒã«é¢é£ä»ããããã«äœ¿çšãããŸãã ãã®ã¢ãŒããã¯ãã£ã䜿çšãããšãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ ãŠãŒã¶ãŒã¯äž¡æ¹ã®ãããŒã«ãŒã«ãµãã¹ã¯ã©ã€ãã§ããŸãã
ããããã®ãããŒã«ãŒ (ã¯ã©ãŠããªã©) ãžã®æ¥ç¶ã倱æããå Žåããšã³ã ãŠãŒã¶ãŒã¯ä»ã®ãããŒã«ãŒ (ãã©ã°) ããæ å ±ãåãåããŸãã ããã¯ããã©ã°ãšã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã° ã·ã¹ãã ãçµã¿åãããç¹åŸŽçãªæ©èœã§ãã ããã©ã«ãã§ã¯ãã¢ãã€ã« ã¢ããªã¯æåã«ãã©ã° MQTT ãããŒã«ãŒã«æ¥ç¶ããããã倱æããå Žåã¯ã¯ã©ãŠã MQTT ãããŒã«ãŒã«æ¥ç¶ããããã«æ§æã§ããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãIoT-F2C ã·ã¹ãã ã«ããæ°å€ãã®ãœãªã¥ãŒã·ã§ã³ã®ãã¡ã® XNUMX ã€ã«ãããŸããã
ãã«ããããã³ã«ãœãªã¥ãŒã·ã§ã³
åäžãããã³ã« ãœãªã¥ãŒã·ã§ã³ã¯ãå®è£ ãç°¡åãªãã人æ°ããããŸãã ããããIoT-F2C ã·ã¹ãã ã§ã¯ãç°ãªããããã³ã«ãçµã¿åãããããšãåççã§ããããšã¯æããã§ãã èãæ¹ã¯ãç°ãªããããã³ã«ãç°ãªãã¬ãã«ã§åäœã§ãããšããããšã§ãã ããšãã°ãIoTããã©ã°ãã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ã®ã¬ã€ã€ãŒãšãã XNUMX ã€ã®æœè±¡åãèããŠã¿ãŸãããã IoT ã¬ãã«ã®ããã€ã¹ã¯äžè¬ã«å¶éãããŠãããšèããããŸãã ãã®æŠèŠã§ã¯ãIoT å±€ãæãå¶çŽãå€ããã¯ã©ãŠããæãå¶çŽãå°ãªãããã©ã° ã³ã³ãã¥ãŒãã£ã³ã°ãããã®äžéããšèããŠã¿ãŸãããã IoT ãšãã©ã°æœè±¡åã®éã«ãçŸåšã®ãããã³ã« ãœãªã¥ãŒã·ã§ã³ã«ã¯ MQTTãCoAPãXMPP ãå«ãŸããŠããããšãããããŸãã äžæ¹ããã©ã°ãšã¯ã©ãŠãã®éã§ã¯ãAMQP ã REST HTTP ãšãšãã«äœ¿çšãããäž»èŠãªãããã³ã«ã® XNUMX ã€ã§ããããã®æè»æ§ã«ãã IoT ãšãã©ã° ã¬ã€ã€ã®éã§ã䜿çšãããŸãã
ããã§ã®äž»ãªåé¡ã¯ããããã³ã«ã®çžäºéçšæ§ãšããããããã³ã«ããå¥ã®ãããã³ã«ãžã®ã¡ãã»ãŒãžã®è»¢éã®å®¹æãã§ãã çæ³çã«ã¯ãå°æ¥çã«ã¯ãã¯ã©ãŠãããã³ãã©ã° ãªãœãŒã¹ãåããã¢ãã®ã€ã³ã¿ãŒããã ã·ã¹ãã ã®ã¢ãŒããã¯ãã£ãã䜿çšãããéä¿¡ãããã³ã«ããç¬ç«ããç°ãªããããã³ã«éã®è¯å¥œãªçžäºéçšæ§ãä¿èšŒãããããã«ãªããŸãã
çŸåšã¯ããã§ã¯ãªãããã倧ããªéãããªããããã³ã«ãçµã¿åãããã®ãåççã§ãã ãã®ç®çãéæããããã«ãèãããããœãªã¥ãŒã·ã§ã³ã® XNUMX ã€ã¯ãåãã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã«åŸã XNUMX ã€ã®ãããã³ã«ãREST HTTP ãš CoAP ã®çµã¿åããã«åºã¥ããŠããŸãã ææ¡ãããŠãããã XNUMX ã€ã®ãœãªã¥ãŒã·ã§ã³ã¯ããããªãã·ã¥/ãµãã¹ã¯ã©ã€ãéä¿¡ãæäŸãã XNUMX ã€ã®ãããã³ã«ãMQTT ãš AMQP ã®çµã¿åããã«åºã¥ããŠããŸãã åæ§ã®æŠå¿µ (MQTT ãš AMQP ã¯äž¡æ¹ãšããããŒã«ãŒã䜿çšããCoAP ãš HTTP 㯠REST ã䜿çš) ã䜿çšãããšããããã®çµã¿åããã®å®è£
ã容æã«ãªããå¿
èŠãªçµ±åäœæ¥ãå°ãªããªããŸãã
å³ (a) ã¯ãHTTP ãš CoAP ãšãã 2 ã€ã®ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ ããŒã¹ã®ã¢ãã«ãšãIoT-FXNUMXC ãœãªã¥ãŒã·ã§ã³ã«ããããããã®é
眮ã®å¯èœæ§ã瀺ããŠããŸãã HTTP ã¯çŸä»£ã®ãããã¯ãŒã¯ã§æãããç¥ããæ¡çšãããŠãããããã³ã«ã® XNUMX ã€ã§ãããããä»ã®ã¡ãã»ãŒãžã³ã° ãããã³ã«ã«å®å
šã«çœ®ãæããããå¯èœæ§ã¯äœãã§ãã ã¯ã©ãŠããšãã©ã°ã®éã«ãã匷åãªããã€ã¹ãè¡šãããŒãã®äžã§ããREST HTTP ã¯ã¹ããŒããªãœãªã¥ãŒã·ã§ã³ã§ãã
äžæ¹ããã©ã°å±€ãš IoT å±€ã®éã§éä¿¡ããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãéãããŠããããã€ã¹ã®å Žåã¯ãCoAP ã䜿çšããæ¹ãå¹ççã§ãã CoAP ã®å€§ããªå©ç¹ã® XNUMX ã€ã¯ãå®éã«ã¯ HTTP ãšã®äºææ§ã§ããããã¯ãäž¡æ¹ã®ãããã³ã«ã REST ååã«åºã¥ããŠããããã§ãã
å³ (b) ã¯ãMQTT ãš AMQP ãå«ããåãã·ããªãªã«ããã XNUMX ã€ã®ãããªãã·ã¥/ãµãã¹ã¯ã©ã€ãéä¿¡ã¢ãã«ã瀺ããŠããŸãã ä»®æ³çã«ã¯äž¡æ¹ã®ãããã³ã«ãåæœè±¡åå±€ã®ããŒãéã®éä¿¡ã«äœ¿çšã§ããŸããããã®äœçœ®ã¯ããã©ãŒãã³ã¹ã«åºã¥ããŠæ±ºå®ããå¿ èŠããããŸãã MQTT ã¯ãã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãéãããŠããããã€ã¹åãã®è»œéãããã³ã«ãšããŠèšèšãããŠãããããIoT-Fog éä¿¡ã«äœ¿çšã§ããŸãã AMQP ã¯ããã©ã° ããŒããšã¯ã©ãŠã ããŒãã®éã«çæ³çã«é 眮ãããããã匷åãªããã€ã¹ã«ããé©ããŠããŸãã MQTT ã®ä»£ããã«ãXMPP ãããã³ã«ã¯è»œéã§ãããšèããããŠãããããIoT ã§äœ¿çšã§ããŸãã ãããããã®ãããªã·ããªãªã§ã¯ããŸãåºã䜿çšãããŠããŸããã
æèŠ
ããã§èª¬æãããããã³ã«ã® XNUMX ã€ã§ãã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãéãããããã€ã¹ããã¯ã©ãŠã ãµãŒããŒã«è³ããŸã§ãã·ã¹ãã å ã®ãã¹ãŠã®éä¿¡ãã«ããŒã§ãããšã¯èãã«ããã§ãã ãã®èª¿æ»ã§ã¯ãéçºè ãæããã䜿çšãã XNUMX ã€ã®æãææãªãªãã·ã§ã³ã¯ãMQTT ãš RESTful HTTP ã§ããããšãããããŸããã ããã XNUMX ã€ã®ãããã³ã«ã¯æãæçããŠããŠå®å®ããŠããã ãã§ãªããååã«ææžåããæåããå®è£ ãšãªã³ã©ã€ã³ ãªãœãŒã¹ãå€æ°å«ãŸããŠããŸãã
MQTT ã¯ããã®å®å®æ§ãšã·ã³ãã«ãªæ§æã«ãããéãããããã€ã¹ã䜿çšã㊠IoT ã¬ãã«ã§äœ¿çšãããå Žåã«ããã®åªããããã©ãŒãã³ã¹ãæéã®çµéãšãšãã«èšŒæãããŠãããããã³ã«ã§ãã äžéšã®ãã©ã° ãã¡ã€ã³ãã»ãšãã©ã®ã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ãªã©ãéä¿¡ã®å¶éãããããªãŒæ¶è²»ãåé¡ã«ãªããªãã·ã¹ãã ã®éšåã§ã¯ãRESTful HTTP ãç°¡åãªéžæã§ãã CoAP ã IoT ã¡ãã»ãŒãžã³ã°æšæºãšããŠæ¥éã«é²åããŠãããè¿ãå°æ¥ãMQTT ã HTTP ãšåæ§ã®å®å®æ§ãšæç床ã®ã¬ãã«ã«éããå¯èœæ§ãé«ããããCoAP ãèæ ®ããå¿ èŠããããŸãã ãããããã®æšæºã¯çŸåšé²åäžã§ãããçæçãªäºææ§ã®åé¡ã䌎ããŸãã
ããã°ã§ã¯ä»ã«äœãèªããŸãã?
â
â
â
â
â
賌èªããŠãã ãã
åºæïŒ habr.com