{"id":48617,"date":"2019-04-02T16:14:14","date_gmt":"2019-04-02T14:14:14","guid":{"rendered":"https:\/\/openexpoeurope.com\/?p=48617"},"modified":"2021-03-29T17:05:25","modified_gmt":"2021-03-29T15:05:25","slug":"mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl","status":"publish","type":"post","link":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/","title":{"rendered":"MQTT para conectar una web online con un backoffice remoto &#8211; ASPL"},"content":{"rendered":"<p style=\"text-align: justify;\"><strong><span style=\"color: #ff0000;\">ACTUALIZACI\u00d3N:<\/span> <\/strong>\u00a1El pr\u00f3ximo <strong>jueves 15 de abril del 2021<\/strong> no te pierdas el <strong>CMS\/DXP Day<\/strong> de la serie de eventos virtuales<strong> OpenExpo Business Live<\/strong>! Si quieres saber qu\u00e9 herramienta de gesti\u00f3n de contenidos y experiencia de usuario es la m\u00e1s adecuada para la transici\u00f3n digital de tu empresa, qu\u00e9 preguntas tienes que hacerte para elegirla, y por qu\u00e9 hoy en d\u00eda son fundamentales tanto en entornos B2B como B2C, <strong>\u00a1reg\u00edstrate gratis!\u00a0<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>REGISTRO \u21aa\ufe0f <a href=\"https:\/\/cutt.ly\/5x2SgRs\">https:\/\/cutt.ly\/5x2SgRs<\/a><\/strong><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<h3 style=\"text-align: justify;\"><strong>1. Resumen<\/strong><\/h3>\n<p style=\"text-align: justify;\">A continuaci\u00f3n se presenta una soluci\u00f3n basada en\u00a0<a href=\"https:\/\/mqtt.org\/\">MQTT<\/a>\u00a0([1]\u00a0<a href=\"https:\/\/mqtt.org\/\">mqtt.org<\/a>) para conectar una plataforma web de venta, gesti\u00f3n de producto y relaci\u00f3n con el cliente para que use e interaccione con una base de datos remota en uno o varios servidores protegidos (sin conexi\u00f3n directa).<\/p>\n<p style=\"text-align: justify;\">Durante la secunda parte, a partir del punto\u00a0<a href=\"https:\/\/www.asplhosting.com\/articulo-openexpo-2019-mqtt-para-conectar-portal-web-con-base-de-datos-backoffice.html#usando-mqtt-para-conectar-nuestros-sistemas\">5. Usando MQTT para conectar nuestros sistemas<\/a>, detallamos los pasos necesarios para implementar dicha soluci\u00f3n, incluyendo indicaciones t\u00e9cnicas y ejemplos concretos de c\u00f3digo necesarios para desplegar la soluci\u00f3n [1]\u00a0<a href=\"https:\/\/mqtt.org\/\">MQTT<\/a>.<\/p>\n<p style=\"text-align: justify;\">Palabras clave:\u00a0<a href=\"https:\/\/mqtt.org\/\">MQTT<\/a>, Micro servicios, Hacking, Seguridad web, Python,\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/gestionando-y-usando-el-stashing-de-myqtthub-almacenando-mensajes-mqtt-encajando-con-ciertos-filtros\/55\">Stashing MQTT<\/a><\/p>\n<p style=\"text-align: justify;\">Para una lectura r\u00e1pida de concepto, recomendamos leer (no m\u00e1s de 2 minutos) los tres primeros puntos, junto con las conclusiones:<\/p>\n<ul class=\"nodots\" style=\"text-align: justify;\">\n<li><a href=\"https:\/\/www.asplhosting.com\/articulo-openexpo-2019-mqtt-para-conectar-portal-web-con-base-de-datos-backoffice.html#definicion-del-problema\">2. Definici\u00f3n del problema<\/a><\/li>\n<li><a href=\"https:\/\/www.asplhosting.com\/articulo-openexpo-2019-mqtt-para-conectar-portal-web-con-base-de-datos-backoffice.html#desafios-a-resolver\">3. Desafios a resolver<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/www.asplhosting.com\/articulo-openexpo-2019-mqtt-para-conectar-portal-web-con-base-de-datos-backoffice.html#diseno-de-la-solucion\">4. Dise\u00f1o de la soluci\u00f3n: MQTT al rescate<\/a><\/li>\n<li style=\"text-align: justify;\"><a href=\"https:\/\/www.asplhosting.com\/articulo-openexpo-2019-mqtt-para-conectar-portal-web-con-base-de-datos-backoffice.html#conclusion\">11. Conclusiones y revisi\u00f3n de la soluci\u00f3n MQTT<\/a><\/li>\n<\/ul>\n<h3 id=\"definicion-del-problema\" style=\"text-align: justify;\">2. Definici\u00f3n del <strong>problema<\/strong><\/h3>\n<p style=\"text-align: justify;\">Varios de los desaf\u00edos a resolver con una plataforma de venta online y que tiene estar\u00a0<strong>\u00abconectada\u00bb<\/strong>\u00a0en tiempo real con un backoffice remoto son:<\/p>\n<ol style=\"text-align: justify;\">\n<li style=\"text-align: justify;\">Tener la capacidad de integrar los productos contratados, cambios de precios, facturas, etc, con los sistemas de base de datos normalmente localizados en oficinas, separadas del datacenter.<\/li>\n<li style=\"text-align: justify;\">La seguridad y el control de la informaci\u00f3n: no parece una buena idea tener informaci\u00f3n contable, facturas, declaraciones 347 y todo tipo de movimientos en la propia m\u00e1quina donde ejecuta la web.Un \u00fanico fallo de seguridad en la programaci\u00f3n de la web podr\u00eda poner en riesgo toda esta informaci\u00f3n.Sin embargo, necesitamos poder proporcionar toda esta informaci\u00f3n al cliente debido a los enormes beneficios que esto proporciona: gesti\u00f3n \u00e1gil del producto y el acceso inmediato a la informaci\u00f3n que necesita el cliente.<\/li>\n<li>Protecci\u00f3n frente hacking directo reduciendo la superficie de ataque. Efectivamente, abrir puertos TCP\/UDP de aplicaciones de contabilidad, bases de datos, etc, aunque est\u00e9n limitados por IP, es un riesgo enorme.\n<p style=\"text-align: justify;\">Hay que contar con un dise\u00f1o que espere lo mejor pero que se prepare para lo peor: la web puede ser hackeada y no por eso, el atacante debe tener acceso a puertos autorizados.<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"desafios-a-resolver\" style=\"text-align: justify;\">3. Desaf\u00edos a resolver<\/h3>\n<p style=\"text-align: justify;\">Tras varias alternativas estudiadas, llegamos a la conclusi\u00f3n de que necesit\u00e1bamos una soluci\u00f3n que proporcione un [3]\u00a0<a href=\"https:\/\/es.wikipedia.org\/wiki\/Acoplamiento_(inform%C3%A1tica)\">bajo acoplamiento<\/a>\u00a0entre la web de venta online y el sistema interno de gesti\u00f3n contable (con sus distintos componentes).<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-48618 alignnone\" src=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-1.png\" alt=\"\" width=\"906\" height=\"172\" srcset=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-1.png 906w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-1-300x57.png 300w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-1-768x146.png 768w\" sizes=\"auto, (max-width: 906px) 100vw, 906px\" \/><\/p>\n<p style=\"text-align: justify;\">En concreto, los requisitos a cumplir son:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Tener trazados y autorizados los mensajes de modificaci\u00f3n y consulta emitidos desde la plataforma web.<\/li>\n<li>Evitar dar acceso SQL completo. Es decir, si hay un hacking, que esto no implique un acceso completo o generalizado a informaci\u00f3n de otros usuarios.<\/li>\n<li>Trazar y almacenar de manera ordenada todas las peticiones de cambio emitidas por la plataforma online en un almacenamiento independiente para poder replicarlas, cotegarlas o comprobarlas.<\/li>\n<li>Que no sea un problema tener ca\u00eddo el sistema contable: que las compras, altas de usuarios, bajas y peticiones de cambio no se pierdan y se reenv\u00eden y apliquen en orden en cuanto el sistema contable est\u00e9 en marcha.<\/li>\n<li>Que no haya conexi\u00f3n directa (puertos abiertos) entre sistema contable y la plataforma de venta online.<\/li>\n<li>Capacidad de conectar varios sistemas de caracter local en distintas localizaciones (red privada), con la plataforma web online. Cuando hablamos de\u00a0<strong>\u00absistema contable\u00bb<\/strong>, en realidad hablamos de varias aplicaciones en distintos servidores.<\/li>\n<li>Establecer como \u00fanica fuente de verdad el sistema contable: que la plataforma web online sea una vista.<\/li>\n<\/ul>\n<h2 id=\"diseno-de-la-solucion\" style=\"text-align: justify;\">4. Dise\u00f1o de la soluci\u00f3n: MQTT al rescate<\/h2>\n<p style=\"text-align: justify;\">El protocol MQTT ([1]\u00a0<a href=\"https:\/\/mqtt.org\/\">mqtt.org<\/a>) define un est\u00e1ndar abierto para el intercambio de mensajes entre distintos participantes siguiendo un modelo de [4]\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Publish%E2%80%93subscribe_pattern\">PUBLISH-SUBSCRIBE<\/a>.<\/p>\n<p style=\"text-align: justify;\">En esencia, participantes sin conocimiento m\u00fatuo, ni conexi\u00f3n directa, ejecutando plataforma heterog\u00e9nea, pueden intercambiar mensajes sin tener que obligarse a estar presentes en el momento del intercambio.<\/p>\n<p style=\"text-align: justify;\">Las caracter\u00edsticas que nos proporciona MQTT, junto con algunos a\u00f1adidos nos resuelven los retos t\u00e9cnicos que tenemos. Veamos c\u00f3mo.<\/p>\n<h2 id=\"usando-mqtt-para-conectar-nuestros-sistemas\" style=\"text-align: justify;\">5. Usando MQTT para conectar nuestros sistemas<\/h2>\n<p style=\"text-align: justify;\">Lo primero que necesitaremos es un Broker MQTT. Este es el componente servidor del protocolo MQTT. Es el encargado de autorizar a los participantes, hacer el almacenamiento de los mensajes y de hacer el rutado entre los componentes que publican y los subscriptores.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-48620 alignnone\" src=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-2.png\" alt=\"\" width=\"900\" height=\"293\" srcset=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-2.png 900w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-2-300x98.png 300w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-2-768x250.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p style=\"text-align: justify;\">Existen varias implementaciones disponibles [1] y [2].<\/p>\n<p style=\"text-align: justify;\">[5]\u00a0<a href=\"http:\/\/www.steves-internet-guide.com\/mqtt-hosting-brokers-and-servers\/\">http:\/\/www.steves-internet-guide.com\/mqtt-hosting-brokers-and-servers\/<\/a><\/p>\n<p style=\"text-align: justify;\">[6]\u00a0<a href=\"https:\/\/github.com\/mqtt\/mqtt.github.io\/wiki\/brokers\">https:\/\/github.com\/mqtt\/mqtt.github.io\/wiki\/brokers<\/a><\/p>\n<p style=\"text-align: justify;\">Nosotros usaremos [7]\u00a0<a href=\"https:\/\/myqtthub.com\/\">MyQttHub.com<\/a>, una plataforma Cloud MQTT con toda la mec\u00e1nica disponible, administraci\u00f3n WEB y API REST.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/myqtthub.com\/\">MyQttHub.com<\/a>\u00a0nos proporciona un plan Open sin coste con capacidad para enviar 10.000 mensajes al d\u00eda, 310.000 mensajes al mes. Sobrada capacidad de manera que tendr\u00edamos resuelta esta parte: no habr\u00eda que preocuparse por mantener un sistema m\u00e1s.<\/p>\n<p style=\"text-align: justify;\">Para ello, nos creamos una cuenta MyQttHub Open directamente desde la misma web, usando el formulario de suscripci\u00f3n: <a href=\"https:\/\/myqtthub.com\/\">MyQttHub.com<\/a>. Hay m\u00e1s informaci\u00f3n sobre el proceso en [3]:<\/p>\n<p style=\"text-align: justify;\">[8]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/como-crear-tu-cuenta-myqtthub-com-open\/29\">C\u00f3mo crear tu cuenta Open MyQttHub.com<\/a><\/p>\n<p style=\"text-align: justify;\">Ahora, vayamos integrando paso a paso la soluci\u00f3n en nuestro entorno. Comenzaremos con la parte privada de tu red (conectando una sede).<\/p>\n<h2 style=\"text-align: justify;\">6. Conectando tu plataforma privada local al servidor MQTT<\/h2>\n<p style=\"text-align: justify;\">Para poder \u00abexportar\u00bb la informaci\u00f3n que necesitan tus usuarios, necesitas conectar tus sistemas al servidor MQTT. El proceso de configuraci\u00f3n inicial es sencillo:<\/p>\n<ol style=\"text-align: justify;\">\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Necesitar\u00e1s un cliente sat\u00e9lite MQTT que haga de puente (MQTT bridge) entre la plataforma MQTT y tu sistema. Este cliente sat\u00e9lite se encargar\u00e1 de sostener la conexi\u00f3n y de mapear\/transformar los mensajes recibidos desde la plataforma MQTT en comandos locales.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-48622 alignnone\" src=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-3.png\" alt=\"\" width=\"900\" height=\"200\" srcset=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-3.png 900w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-3-300x67.png 300w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-3-768x171.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p style=\"padding-left: 80px; text-align: justify;\">2. Estos \u00abcomandos locales\u00bb encapsular\u00e1n la parte espec\u00edfica de tu instalaci\u00f3n. Ahora veremos esto. Primero, usaremos como cliente sat\u00e9lite MQTT MyQttSatellite. Es gratuito, sin l\u00edmites ni costes.<\/p>\n<p style=\"text-align: justify;\">Para ello, sigue los pasos descritos el siguiente enlace para descargar instalar y conectar tu equipo:<\/p>\n<p style=\"padding-left: 40px; text-align: justify;\">[9]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/myqttsatellite-cliente-mqtt-para-mapear-mensajes-a-comandos\/164#heading--como-instalar\">MyQttSatellite: cliente MQTT para mapear mensajes a comandos<\/a><\/p>\n<p style=\"padding-left: 80px; text-align: justify;\">3. Una vez conectado el cliente MQTT sat\u00e9lite tendr\u00e1s que implementar la l\u00f3gica para cada mensaje o API MQTT que vaya proporcionando tu soluci\u00f3n. Para ello, elegiremos Python, aunque cualquier lenguaje te valdr\u00e1. Mira c\u00f3mo lo hacemos con Python para adaptarlo a tu caso.<\/p>\n<p style=\"padding-left: 80px; text-align: justify;\">4. En concreto, implementaremos soporte para las operaciones \u00abalta de usuario\u00bb y \u00ablistado de productos\u00bb. Estas dos operaciones te dar\u00e1n una visi\u00f3n de c\u00f3mo se implementa una operaci\u00f3n de modificaci\u00f3n y una operaci\u00f3n de consulta.<\/p>\n<p style=\"padding-left: 80px; text-align: justify;\">5. Para la operaci\u00f3n de \u00abalta de usuario\u00bb, crearemos una estructura b\u00e1sica como la que sigue. Usaremos JSON para la codificaci\u00f3n de los mensajes aunque puedes usar XML, CSV o incluso formatos binarios como MessagePack sin problemas:<\/p>\n<pre>   #!\/usr\/bin\/python\r\n\r\n   import sys\r\n   import json\r\n\r\n   # leemos el mensaje recibido\r\n   message     = open (sys.argv[1]).content\r\n\r\n   # parseamos el mensaje Json\r\n   newCustomer = json.loads (message)\r\n   if not newCustomer:\r\n       print \"ERROR: failed to parse new customer mesasge, empty content received\"\r\n       sys.exit (-1)\r\n\r\n   # implementa aqu\u00ed la parte espec\u00edfica de alta de usuario en tu\r\n   # base de datos local (consulta SQL, llamada API, etc..)\r\n\r\n\r\n   # finalizamos reportando estado OK\r\n   sys.exit (0)\r\n<\/pre>\n<p style=\"padding-left: 80px; text-align: justify;\">6. Para implementar soporte para una operaci\u00f3n de consulta, tan solo tendr\u00e1s que extender el ejemplo anterior imprimiendo la salida en un formato conocido para el receptor, junto con una cabecera (<strong>X-Publish-Reply-To-Topic<\/strong>). M\u00e1s detalles sobre esto en:<\/p>\n<p style=\"padding-left: 40px; text-align: justify;\">[10]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/myqttsatellite-cliente-mqtt-para-mapear-mensajes-a-comandos\/164#heading--como-generar-respuestas\">C\u00f3mo generar respuestas MQTT con MyQttSatellite: uso de la cabecera X-Publish-Reply-To-Topic<\/a><\/p>\n<p style=\"padding-left: 80px; text-align: justify;\">7.Ahora, con estos comandos definidos, actualiza tu configuraci\u00f3n MyQttSatellite para mapear topics a tus comandos dentro de <strong>\/etc\/MyQttSatellite\/conf\/application.conf<\/strong>\u00a0. Por ejemplo:<\/p>\n<pre>  \r\n   command-mapper = [\r\n      \"company\/customer\/new\" -&gt; comando_de_alta_de_cliente.py \"\r\n      \"company\/customer\/list\/products\" -&gt; comando_de_listado_de_productos_de_cliente.py \"\r\n   ]<\/pre>\n<p style=\"text-align: justify;\">Con esta parte, ya estar\u00edan descritos los pilares que necesitas para gestionar mensajes recibidos desde la plataforma MQTT en tus nodos de red privada.<\/p>\n<h2 style=\"text-align: justify;\">7. Probando la integraci\u00f3n MQTT antes de modificar la parte p\u00fablica<\/h2>\n<p style=\"text-align: justify;\">Ahora, antes de tocar tu plataforma web para comenzar a enviar mensajes MQTT, necesitas probar que todo funciona y es correcto.<\/p>\n<p style=\"text-align: justify;\">Esta es una ventaja que nos proporciona MQTT. Nos permite probar la implementaci\u00f3n enviando mensajes con el formato esperado para ver c\u00f3mo responde el sistema.<\/p>\n<p style=\"text-align: justify;\">Para ello, conecta a tu cuenta\u00a0<a href=\"https:\/\/myqtthub.com\/\">MyQttHub.com<\/a>\u00a0y usa la funci\u00f3n de publicar mensaje que tienes en la parte superior del panel:<\/p>\n<p style=\"text-align: justify;\">[11]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/como-publicar-mensajes-mqtt-usando-la-interfaz-web-myqtthub\/167\">C\u00f3mo publicar mensajes MQTT desde la interfaz Web MyQtthub.com<\/a><\/p>\n<p style=\"text-align: justify;\">Probar la soluci\u00f3n de esta manera te permitir\u00e1 controlar y comprobar c\u00f3mo funciona el conector cliente MQTT junto con los comandos que vayas implementando.<\/p>\n<p style=\"text-align: justify;\">Una vez est\u00e9s listo, ya podr\u00edas integrar la parte web online para que se subscriba y genere los mensajes necesarios para interactuar con el sistema remoto.<\/p>\n<h2 style=\"text-align: justify;\">8. Consideraciones de seguridad para tu web al conectar con el servidor MQTT<\/h2>\n<p style=\"text-align: justify;\">Llegados este punto solo resta conectar tu plataforma web con la soluci\u00f3n MQTT. Antes de realizar ning\u00fan cambio, algunas recomendaciones sobre seguridad:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Al ser un sistema online, hay que considerar que es un entorno hostil y que tiene que estar preparado para recibir ataques o intentos para manipular, hackear o usar el sistema de manera no prevista.<\/li>\n<li>Dado que el emisor de los mensajes MQTT (tu web) no conoce qui\u00e9n los procesa (en este caso, tu cliente MQTT sat\u00e9lite), y viceversa, hay que extremar las precauciones tomando decisiones de dise\u00f1o que eviten que el usuario que conecta tu web pueda seleccionar y configurar contenidos del mensaje MQTT.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Efectivamente, la clave para obtener una seguridad adecuada es evitar que sea un cliente javascript MQTT o HTTP (javascript XmlHttpRpc) quien genere los mensajes MQTT en el lado web del navegador del usuario.<\/p>\n<p style=\"text-align: justify;\">Al contrario, las claves para obtener buenos niveles de seguridad son:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Hacer que el lado server side de tu plataforma web (PHP, .NET, java, etc) sea la que genere los mensajes MQTT.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-48624 alignnone\" src=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-4.png\" alt=\"\" width=\"900\" height=\"176\" srcset=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-4.png 900w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-4-300x59.png 300w, https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/aspl-4-768x150.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<ul style=\"text-align: justify;\">\n<li>No permitir que el cliente decida o indique nada sobre el remite, topic o routing del mensaje MQTT. Para conseguir esto hay que obtener toda la informaci\u00f3n desde la sesi\u00f3n del usuario (almacenada en el lado servidor).<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Con estas consideraciones de seguridad hechas, ya solo resta elegir el formato de integraci\u00f3n. Tenemos dos posibilidades:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Instalar un cliente MQTT para el lenguaje de programaci\u00f3n de tu web (PHP, .NET, Go, Node.js, java&#8230;etc).<\/li>\n<li>Usar el API REST [1] proporcionada por\u00a0<a href=\"https:\/\/myqtthub.com\/\">MyQttHub.com<\/a>\u00a0para conectarnos, publicar y recibir los mensajes:[12]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/rest-api-to-manage-myqtthub-service\/86\">API REST HTTPS de MyQttHub.com<\/a><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Por facilidad de integraci\u00f3n y debido a que hace uso de una tecnolog\u00eda ampliamente disponible, optaremos por integrar con HTTPS y el API REST.<\/p>\n<h2 style=\"text-align: justify;\">9. Conectando tu web al servidor MQTT<\/h2>\n<p style=\"text-align: justify;\">Las partes a completar son:<\/p>\n<ol style=\"text-align: justify;\">\n<li>Crea un dispositivo MQTT con el que publicar los mensajes. Nunca re\u00fases credenciales usadas por otros dispositivos. Para ello, sigue las indicaciones en:[13]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/como-crear-y-gestionar-dispositivos-mqtt-con-myqtthub-com\/31\">C\u00f3mo gestionar dispositivos MQTT con MyQttHub.com<\/a><\/li>\n<li>Da igual si usas interfaz MQTT o HTTP, usa siempre TLS\/SSL. De lo contrario estar\u00e1s enviando informaci\u00f3n sensible sin cifrar por internet.<\/li>\n<li>Dado que potencialmente generar\u00e1s varias conexiones concurrentes a la plataforma, tendr\u00e1s que activar el Skip Connection Replace. Mira c\u00f3mo se hace en el siguiente art\u00edculo y la motivaci\u00f3n:[14]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/conectando-con-varios-dispositivos-usando-las-mismas-credenciales-o-como-evitar-el-connection-replace-de-mqtt\/38\">C\u00f3mo configurar Skip Connection Replace<\/a><\/li>\n<li>Ahora, elige la secci\u00f3n en el c\u00f3digo de tu web donde deseas emitir el mensaje. Si es un alta de cliente tendr\u00eda que ser hecho al final del alta en la web. Ah\u00ed tendr\u00e1s que realizar una conexi\u00f3n web, y publicar el mensaje.<\/li>\n<\/ol>\n<p style=\"text-align: justify;\">Para ello, sigue las indicaciones del siguiente art\u00edculo que explica c\u00f3mo realizar esta operaci\u00f3n con Python. El ejemplo se puede adaptar f\u00e1cilmente al lenguaje de programaci\u00f3n que uses ya que estamos hablando de hacer consultas HTTPS:<\/p>\n<p style=\"text-align: justify;\">[15]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/how-to-use-https-api-rest-with-python-httplib\/48\">Usando el API REST de MyQttHub.com con python (httplib)<\/a><\/p>\n<h2 style=\"text-align: justify;\">10. Almacenamiento ordenado de mensajes MQTT y soporte de reenv\u00edo<\/h2>\n<p style=\"text-align: justify;\">Con la soluci\u00f3n desplegada, teniendo tu plataforma web conectada a tu gesti\u00f3n interna v\u00eda interfaz MQTT, ya puedes pasar a hablar del almacenamiento ordenado de los mensajes intercambiados y del reenv\u00edo de mensajes.<\/p>\n<p style=\"text-align: justify;\">Esta caracter\u00edstica es fundamental para trazar qu\u00e9 pas\u00f3, cu\u00e1ndo y qui\u00e9n solicit\u00f3 el cambio. Tambi\u00e9n es necesaria para soportar situaciones de fallo durante el proceso de mensajes o la recepci\u00f3n de mensajes pendientes al no estar disponible.<\/p>\n<p style=\"text-align: justify;\">Estas dos caracter\u00edsticas (almacenamiento y reenv\u00edo) est\u00e1n fuertemente relacionadas pero se gestionan de manera independiente:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Reenv\u00edo MQTT QoS1 y QoS2: capacidad por la cual un broker\/servidor MQTT almacenar\u00e1 y reenviar\u00e1 los mensajes no recibidos durante la desconexi\u00f3n de un participante subscrito a dichos mensajes.<\/li>\n<li><a href=\"https:\/\/support.asplhosting.com\/t\/gestionando-y-usando-el-stashing-de-myqtthub-almacenando-mensajes-mqtt-encajando-con-ciertos-filtros\/55\">Stashing MQTT<\/a>\u00a0[2]: capacidad por la cual un servidor\/broker MQTT almacena los mensajes en orden si encajan con un patr\u00f3n o topic, con independencia de si han sido entregados o no, para formar un almacenamiento cronol\u00f3gico que permita el reenv\u00edo y trazado.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Efectivamente, con el primer soporte (el Reenv\u00edo MQTT) ya tenemos cubierto la capacidad de recibir los mensajes de alta y modificaci\u00f3n de nuestra base de datos en el caso de que la conectividad en las sedes locales no est\u00e9 disponible o haya problemas temporales con los servidores localizados en las mismas.<\/p>\n<p style=\"text-align: justify;\">Adem\u00e1s, los mensajes que reenv\u00ede la plataforma se recibir\u00e1n en orden: as\u00ed aseguramos que los cambios que reciba la base de datos tendr\u00e1n la misma cronolog\u00eda que cuando se produjeron.<\/p>\n<p style=\"text-align: justify;\">Por otro lado, en el caso del Stashing, cada plataforma o Broker\/MQTT lo configura de manera distinta. En el caso de\u00a0<a href=\"https:\/\/myqtthub.com\/\">MyQttHub.com<\/a>\u00a0sigue los siguientes pasos para crear un Stash y un filtro que ordene el almacenamiento de los mensajes que te interesan:<\/p>\n<p style=\"text-align: justify;\">[2]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/gestionando-y-usando-el-stashing-de-myqtthub-almacenando-mensajes-mqtt-encajando-con-ciertos-filtros\/55\">Stashing MQTT para almacenamiento ordenado de los mensajes<\/a><\/p>\n<p style=\"text-align: justify;\">Una vez creado el stashing tendr\u00e1s todos los mensajes almacenados, en orden y con la capacidad para:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Reenviar cierto mensaje (por ejemplo, debido a que hubo un problema en su procesado)<\/li>\n<li>Descargar dichos mensajes para hacer un procesado posterior:[16]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/descargando-un-stash-usando-json-csv-excel-o-formato-xml-con-myqtthub\/98\">Descarga de mensajes MQTT almacenados en un Stash<\/a><\/li>\n<\/ul>\n<h2 id=\"conclusion\" style=\"text-align: justify;\">11. Conclusiones y revisi\u00f3n de la soluci\u00f3n MQTT<\/h2>\n<p style=\"text-align: justify;\">Hemos presentado un escenario donde necesit\u00e1bamos resolver el problema de interxi\u00f3n de una plataforma web online junto con un backend de almacenamiento (un sistema de gesti\u00f3n) de manera [3]\u00a0<a href=\"https:\/\/es.wikipedia.org\/wiki\/Acoplamiento_(inform%C3%A1tica)\">desacoplada<\/a>\u00a0y segura.<\/p>\n<p style=\"text-align: justify;\">La soluci\u00f3n presentada, basada en MQTT, nos permite resolver la comunicaci\u00f3n entre ambas sin conexi\u00f3n directa.<\/p>\n<p style=\"text-align: justify;\">Tambi\u00e9n nos resuelve el problema de no tener que almacenar informaci\u00f3n sensible en la web: podemos seguir almacen\u00e1ndola en nuestro sistema de gesti\u00f3n interno (backoffice) y dar \u00abAPIs MQTT\u00bb para proporcionar acceso \u00abselectivo\u00bb a los datos necesarios.<\/p>\n<p style=\"text-align: justify;\">La soluci\u00f3n tambi\u00e9n nos proporciona un almacenamiento de todas las solicitudes de cambio lanzadas desde el portal online. Esto permite trazar en orden qu\u00e9 ocurri\u00f3 o realizar el reenv\u00edo de ciertas operaciones.<\/p>\n<p style=\"text-align: justify;\">La soluci\u00f3n basa en MQTT tambi\u00e9n nos resuelve que los participantes (la web online y el backoffice privado) no tengan que estar presentes en el intercambio: el backoffice puede reconectar m\u00e1s tarde para procesar todos los mensajes que tenga pendiente (y en el orden en el que fueron enviados).<\/p>\n<p style=\"text-align: justify;\">Durante este art\u00edculo hemos podido trabajar distintos aspectos del protocolo MQTT, la plataforma\u00a0<a href=\"https:\/\/myqtthub.com\/\">Cloud MQTT MyQttHub.com<\/a>\u00a0y las distintas caracter\u00edsticas de dispositivos, reenv\u00edo y almacenamiento duradero (Stashing).<\/p>\n<h2 style=\"text-align: justify;\">Referencias<\/h2>\n<ol class=\"nodots\">\n<li style=\"text-align: justify;\">[1]\u00a0<a href=\"https:\/\/mqtt.org\/\">https:\/\/mqtt.org<\/a>\u00a0: MQTT est\u00e1ndar abierto para la IoT.<\/li>\n<li style=\"text-align: justify;\">[2]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/gestionando-y-usando-el-stashing-de-myqtthub-almacenando-mensajes-mqtt-encajando-con-ciertos-filtros\">https:\/\/support.asplhosting.com\/t\/gestionando-y-usando-el-stashing-de-myqtthub-almacenando-mensajes-mqtt-encajando-con-ciertos-filtros<\/a>\u00a0: Stashing MQTT, almacenamiento ordenado y duradero.<\/li>\n<li style=\"text-align: justify;\">[3]\u00a0<a href=\"https:\/\/es.wikipedia.org\/wiki\/Acoplamiento_(inform%C3%A1tica)\">https:\/\/es.wikipedia.org\/wiki\/Acoplamiento_(inform%C3%A1tica)<\/a>\u00a0: Bajo acoplamiento (t\u00e9rmino inform\u00e1tico)<\/li>\n<li style=\"text-align: justify;\">[4]\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Publish%E2%80%93subscribe_pattern\">https:\/\/en.wikipedia.org\/wiki\/Publish%E2%80%93subscribe_pattern<\/a>\u00a0: Patr\u00f3n PUBLISH-SUBSCRIBE para el intercambio de mensajes.<\/li>\n<li style=\"text-align: justify;\">[5]\u00a0<a href=\"http:\/\/www.steves-internet-guide.com\/mqtt-hosting-brokers-and-servers\/\">http:\/\/www.steves-internet-guide.com\/mqtt-hosting-brokers-and-servers\/<\/a><\/li>\n<li style=\"text-align: justify;\">[6]\u00a0<a href=\"https:\/\/github.com\/mqtt\/mqtt.github.io\/wiki\/brokers\">https:\/\/github.com\/mqtt\/mqtt.github.io\/wiki\/brokers<\/a><\/li>\n<li style=\"text-align: justify;\">[7]\u00a0<a href=\"https:\/\/myqtthub.com\/\">MyQttHub.com<\/a>\u00a0: Plataforma Cloud MQTT<\/li>\n<li style=\"text-align: justify;\">[8]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/como-crear-tu-cuenta-myqtthub-com-open\/29\">https:\/\/support.asplhosting.com\/t\/como-crear-tu-cuenta-myqtthub-com-open<\/a><\/li>\n<li style=\"text-align: justify;\">[9]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/myqttsatellite-cliente-mqtt-para-mapear-mensajes-a-comandos\/164#heading--como-instalar\">MyQttSatellite: cliente MQTT para mapear mensajes a comandos<\/a><\/li>\n<li style=\"text-align: justify;\">[10]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/myqttsatellite-cliente-mqtt-para-mapear-mensajes-a-comandos\/164#heading--como-generar-respuestas\">C\u00f3mo generar respuestas MQTT con MyQttSatellite: uso de la cabecera X-Publish-Reply-To-Topic<\/a><\/li>\n<li style=\"text-align: justify;\">[11]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/como-publicar-mensajes-mqtt-usando-la-interfaz-web-myqtthub\/167\">C\u00f3mo publicar mensajes MQTT desde la interfaz Web MyQtthub.com<\/a><\/li>\n<li style=\"text-align: justify;\">[12]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/rest-api-to-manage-myqtthub-service\/86\">API REST HTTPS de MyQttHub.com<\/a><\/li>\n<li style=\"text-align: justify;\">[13]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/como-crear-y-gestionar-dispositivos-mqtt-con-myqtthub-com\/31\">C\u00f3mo gestionar dispositivos MQTT con MyQttHub.com<\/a><\/li>\n<li style=\"text-align: justify;\">[14]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/conectando-con-varios-dispositivos-usando-las-mismas-credenciales-o-como-evitar-el-connection-replace-de-mqtt\/38\">C\u00f3mo configurar Skip Connection Replace<\/a><\/li>\n<li style=\"text-align: justify;\">[15]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/how-to-use-https-api-rest-with-python-httplib\/48\">Usando el API REST de MyQttHub.com con python (httplib)<\/a><\/li>\n<li style=\"text-align: justify;\">[16]\u00a0<a href=\"https:\/\/support.asplhosting.com\/t\/descargando-un-stash-usando-json-csv-excel-o-formato-xml-con-myqtthub\/98\">Descarga de mensajes MQTT almacenados en un Stash<\/a><\/li>\n<\/ol>\n<pre><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>ACTUALIZACI\u00d3N: \u00a1El pr\u00f3ximo jueves 15 de abril del 2021 no te pierdas el CMS\/DXP Day de la serie de eventos virtuales OpenExpo Business Live! Si quieres saber qu\u00e9 herramienta de gesti\u00f3n de contenidos y experiencia de usuario es la m\u00e1s adecuada para la transici\u00f3n digital de tu empresa, qu\u00e9 preguntas tienes que hacerte para elegirla,&#8230; <\/p>\n<div class=\"clear\"><\/div>\n<p><a href=\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\" class=\"gdlr-info-font excerpt-read-more\">Read More<\/a><\/p>\n","protected":false},"author":34,"featured_media":48628,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7,178],"tags":[709,708,710,711],"class_list":["post-48617","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-news-article","category-profesionales-open-source","tag-backoffice","tag-base-de-datos","tag-mqtt","tag-venta-online"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.8.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MQTT para conectar una web online con un backoffice remoto - ASPL - OpenExpo Europe 2025<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MQTT para conectar una web online con un backoffice remoto - ASPL - OpenExpo Europe 2025\" \/>\n<meta property=\"og:description\" content=\"ACTUALIZACI\u00d3N: \u00a1El pr\u00f3ximo jueves 15 de abril del 2021 no te pierdas el CMS\/DXP Day de la serie de eventos virtuales OpenExpo Business Live! Si quieres saber qu\u00e9 herramienta de gesti\u00f3n de contenidos y experiencia de usuario es la m\u00e1s adecuada para la transici\u00f3n digital de tu empresa, qu\u00e9 preguntas tienes que hacerte para elegirla,... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\" \/>\n<meta property=\"og:site_name\" content=\"OpenExpo Europe 2025\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/OpenExpoEurope\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-02T14:14:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-29T15:05:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"875\" \/>\n\t<meta property=\"og:image:height\" content=\"619\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Aspl Hosting\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@openexpoeurope\" \/>\n<meta name=\"twitter:site\" content=\"@openexpoeurope\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aspl Hosting\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\"},\"author\":{\"name\":\"Aspl Hosting\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/#\/schema\/person\/3129d84082a646d42738f2ec70f19187\"},\"headline\":\"MQTT para conectar una web online con un backoffice remoto &#8211; ASPL\",\"datePublished\":\"2019-04-02T14:14:14+00:00\",\"dateModified\":\"2021-03-29T15:05:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\"},\"wordCount\":2737,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg\",\"keywords\":[\"Backoffice\",\"Base de datos\",\"MQTT\",\"Venta online\"],\"articleSection\":[\"Blog\",\"News Article\",\"Profesionales open source\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\",\"url\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\",\"name\":\"MQTT para conectar una web online con un backoffice remoto - ASPL - OpenExpo Europe 2025\",\"isPartOf\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg\",\"datePublished\":\"2019-04-02T14:14:14+00:00\",\"dateModified\":\"2021-03-29T15:05:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage\",\"url\":\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg\",\"contentUrl\":\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg\",\"width\":875,\"height\":619},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/openexpoeurope.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MQTT para conectar una web online con un backoffice remoto &#8211; ASPL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/#website\",\"url\":\"https:\/\/openexpoeurope.com\/es\/\",\"name\":\"OpenExpo Europe 2025\",\"description\":\"OpenExpo Europe 2025 - Innovaci\u00f3n, Transformaci\u00f3n Digital y Open Source\",\"publisher\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/openexpoeurope.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/#organization\",\"name\":\"OpenExpo Europe\",\"url\":\"https:\/\/openexpoeurope.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2018\/10\/csm_logo-open-expo-europe_01a0785240.png\",\"contentUrl\":\"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2018\/10\/csm_logo-open-expo-europe_01a0785240.png\",\"width\":1024,\"height\":1024,\"caption\":\"OpenExpo Europe\"},\"image\":{\"@id\":\"https:\/\/openexpoeurope.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/OpenExpoEurope\/\",\"https:\/\/x.com\/openexpoeurope\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/#\/schema\/person\/3129d84082a646d42738f2ec70f19187\",\"name\":\"Aspl Hosting\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/openexpoeurope.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a7ce79529c00c69b637e81e471ad9a06f75477913e113e85ac91452d82faaf79?s=96&d=wp_user_avatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a7ce79529c00c69b637e81e471ad9a06f75477913e113e85ac91452d82faaf79?s=96&d=wp_user_avatar&r=g\",\"caption\":\"Aspl Hosting\"},\"description\":\"Fundada en noviembre de 2000 por ingenieros de la Facultad de inform\u00e1tica de la Universidad Polit\u00e9cnica de Madrid, Advanced Software Production Line, S.L. desarrolla software multiplataforma, apostando por el sistema operativo GNU\/Linux, y proporciona servicios de instalaci\u00f3n y soporte para este sistema. Se encuentra emplazada en Alcal\u00e1 de Henares (Madrid, Espa\u00f1a).\",\"url\":\"https:\/\/openexpoeurope.com\/es\/author\/aspl-hosting\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MQTT para conectar una web online con un backoffice remoto - ASPL - OpenExpo Europe 2025","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/","og_locale":"es_ES","og_type":"article","og_title":"MQTT para conectar una web online con un backoffice remoto - ASPL - OpenExpo Europe 2025","og_description":"ACTUALIZACI\u00d3N: \u00a1El pr\u00f3ximo jueves 15 de abril del 2021 no te pierdas el CMS\/DXP Day de la serie de eventos virtuales OpenExpo Business Live! Si quieres saber qu\u00e9 herramienta de gesti\u00f3n de contenidos y experiencia de usuario es la m\u00e1s adecuada para la transici\u00f3n digital de tu empresa, qu\u00e9 preguntas tienes que hacerte para elegirla,... Read More","og_url":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/","og_site_name":"OpenExpo Europe 2025","article_publisher":"https:\/\/www.facebook.com\/OpenExpoEurope\/","article_published_time":"2019-04-02T14:14:14+00:00","article_modified_time":"2021-03-29T15:05:25+00:00","og_image":[{"width":875,"height":619,"url":"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg","type":"image\/jpeg"}],"author":"Aspl Hosting","twitter_card":"summary_large_image","twitter_creator":"@openexpoeurope","twitter_site":"@openexpoeurope","twitter_misc":{"Escrito por":"Aspl Hosting","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#article","isPartOf":{"@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/"},"author":{"name":"Aspl Hosting","@id":"https:\/\/openexpoeurope.com\/es\/#\/schema\/person\/3129d84082a646d42738f2ec70f19187"},"headline":"MQTT para conectar una web online con un backoffice remoto &#8211; ASPL","datePublished":"2019-04-02T14:14:14+00:00","dateModified":"2021-03-29T15:05:25+00:00","mainEntityOfPage":{"@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/"},"wordCount":2737,"commentCount":0,"publisher":{"@id":"https:\/\/openexpoeurope.com\/es\/#organization"},"image":{"@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage"},"thumbnailUrl":"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg","keywords":["Backoffice","Base de datos","MQTT","Venta online"],"articleSection":["Blog","News Article","Profesionales open source"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/","url":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/","name":"MQTT para conectar una web online con un backoffice remoto - ASPL - OpenExpo Europe 2025","isPartOf":{"@id":"https:\/\/openexpoeurope.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage"},"image":{"@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage"},"thumbnailUrl":"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg","datePublished":"2019-04-02T14:14:14+00:00","dateModified":"2021-03-29T15:05:25+00:00","breadcrumb":{"@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#primaryimage","url":"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg","contentUrl":"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2019\/04\/comercio.jpg","width":875,"height":619},{"@type":"BreadcrumbList","@id":"https:\/\/openexpoeurope.com\/es\/mqtt-para-conectar-una-web-online-con-un-backoffice-remoto-aspl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/openexpoeurope.com\/es\/"},{"@type":"ListItem","position":2,"name":"MQTT para conectar una web online con un backoffice remoto &#8211; ASPL"}]},{"@type":"WebSite","@id":"https:\/\/openexpoeurope.com\/es\/#website","url":"https:\/\/openexpoeurope.com\/es\/","name":"OpenExpo Europe 2025","description":"OpenExpo Europe 2025 - Innovaci\u00f3n, Transformaci\u00f3n Digital y Open Source","publisher":{"@id":"https:\/\/openexpoeurope.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/openexpoeurope.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/openexpoeurope.com\/es\/#organization","name":"OpenExpo Europe","url":"https:\/\/openexpoeurope.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/openexpoeurope.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2018\/10\/csm_logo-open-expo-europe_01a0785240.png","contentUrl":"https:\/\/openexpoeurope.com\/wp-content\/uploads\/2018\/10\/csm_logo-open-expo-europe_01a0785240.png","width":1024,"height":1024,"caption":"OpenExpo Europe"},"image":{"@id":"https:\/\/openexpoeurope.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/OpenExpoEurope\/","https:\/\/x.com\/openexpoeurope"]},{"@type":"Person","@id":"https:\/\/openexpoeurope.com\/es\/#\/schema\/person\/3129d84082a646d42738f2ec70f19187","name":"Aspl Hosting","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/openexpoeurope.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a7ce79529c00c69b637e81e471ad9a06f75477913e113e85ac91452d82faaf79?s=96&d=wp_user_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a7ce79529c00c69b637e81e471ad9a06f75477913e113e85ac91452d82faaf79?s=96&d=wp_user_avatar&r=g","caption":"Aspl Hosting"},"description":"Fundada en noviembre de 2000 por ingenieros de la Facultad de inform\u00e1tica de la Universidad Polit\u00e9cnica de Madrid, Advanced Software Production Line, S.L. desarrolla software multiplataforma, apostando por el sistema operativo GNU\/Linux, y proporciona servicios de instalaci\u00f3n y soporte para este sistema. Se encuentra emplazada en Alcal\u00e1 de Henares (Madrid, Espa\u00f1a).","url":"https:\/\/openexpoeurope.com\/es\/author\/aspl-hosting\/"}]}},"_links":{"self":[{"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/posts\/48617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/comments?post=48617"}],"version-history":[{"count":0,"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/posts\/48617\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/media\/48628"}],"wp:attachment":[{"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/media?parent=48617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/categories?post=48617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/openexpoeurope.com\/es\/wp-json\/wp\/v2\/tags?post=48617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}