Difference between revisions 5164347 and 5184777 on glwiki

{{Atención|1=tradución deficiente, revisión de título, conceptos, termos|data=xuño de 2019}}
{{Sen referencias|data=xuño de 2019}}
{{Revisión|data=xuño de 2019}}
{{formatoWiki}}
{{ligazóns internas}}
{{ortografía}}
{{sen categoría}}

{{Formato de referencias}}
{{autotrad}}
'''MQTT'''<ref>  {{Citea web | title = MQTT 3.1.1 especificación | url = http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html | publisher = [[OASIS (organización) | |OASIS]] | data = 10/12/2015 |data-acceso= 25/4/2017}}  </ref> ('''Message Queuing Telemetry Transport''') é un protocolo de menxasería baseado en [[Patrón de publicación-subscrición  |publicación-subscrición]] recollido na [[Organización Internacional para a Estandarización|norma ISO]] (ISO/IEC PRF 20922) <ref name = "ISO">  {{cCitea web | url = https://www.iso.org/standard/69466.html | título = ISO/IEC 20922: 2016 Tecnoloxía da información - Transporte de telemetría de Message Queue Server (MQTT) v3.1.1 | date = June 15, 2016 | website = iso.org | publisher = [[Organización Internacional para a Estandarización]] }}  </ref> . Funciona sobre o protocolo [[TCP/IP]]. Está deseñado para conexións con localizacións remotas onde se require unha "pegada de código pequeno" ou o ancho de banda da rede é limitado. O [[Patrón de publicación-subscrición|patrón de mensaxería publicación-subscrición]] require un [[Bróker de mensaxería|intermediario de mensaxes]].

[[Andy Stanford-Clark]] de [[IBM]] e Arlen Nipper de Cirrus Link crearon a primeira versión do protocolo en 1999.  <ref>  {{Citea web | url=http://mqtt.org/2009/07/10th-birthday-party | title = 10 th birthday party | work = MQTT. org | date = July 2009 |data-acceso= 25/4/2015}}  </ref>

En 2013, IBM presentou MQTT v3.1 ao corpo de especificación de [[OASIS (organización)  |OASIS]] cunha carta que aseguraba que só se poderían aceptar cambios menores na especificación.  <ref>  {{cCitea web | title = OASIS Message Comité Técnico de Queue Server Telemetry Transport ( MQTT) | url = https://www.oasis-open.org/committees/mqtt/charter.php | publisher = OASIS |data-acceso= 9/5/2014}}  </ref> MQTT-SN <ref>  {{cCitea web|title=MQTT para redes de sensores ( MQTT- SN) Especificación do protocolo Versión 1.2|url=http://mqtt.org/MQTT-S_spec_v1.2.pdf|author=[[Andy Stanford -Clark | |Stanford-Clark, Andy]]; Hong Linh Truong|website=mqtt.org|publisher=MQTT|format=PDF|page=27|date=14/11/2013|data-acceso=9/5/2014|páxina-web=|título=}}  </ref> é unha variación do protocolo principal dirixido a dispositivos integrados en redes que non son TCP/IP, como [[Zigbee]].

Historicamente, o "MQ" en "MQTT" proveu da liña de produtos [[IBM MQ]] (entón ' MQSeries') de [[Message queueing|cola de mensaxes]].  <ref>  {{cCitea web | title = IBM MQ | url=https://www.ibm.com/products/mq | publisher = [[IBM]] |data-acceso= 18 de novembro de 2013}}  </ref> Con todo, non se require que a cola en si sexa compatible como unha característica estándar en todas as situacións.  <ref>{{cCitea web | title = Elección do protocolo de mensaxería: AMQP, MQTT ou STOMP | url = http://blogues.vmware.com/vfabric/2013/02/choosing-your-messaging-protocol-amqp-mqtt-or-stomp.html | last = Piper | first = Andy | website = blogues. vmware.com | publisher = [[VMware]] Blogues | page = 1 | date = 19/2/2013 | data-acceso = 23/10/2013 }}{{Ligazón morta|data=febreiro de 2019 }}</ref>

Os protocolos alternativos inclúen o [[  Advanced Message Queuing Protocol | |Protocolo avanzado de Message Queue Server ( AMQP)]], [[  Streaming Text Oriented Messaging Protocol |Streaming Text Oriented Messaging Protocol (STOMP)]], [[IETF]] [[Constrained Application Protocol]],  <ref>  {{cCitea web | title = Protocolo de aplicación restrinxida ( CoAP) RFC 7252 | url =https://tools.ietf.org/html/rfc7252 |last1 = Shelby | first1 = Zach | last2 = Hartke | first2 = Klaus | last3 = Bormann | first3 =Carsten |website =tools. ietf. org |publisher = [[Grupo de traballo de enxeñería da internet | |IETF]] | page = 1 | date = June 26, 2014 |data-acceso= 15/11/2015}}  </ref> [[XMPP]],  <ref>  {{cCitea web | title = InternetOfThings | url = https://wiki.xmpp.org/web/InternetOfThings | author = [[XMPP]] community | website = wiki.xmpp.org | publisher = XMPP wiki | page = 1 | date = Novembro 1, 2013 |data-acceso= 9 de maio de 2014}}  </ref>  <ref>  {{cCitea web | title = Protocolos da internet para Smart Grid RFC 6272 | url = https://datatracker.ietf.org/doc/rfc6272/?Include_text=1 | last1 = Baker | first1 = Fred | last2 = Meyer | first2 = David | website = datatracker. ietf. org | publisher = [[Internet Engineering Task Force | |IETF]] | page = 1 | date = June 21, 2011 |data-acceso= 9 de maio de 2014}}  </ref> [[Data Distribution Service  |DDS]],  <ref>  {{Citea web | url = http://portals.omg.org/dds/ | title = DDS Portal-Data Distribution Services | website = portals.omg.org | language = en |data-acceso= 14/1/2018}}  </ref> [[OPC Unified Architecture|OPC UA]],<ref>{{Cita novas|url=https://blogs.microsoft.com/iot/2016/06/23/microsoft-introduces-new-open-source-cross-platform-opc-ua-support-for-the-industrial-internet-of-things/|título=Microsoft introduce novo OPC UA multiplataforma de soporte aberto para a Internet industrial de cósalas Internet das cousas|data=23/6/2016|data-acceso=13/10/2017|lingua=en|autor=}}</ref> e [[Web Application Messaging Protocol|Web Application Messaging Protocol (WAMP)]].

(contracted; show full)

MQTT baséase no protocolo TCP para a transmisión de datos. Unha variante, MQTT- SN, úsase sobre outros transportes como UDP ou Bluetooth.

MQTT envía as credenciais de conexión en formato de texto plano e non inclúe ningunha medida de seguridade ou autenticación. Isto pode ser proporcionado polo transporte TCP subxacente usando medidas para protexer a integridade da información transferida da interceptación ou duplicación.

== Tipos de mensaxes ==
=== Conectar ===
[[Fi
lecheiro:MQTT protocol example without QoS.svg|thumbminiatura|300px|Exemplo dunha conexión MQTT (QoS 0) con conexión, publicación/subscrición e desconexión. A primeira mensaxe do cliente B almacénase debido ao flag de retención.]]
Espera a que se estableza unha conexión co servidor e crea unha ligazón entre os nodos.

=== Desconectar ===
Espera a que o cliente MQTT termine calquera traballo que deba facer e que a sesión [[TCP/IP]] desconéctese.

=== Publicar ===
Regresa inmediatamente ao subproceso da aplicación despois de pasar a solicitude ao cliente MQTT.

== Calidade de servizo (QoS) ==
{{Artigo principal | Calidade de servizo}}

Cada conexión ao axente pode especificar unha medida de "calidade de servizo". Estes clasifícanse en orde crecente de gastos xerais:
* Como máximo unha vez: a mensaxe envíase só unha vez e o cliente e o axente non toman medidas adicionais para confirmar a entrega (activar e esquecer).
* Polo menos unha vez: a mensaxe é reintentado polo remitente varias veces ata que se recibe o acuse de recibo (entrega confirmada).
* Exactamente unha vez: o remitente e o receptor involúcranse nun protocolo de dous niveis para garantir que só se reciba unha copia da mensaxe (entrega asegurada).
<ref>  {{Citea web | url = https://www.ibm.com/support/knowledgecenter/ssmkhh_10.0.0/com.ibm.etools.mft.doc/bc62020_.htm | title = IBM Knowledge Center | website = www.ibm.com | language = en |data-acceso= 2018-01-30}}  </ref>
Este campo non afecta o manexo das transmisións de datos TCP subxacentes; só úsase entre remitentes e receptores MQTT.

== Aplicacións do mundo real ==
Hai varios proxectos que implementan MQTT. Algúns exemplos son:

* [[Facebook Messenger]]. Facebook usou aspectos de MQTT en Facebook Messenger para [[Charla|chat en liña]].  <ref>  {{cCitea web | title = Construíndo Facebook Messenger | url = https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920 | last1 = Zhang | first1 = Lucy | date = 12/8/2011 | website = facebook.com/Engineering | publisher = [[Facebook]] | pages = 1 |data-acceso= 15/10/2015 | quote = Ao manter unha conexión MQTT e enrutar mensaxes a través da nosa canle de chat, a miúdo puidemos lograr a entrega de teléfono a teléfono en centos de milisegundos, en lugar de varios segundos.}}  </ref> Con todo, non está claro a cantidade de MQTT que se utiliza ou para que.
* ''[[Centro de Control Electrónico Integrado  |IECC]] Escalable '', a última versión de [[DeltaRail]] do seu Sistema de Control de Sinalización IECC utiliza MQTT para as comunicacións dentro das diversas partes do sistema e outros compoñentes do sistema de sinalización . Proporciona o marco de comunicacións subxacente para un sistema que cumpre coas normas [[CENELEC]] para as comunicacións de seguridade críticas.  <ref>{{cCitea web|url=http://www.irse.org/knowledge/publicdocuments/3.09%20Wood%20-%20Message%20broker%20technology%20for%20flexible%20signalling%20control.pdf|last1=Wood|first1=Daren|first2=Dave|date=13/8/2012|publisher=[[Institution of Railway Signal Engineers | |IRSE]]|pages=7|format=PDF|data-acceso=31/3/2014|páxina-web=irse.org|título=Tecnoloxía de intermediario de mensaxes para un control de sinalización flexible|last2=Robson|urlarquivo=https://web.archive.org/web/20140331174635/http://www.irse.org/knowledge/publicdocuments/3.09%20Wood%20-%20Message%20broker%20technology%20for%20flexible%20signalling%20control.pdf|dataarquivo=31/03/2014|urlmorta=si}}</ref>
* A plataforma [[EVRYTHNG]] IoT utiliza MQTT como protocolo [[  Machine to machine  |M2 M]] para millóns de produtos conectados.
* [[  Amazon Web Services]] anunciou '' Amazon IoT '' baseado en MQTT en 2015.  <ref>{{cCitea web |title=AWS IoT - Cloud Services for Connected Devices |last1=Barr |first1=Jeff |url=https://aws.amazon.com/blogs/aws/aws-iot-cloud-services-for-connected-devices/ |website=aws.amazon.com |publisher=[[Amazon Web Services]] |pages=1 |date=8/10/2015 |data-acceso=October 21, 2015}}</ref><ref>{{cCitea web |url=https://aws.amazon.com/iot |title=AWS IoT |last1= |first1= |last2= |first2= |date= |website=aws.amazon.com/iot |publisher=[[Amazon Web Services]] |pages=1 |data-acceso=July 1, 2017 }}</ref>
* A especificación estándar [[Open Geospatial Consortium]] [[SensorThings API]] ten unha extensión MQTT na norma como ligazón de protocolo de mensaxe adicional. Demostrouse nun piloto de IoT do Departamento de Seguridade Nacional de EE. UU.<ref>{{cCitea web |title=S&T’s Internet of Things Pilot Demonstrates 'State of the Practical' |url=https://www.dhs.gov/science-and-technology/blog/2016/01/25/st-internet-things-pilot-demonstrates-state-practical |last1=Brothers |first1=Reginald |date=January 25, 2016 |website=dhs.gov |page=1 |data-acceso=March 31, 2016}}</ref>
* Os servizos de [[OpenStack]] Upstream Infrastructure están conectados por un bus de mensaxes unificadas MQTT con ''Mosquitto'' como axente de MQTT.  <ref>{{cCitea web |title=OpenStack Firehose - The unified message bus for Infra services |url=http://docs.openstack.org/infra/system-config/firehose.html |date= |website=docs.openstack.org |publisher=[[OpenStack]] Infrastructure Team |pages=1 |data-acceso=August 30, 2016}}</ref>
* [[Adafruit]] lanzou un MQTT [[servizo na nube]] gratuíto para experimentadores e aprendices de IoT chamado "Adafruit IO" en 2015.<ref>{{cCitea web |title=Coming Soon: Adafruit IO |url=https://blog.adafruit.com/2014/09/16/coming-soon-adafruit-io/ |website= blog.adafruit.com |publisher=[[Adafruit Industries]] |pages=1 |date=September 16, 2014 |data-acceso=March 29, 2017}}</ref><ref>{{cCitea web |url=https://io.adafruit.com/ |title=The Internet of Things for Everyone |website=io.adafruit.com |publisher=[[Adafruit]] |pages=1 |data-acceso=July 1, 2017 |quote= }}</ref>
* [[Microsoft Azure]] IoT Hub utiliza MQTT como o seu protocolo principal para as mensaxes de [[  telemetría]].<ref>{{cCitea web |title=Understanding Microsoft Azure MQTT Support |url=https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support/ |last1=Dotchkoff |first1=Konstantin |last2=Betts |first2=Dominic |last3=Kshirsagar |first3=Dhanashri |last4=mastermanu |first4= |last5=Damaggio |first5=Elio |website=docs.microsoft.com |publisher=[[Microsoft]] |page=1 |date=1/3/2017 |data-acceso=29/3/2017}}</ref>
* [[XIM, Inc.]] lanzou un cliente MQTT chamado ''MQTT Buddy'' en 2017.<ref>{{cCitea web |url=http://mqtt.ximxim.com/mqtt-buddy-story-begins/ |title=The story of MQTT Buddy begins! |last1= |first1= |last2= |first2= |date=February 24, 2017 |website=mqtt.ximxim.com |publisher=[[XIM, Inc.]] |pages=1 |data-acceso=July 1, 2017 |quote= |urlarquivo=https://web.archive.org/web/20170723185715/http://mqtt.ximxim.com/mqtt-buddy-story-begins/ |dataarquivo=23 de xullo de 2017 |urlmorta=si }}</ref><ref>{{cCitea web|url=http://mqtt.ximxim.com|title=MQTT Buddy|last1=|first1=|last2=|first2=|date=|website=mqtt.ximxim.com|publisher=[[XIM, Inc.]]|data-acceso=1/7/2017|quote=|urlarquivo=https://web.archive.org/web/20180321101707/http://mqtt.ximxim.com/|dataarquivo=21/03/2018|urlmorta=si}}</ref> É unha aplicación MQTT para [[Android]] e [[  iOS]], pero non [[  F- Droid]], usuarios dispoñibles en inglés, ruso e chinés.
* [[Node-REDE]] admite nodos MQTT a partir da versión 0.14, para configurar correctamente as conexións [[  Transport Layer Security | |TLS]].<ref>{{cCitea web |url=https://nodered.org/blog/2016/06/14/version-0-14-released |title=Version 0.14 released |author=Community staff writer |date=June 14, 2016 |website=nodered.org/blog |publisher=Node-RED |data-acceso=6/7/2016 |quote=MQTT with TLS support }}</ref>
*[[Software de código aberto|O software de código aberto]] [[Domótica|domótico]] da plataforma Home Assistant está habilitado para MQTT e ofrece catro opcións para os corredores de MQTT.<ref>{{cCitea web |url=https://home-assistant.io/components/mqtt/ |title=MQTT |author=Home Assistant Community |date=August 7, 2015 |website=home-assistant.io |publisher=Home Assistant Community |data-acceso=August 4, 2017 |quote= }}</ref><ref>{{cCitea web |url=https://home-assistant.io/docs/mqtt/broker/ |title=MQTT Brokers |author=Home Assistant Community |date=August 7, 2015 |website=home-assistant.io |publisher=Home Assistant Community |data-acceso=4/8/2017 |quote=The MQTT component needs you to run an MQTT broker for Home Assistant to connect to. There are four options, each with various degrees of ease of setup and privacy.}}</ref>
* O marco de automatización do fogar '' ' Pimatic' 'para [[Raspberry Pi]] e baseado en [[  Node. js|Node.js]] ofrece o complemento MQTT que brinda soporte completo para o protocolo MQTT.<ref>{{cCitea web |url=https://pimatic.org/plugins/pimatic-mqtt |title=pimatic-mqtt |last1=Kail |first1=Marek |date=October 16, 2016 |website=pimatic.org |publisher=Oliver Schneider |data-acceso=11/8/2017 |quote= }}</ref>''
* McAfee OpenDXL baséase en MQTT con melloras nos propios intermediarios de mensaxería para que poidan comprender intrinsecamente o formato da mensaxe DXL para admitir funcións avanzadas como servizos, mensaxes de solicitude/resposta (punto a punto), conmutación por erro do servizo e zonas de servizo.<ref>{{Citea newovas|url=https://www.opendxl.com/forum/index.php?thread/7-what-protocol-does-opendxl-use/ |title=What protocol does OpenDXL use? - OpenDXL|work=OpenDXL|data-acceso=13/10/2017 |language=en}}</ref><ref>{{Citea web|url=https://community.mcafee.com/nysyc36988/attachments/nysyc36988/business-documents/405/2/DXL%20Architecture%20Guide%20Rev_E.pdf |title=Architecture Guide McAfee Data Exchange Layer (DXL)|last=McDonald|first=Ted}}</ref>
* [https://thomasnordquist.github.io/MQTT-Explorer/MQTT-Explorer]{{Ligazón morta|data=febreiro de 2019 }} é unha ferramenta gratuíta de integración e descubrimento de MQTT para [[Microsoft Windows  |Windows]], [[Linux]] e [[MacOS  |Mac]]. Visualiza temas baseados ​​en xerarquía de temas.

== Notas ==
{{Listaref|30em}}

[[Categoría:Protocolos de Internet]]