Revision 5053819 of "MQTT" on glwiki'''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''') é un prtocolo 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 [[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 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 = 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 = 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 = 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]] 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>
*[[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-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.
== Notas ==
{{ Reflist | 30 em}}All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://gl.wikipedia.org/w/index.php?oldid=5053819.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|