el...el 4 m c mqtt es un protocolo de conectividad de internet de las cosas, m2m máquina a...

39
MARGIE'S TRAVEL 1 M í

Upload: others

Post on 28-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

MA

RG

IE'S

TR

AV

EL

1

M

í

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

15

M

MA

RG

IE'S

TR

AV

EL

16

M

DATACENTERS

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

22

MUsos de QT

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

27

M

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

30

M

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

32

M

MA

RG

IE'S

TR

AV

EL

33

M

FRAMEWORK enC++

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.