Difference between revisions 5063226 and 5063547 on glwiki

{{Formato de referencias}}
'''MQTT'''<ref> {{Cite 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 de decembro de 2015 |  access-date data-acceso= April 25, 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"> {{cite 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 | last1 = | first1 = | last2 = | first2 = | date =   June 15, 2016 |   website =   iso.org |   publisher = [[Organización Internacional para a Estandarización]] |  pages = | access-date = |  quote =}} </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> {{Cite web | url = http://mqtt.org/2009/ 07 / 10 th- birthday- party |   title = 10 th   birthday   party |   work =   MQTT. org | date =   July 2009 |  access-date data-acceso= April 25, 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> {{cite 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 |  access-date data-acceso= 9 de maio de 2014}} </ref>   MQTT-SN <ref> {{cite 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 =   November 14, 2013 |  access-date = data-acceso= May 9, 2014}} </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> {{cite web |   title =   IBM   MQ | url =  =https : ://www.ibm.com/products/mq |   publisher = [[  IBM]] |  access-date 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> {{cite 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 =   February 19, 2013 |  access-date data-acceso= 23 de outubro de 2013}} </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> {{cite 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 |  access-date = data-acceso= November 15, 2015}} </ref> [[XMPP]], <ref> {{cite 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 |  access-datee data-acceso= 9 de maio de 2014}} </ref> <ref> {{cite 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 |  access -data data-acceso= 9 de maio de 2014}} </ref> [[Data   Distribution   Service |DDS]], <ref> {{Cite web | url =   http://portals.omg.org/dds/ | title = DDS Portal-Data Distribution Services |   website = portals.omg.org |   language = en-US | access-date data-acceso= 2018-01-14}} </ref> [[ OPC   Unified   Architecture |OPC UA]], <ref> {{Cite   news | url =   https:  //  blogues.   microsoft. com/ iot/2016/06/23/ microsoft-introduces- new- open- source-cros- platform- opc- ua- support- for- the-industrial-internet- of- things/| title=Microsoft introduce novo   OPC   UA   multiplataforma de soporte aberto para a Internet industrial de cósalas - Internet das cousas | data = 2016-06-23 | traballo = Internet das cousas |  data de -acceso  = 2017-10-13 | idioma = en- US} } </ref> e [[Web Application Messaging Protocol |Web Application Messaging Protocol (WAMP)]].

== Descrición xeral ==
Un sistema MQTT consiste en clientes que se comunican cun servidor, a miúdo chamado "broker". Un cliente pode ser un publicador de información ou un subscritor. Cada cliente pode conectarse ao broker.

A información organízase nunha xerarquía de temas. Cando un editor ten un novo elemento de datos para distribuír, envía unha mensaxe de control cos datos ao intermediario conectado. O axente logo distribúe a información a calquera cliente que se subscribiu a ese tema. O editor non necesita ter ningún dato sobre o número ou as localizacións dos subscritores, e os subscritores á súa vez non teñen que estar configurados con ningún dato sobre os editores.

Se un broker recibe un tema para o cal non hai subscritores actuais, descartará o tema a menos que o editor indique que o tema se reterá. Isto permite que os novos subscritores dun tema reciban o valor máis actual en lugar de esperar a próxima actualización dun editor.

Cando un cliente de publicación conéctase por primeira vez ao broker, pode configurar unha mensaxe   predeterminado para que se envíe aos subscritores se o broker detecta que o cliente de publicación desconectouse inesperadamente do broker.

Os clientes só interactúan cun broker, pero un sistema pode conter varios servidores intermediarios que intercambian datos segundo os temas dos seus subscritores actuais.

Unha mensaxe de control MQTT mínimo pode ser tan pouco como dous   bytes de datos. Unha mensaxe de control pode transportar case 256   megabytes de datos se é necesario. Existen catorce tipos de mensaxes definidas que se utilizan para conectar e desconectar a un cliente dun broker, para publicar datos, para acusar recibo dos datos e para supervisar a conexión entre o cliente e o servidor.

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 ===
[[File:MQTT protocol example without QoS.svg|thumb|right|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> {{Cite 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- US |  access-date  |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> {{cite web | title = Construíndo Facebook   Messenger | url =   https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920 |   last1 = Zhang | first1 = Lucy | date =   August 12, 2011 |   website = facebook.com/Engineering |   publisher = [[Facebook]] |   pages = 1 | access-date data-acceso= 15 de outubro de 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> {{cite web | url =   http://www.irse.org/knowledge/publicdocuments/3.09%20Wood%20-%20Message%20broker%20technology%20for%20flexible%20signalling%20control.pdf |   title = Tecnoloxía de intermediario de mensaxes para un control de sinalización flexible |   last1 = Wood |   first1 =   Daren | Rouben |   first2 = Dave | date =   August 13, 2012 |   website = irse.org | publisher = [[Institution   of   Railway   Signal   Engineers | IRSE]] |   pages = 7 |   format = PDF |  access-date data-acceso= 31 de marzo de 2014 |   quote =}} </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>{{cite 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=October 8, 2015 |access-datedata-acceso=October 21, 2015}}</ref><ref>{{cite 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 |format= |access-datedata-acceso=July 1, 2017 |quote= }}</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>{{cite 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 |access-datedata-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>{{cite 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 |access-datedata-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>{{cite 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 |access-datedata-acceso=March 29, 2017}}</ref><ref>{{cite web |url=https://io.adafruit.com/ |title=The Internet of Things for Everyone |last1= |first1= |last2= |first2= |date= |website=io.adafruit.com |publisher=[[Adafruit]] |pages=1 |format= |access-datedata-acceso=July 1, 2017 |quote= }}</ref>
* [[Microsoft Azure]]   IoT   Hub utiliza   MQTT como o seu protocolo principal para as mensaxes de [[ telemetría]].<ref>{{cite 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=March 1, 2017 |access-datedata-acceso=March 29, 2017}}</ref>
* [[XIM,   Inc.]] lanzou un cliente   MQTT chamado ''MQTT   Buddy'' en 2017.<ref>{{cite 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 |format= |access-datedata-acceso=July 1, 2017 |quote= }}</ref><ref>{{cite web |url=http://mqtt.ximxim.com |title=MQTT Buddy |last1= |first1= |last2= |first2= |date= |website=mqtt.ximxim.com |publisher=[[XIM, Inc.]] |pages= |format= |access-datedata-acceso=July 1, 2017 |quote= }}</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>{{cite 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 |pages= |format= |access-datedata-acceso=July 6, 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>{{cite 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 |pages= |format= |access-datedata-acceso=August 4, 2017 |quote=   }}</ref><ref>{{cite 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 |pages= |format= |access-datedata-acceso=August 4, 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>{{cite 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 |pages= |format= |access-datedata-acceso=August 11, 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>{{Cite news|url=https://www.opendxl.com/forum/index.php?thread/7-what-protocol-does-opendxl-use/|title=What protocol does OpenDXL use? - OpenDXL|work=OpenDXL|access-datedata-acceso=2017-10-13|language=en}}</ref><ref>{{Cite web|url=https://community.mcafee.com/servlet/JiveServlet/previewBody/9094-102-6-23120/DXL%20Architecture%20Guide%20Rev_D.pdf|title=Architecture Guide McAfee Data Exchange Layer (DXL)|last=McDonald|first=Ted|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref>
* [https://thomasnordquist.github.io/MQTT-Explorer/MQTT-Explorer] é 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 ==
{{ Reflist | Listaref|30  em}}



[[Categoría:Protocolos de Internet]]