Revision 5050131 of "MQTT" on glwiki

{{ IPstack}}
'' ' 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 = April 25, 2017}} </ref> ('''Message Queuing Telemetry Transport''') é an [[Organización Internacional de Normalizació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> [[Patrón de publicación-subscrición | publicar-subscribir]] - baseado nun protocolo de mensaxería. Funciona sobre o [[protocolo  TCP/IP |  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 mensaxería publicación-subscrición | patrón de mensaxería publicación-subscrición]] require un [[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 = 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 = 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 =  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') [[ Message  queueing]]. <ref> {{cite web |  title =  IBM  MQ | url =  https : //www.ibm.com/products/mq |  publisher = [[ IBM]] |  access-date = 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 = 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 =  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 = 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 = 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 = 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 corredor 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 intermediario, pode configurar unha mensaxe  predeterminado para que se envíe aos subscritores se o intermediario detecta que o cliente de publicación desconectouse inesperadamente do intermediario.

Os clientes só interactúan cun intermediario, 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 intermediario, 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 ===
[[Arquivo: Exemplo de protocolo MQTT sen  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 á marca 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 = 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 [[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 = 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 [I Delta] 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 [[Comité Europeo para a Estandarización  Electrotécnica |  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 = 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-date=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-date=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-date=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-date=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-date=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-date=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-date=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-date=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-date=July 1, 2017 |quote= }}</ref>  É unha aplicación  MQTT para [[ Android (sistema operativo) |  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-date=July 6, 2016 |quote=MQTT with TLS support }}</ref>
* [[O software de código aberto]] [[automatización doméstica]] 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-date=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-date=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]] 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-date=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-date=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.

== Referencias ==
Footnotes sobre como crear referencias usando etiquetas que logo aparecerán aquí automaticamente ->
{{ Reflist | 30 em}}

== Ligazóns externas ==
* {{Sitio web oficial}}