el...el 4 m c mqtt es un protocolo de conectividad de internet de las cosas, m2m máquina a...
TRANSCRIPT
MA
RG
IE'S
TR
AV
EL
2
M J o s e l y n e A n d r a m u ñ o – J o h n n y A l v a r e z
Funcionamiento del protocolo MQTT
MA
RG
IE'S
TR
AV
EL
3
M
MQTT
c
MQTT (Message Queue TelemetryTransport) es un protocolo detransporte de mensajesCliente/Servidor basado enpublicaciones y subscripciones a losdenominados "tópicos". Cada vezque un mensaje es publicado serárecibido por el resto de dispositivosadheridos a un tópico del protocolo.
MA
RG
IE'S
TR
AV
EL
4
M
c
MQTT es un protocolo de conectividad de Internet de las Cosas, M2M máquina a
máquina. Es un modelo de comunicación de publicación / suscripción
extremadamente liviano, útil para conexiones en ubicaciones remotas.
Protocolo ligero, abierto, simple y fácil de implementar es adecuado para entornos
restringidos y aplicable en contextos M2M e IoT. Las herramientas MQTT tienen una
huella de código mínima y permiten un uso óptimo del ancho de banda. Se ejecuta
en TCP de forma predeterminada, pero se puede ejecutar en cualquier protocolo
bidireccional ordenado y sin pérdidas.
Los nodos MQTT se comunican en un modelo de mapeo de uno a muchos, donde
un mensaje enviado por un cliente (el editor) se entrega a muchos clientes
(suscriptores) a través de nombres de temas. Los mensajes se intercambian a través
de un nodo central conocido como el intermediario.
MA
RG
IE'S
TR
AV
EL
5
M
MQTT
c
MQTT (Message Queue TelemetryTransport) es un protocolo detransporte de mensajesCliente/Servidor basado enpublicaciones y subscripciones a losdenominados "tópicos". Cada vezque un mensaje es publicado serárecibido por el resto de dispositivosadheridos a un tópico del protocolo.
MA
RG
IE'S
TR
AV
EL
6
M
Características del MQTT
El protocolo MQTT funciona sobre TCP/IP o
sobre otros protocolos de red con soporte bi-
direccional y sin pérdidas de datos.
Uso de mensajes “broadcast” para subscripción y
publicación de datos con independencia de la
aplicación.
Transporte de mensajes transparente y con un
flujo de datos optimizado lo cual permite reducir
el tráfico en la red.
c
MA
RG
IE'S
TR
AV
EL
7
M
Define tres calidades de
servicio:
«A lo sumo una vez», es
básicamente el protocolo
TCP pero con pérdida de
mensajes.
«Al menos una», donde la
llegada de los mensajes
está asegurada pero
considerando duplicidades.
«Exactamente una vez»,
dónde la llegada de los
mensajes está asegurada
exactamente una vez.
c
MA
RG
IE'S
TR
AV
EL
8
M
Funcionamiento del MQTT
Es un servicio
de mensajería
push con
patrón
publicador/susc
riptor
Los mensajes
pueden ser
filtrados por
topicos
Un cliente
puede publicar
un mensaje en
un
determinado
topic
El cliente inicia
una
comunicación
TCP/IP con el
broker
Esta conexión
se mantiene
abierta hasta
que el cliente
la finaliza
MA
RG
IE'S
TR
AV
EL
9
M
Funcionamiento del MQTT
Para ello el cliente envía un mensaje CONNECT que contiene informaciónnecesaria (nombre de usuario, contraseña, client-id…). El broker respondecon un mensaje CONNACK, que contiene el resultado de la conexión(aceptada, rechazada, etc).
MA
RG
IE'S
TR
AV
EL
10
M
Funcionamiento del MQTT
Para enviar los mensajes elcliente emplea mensajesPUBLISH, que contienenel topic y el payload.
Para suscribirse y
desuscribirse se emplean
mensajes SUBSCRIBE y
UNSUSCRIBE, que el
servidor responde con
SUBACK y UNSUBACK.
MA
RG
IE'S
TR
AV
EL
11
M
QoSEl MQTT lleva integrada en modo nativola noción de QoS (Quality of Service,calidad de servicio).
Admite 3 niveles de QoS, especificadospor cada mensaje publicado y mientras lossuscriptores se conectan.
✓Un mensaje de QoS nivel 0 at mostonce se entregará como mucho una vez.
✓Un mensaje de QoS nivel 1 at leastonce se entregará al menos una vez.
✓Un mensaje de QoS nivel 2 exactlyonce será obligatoriamente guardadopor el emisor, que lo transmitirá siempreque el receptor no confirme su envío ala red.
MA
RG
IE'S
TR
AV
EL
12
M
Estructura de un Mensaje MQTT• Cabecera fija. Ocupa 2 a 5 bytes, obligatorio.
• Cabecera variable. Opcional, contiene información adicional que esnecesaria en ciertos mensajes o situaciones.
• Contenido(payload). Es el contenido real del mensaje. Puede tener unmáximo de 256 Mb aunque en implementaciones reales el máximo es de 2a 4 kB.
El 1° byte del encabezado comprende un tipo de paquete de 4 bits y algunos indicadores
conocidos como indicadores del encabezado. El 2° byte en adelante representa la longitud
restante que cubre el encabezado opcional y la carga útil, excluyendo el encabezado fijo.
MA
RG
IE'S
TR
AV
EL
13
M
Agentes de MQTT Los clientes de MQTT intercambian mensajes a través del nodo de agente. El
agente no es idéntico a un servidor típico, ya que, aparte de la recepción y
entrega de mensajes, tiene poca funcionalidad. Para funcionalidades adicionales
como registro, persistencia de mensajes, visualización, análisis, integración web,
etc., se deben considerar suscriptores adicionales o desarrollar complementos
para el agente.
Mosquitto es un proyecto Eclipse IOT, implementación de intermediario ligero
escrita en C y es compatible con las versiones de protocolo MQTT 3.1 y 3.1.1.
Para construir Mosquitto, instale la dependencia libcares-devel.
Descargue Mosquitto-1.4.9.tar.gz (o cualquier versión estable reciente) desde
https://mosquitto.org/download/
MA
RG
IE'S
TR
AV
EL
14
M
Ventajas de MQTT
• Ventajas del patrón pub/sub:escalabilidad, asincronismo,desacomplamiento entre clientes
• Sencillez y ligereza
• Adecuado para aplicaciones IoT
• Menor consumo de energía
• Requiere un ancho de banda mínimo
• Da seguridad y calidad delservicio (QoS)
• Aporta robustez y fiabilidad
MA
RG
IE'S
TR
AV
EL
17
M
Características de los Datacenter II, III y IV
• Algunos de los principales aspectos que sedeben considerar para conseguir un datacenter eficiente y rentable son:
• El tipo de cuarto por construir,
• El equipamiento informático que se albergará,
• El cálculo de refrigeración necesaria,
• El cálculo de potencia requerida,
• La conectividad, la ubicación del sitio y lossistemas de seguridad y control
MA
RG
IE'S
TR
AV
EL
18
M
Datacenter TIER II: Centro
de datos Redundante
• Tiene suelos elevados, generadores auxiliares o UPS.
• Conectados a una única línea de distribución eléctrica y de refrigeración.
• Se trata por tanto de instalaciones con cierto grado de tolerancia a fallos y que permiten algunas operaciones de mantenimiento “online”.
• Disponibilidad del 99.741%.
MA
RG
IE'S
TR
AV
EL
19
M
DatacenterTIER III:Centro de datos Concurrentemente
Mantenibles
• Tiene niveles importantes detolerancia a fallos
• Todos los servidores deben contarcon doble fuente (idealmente) y enprincipio el Datacenter no requiereparadas para operaciones demantenimiento básicas.
• Es requisito también que puedarealizar el upgrade a TIER IV sininterrupción de servicio.
• Disponibilidad del 99.982%.
MA
RG
IE'S
TR
AV
EL
20
M
Datacenter TIER IV: Centro
de datos Tolerante a fallos
• Soporta fallos en cualquier de sus componentes que inhabilite una línea.
• Conectados múltiples líneas de distribución eléctrica y de refrigeración con múltiples componentes redundantes
• Disponibilidad del 99.995%.
MA
RG
IE'S
TR
AV
EL
21
M
Características principales en función de la clasificación TIER-Resumen
MA
RG
IE'S
TR
AV
EL
23
M
QTQt es un framework de
desarrollo de aplicaciones
multiplataforma para
desktop, embebido y móvil.
Las plataformas
soportadas incluyen Linux,
OS X, Windows, VxWorks,
QNX, Android, iOS,
BlackBerry, Sailfish OS y
otros.
MA
RG
IE'S
TR
AV
EL
24
M
Licencia
Qt está disponible bajo variaslicencias: La Compañia Qt vendelicencias comerciales, pero Qttambién está disponible comosoftware libre bajo varias versionesde la GPL y LGPL (Licensing FAQ).
MA
RG
IE'S
TR
AV
EL
25
M
IDE
• Qt viene con su propio entorno dedesarrollo integrado (IDE), llamado QtCreator. Se ejecuta en Linux, OS X yWindows y ofrece finalización decódigo inteligente, resaltado desintaxis, un sistema de ayudaintegrado, depurador y la integraciónde profiler y también la integración detodos los principales sistemas decontrol de versiones
MA
RG
IE'S
TR
AV
EL
26
M
Widgets
Con Qt, las GUI se pueden escribirdirectamente en C++ usando sumódulo Widgets. Qt también vienecon una herramienta gráficainteractiva llamada Qt Designerque funciona como un generadorde código para las GUI basadas enWidgets.
MA
RG
IE'S
TR
AV
EL
28
M
Implementación de Plataforma Móvil usando QT y Open CV para imagen aplicaciones de procesamiento
• Teléfono inteligente con capacidadesaltamente informáticas y baja potencia deprocesamiento. Logrando en tiempo reallas rutinas de procesamiento de imágenescomo convolución, umbrales, detecciónde bordes
• Para resolver el problema que enfrentanlas aplicaciones de procesamiento deimágenes en teléfonos móviles un nuevoentorno de aplicación será desarrollado
MA
RG
IE'S
TR
AV
EL
29
M
La primera parte de este documento propone
una estrategia de colocación basada en
almacenamiento tolerante a fallas.
En la segunda parte de este documento,
diseñamos una política de programación de
acceso a datos basada en colas de prioridad para
mejorar la eficiencia del acceso a los datos al
implementar la codificación de red en las redes de
centros de datos.
Los resultados de la simulación muestran que la
política de programación de colas de prioridad
propuesta puede lograr una baja demora al
reducir el número de servidores congelados.
Almacenamiento tolerante a fallos y optimización de acceso a datos en redes de centros de datos
MA
RG
IE'S
TR
AV
EL
31
M
Llevando MQTT y NodeMcu a IOT: Comunicación del Internet de las cosas
• Este artículo presenta diferentes modelos deservicio para la comunicación en Internet delas cosas (IoT). El Modelo A presenta el usode USB en serie como medio de transmisión,mientras que el Modelo B utiliza el protocolode transporte de telemetría (MQTT) deMessage Queue Server, que implementa unmódulo Wi-Fi (ESP8266-12) para conectar elsistema a Internet. Para la comunicación, seutiliza el concepto de editor y suscriptor. Losmensajes se publican o se suscriben con laayuda de un intermediario o servidor. Esteagente se encarga de dispersar los mensajes alos clientes intencionados según la eleccióndel tema de un mensaje.
MA
RG
IE'S
TR
AV
EL
34
M
Framework en C ++
• ¿Qué es un IDE?
• En definitiva un IDE es másque un simple editor detexto, es una suite decomponentes o módulos quepermiten no solo escribircódigo fuente, sino tambiéngenerar con él un programaejecutable
MA
RG
IE'S
TR
AV
EL
35
M
Mejores IDE para programar en C y C++
Dev-C++: Este emplea elcompilador MinGW. Setrata de un software libre,sencillo, ligero y eficiente,para la plataformaWindows.
MA
RG
IE'S
TR
AV
EL
36
M
Code::Blocks
Este es un software libre,multiplataforma. Code Blockses una alternativa a Dev-C++y desarrollada mediante elpropio lenguaje C++. Suscapacidades son bastantebuenas y es muy popularentre los nuevosprogramadores.
MA
RG
IE'S
TR
AV
EL
37
M
MonoDevelop
Esta es una alternativa aVisual Studio, pero esteIDE es multiplataformay de software libre.Posee un editor deinterfaces gráficas queimplementa la bibliotecaGTK y es compatiblecon el .Net Frameworkde Microsoft.
MA
RG
IE'S
TR
AV
EL
38
M
IDE para Mac
Xcode: Este es uno de los mejores IDE para programar en Mac con el compilador GCC e Interface Builder.
MA
RG
IE'S
TR
AV
EL
39
M
IDE para Linux
KDevelop: Este software dedesarrollo está destinadoexclusivamente para laplataforma GNU/Linux y otrossistemas Unix. No cuenta con uncompilador propio por lo querequiere de su integración conGCC.