Para poder encarar el robot y OTE vamos a necesitar profundizar conocimiento y entendimiento sobre cómo
funciona QTTF y sobretodo cómo se organizan esto de los tópicos sub tópicos.
Hay mucha tela para cortar.
Esto es algo que vemos a un alto nivel se podría decir de complejidad en nuestro yo The Master Class.
Entonces les traigo aquí de ese curso un condensado en una versión resumida de cómo funcionan los tópicos
de M QTTF así que vamos con el video todos los días utilizamos protocolos de comunicación cada vez que
accedemos a internet algunos son más complejos algunos más seguros pero tenemos que solventar un gran
dilema cuando de Internet de las cosas se trata porque no son tan económicos a veces estos dispositivos
que nos permiten crear muchísimos ofrecerlos a muy bajo costo y eso va a hacer de que tarde o temprano
si no cuidamos cuánta información y cómo circula por la red las cosas pueden colapsar.
Necesitamos un protocolo muy eficiente una manera de transmitir datos liviana entonces de entre todos
los protocolos que existen vamos a utilizar M€ QTTF.
Hoy en día creo que es el predilecto a la hora de hacer y o té creado hace varios años por B.M. para
solventar un problema que tenían a la hora de hacer radiocomunicación entre sensores instalados en oleoductos
y módems satelitales.
Querían hacer comunicaciones satelitales y esto es un gran cuello de botella porque las comunicaciones
satelitales son costosas y además lentas.
Entonces había que ser bastantes escuetos a la hora de transmitir información M QTTF tienen numerosas
ventajas.
Aquí vemos un bróker M QTTF o sea un servidor un intermediario este intermediario comunicará hará que
fluya la información entre aplicaciones web hacia aplicaciones móviles o desde aplicación web hacia
dispositivos o por qué no de dispositivos hacia las aplicaciones móviles guapu o aplicaciones web.
Incluso esto es un gráfico simplificado aquí podría haber más dispositivos y los dispositivos compartir
información entre sí vamos a la próxima diapositiva para ver que por lo general usamos M QTTF para hacer
telemetría casas inteligentes ciudades inteligentes se viene el 5G aplicaciones de chat comunicación
entre aplicaciones.
No nos cerremos a que el mundo y OTE es lo único que va a usar M QTTF para mí como desarrollador utilizarme
QTTF para una aplicación de mensajería o alguna red social puede ser me puede ser de mucha utilidad
servicios de notificación cada vez que nos llega una alerta o una aplicación lo podría hacer tranquilamente
a través de QTTF y ya vamos a ver por qué es tan práctico usarlo.
Aprovecho la ocasión para agradecer a todos los que están confiando en nuestro OTE Master Class un curso
donde ya somos muchísimas personas y esto sigue creciendo y ahora no solamente puedes ver el trailer
sino que ya empezás a ver o vas a poder empezar a ver los comentarios y las reseñas que están apareciendo
de nuestro curso.
Estamos muy contentos así que ya sabes Link en la descripción no te quedes afuera
miren esta nueva manera de presentar los gráficos es una manera en la que por lo general se le encuentra
en internet pero a mí me gusta más esta me parece que es más democrática porque ya se vamos a utilizar
esta forma de representarlo.
Por razones didácticas o de espacio me es más fácil poner carteles etc. pero digo que este es más democrática
porque aquí veo el dispositivo a la misma altura que o con la misma importancia que una aplicación web
y eso está bien que suceda en el mundo del té y poco a poco tendemos a pensar o a sentir que los dispositivos
son de menor jerarquía que las aplicaciones web o las aplicaciones móviles.
Claro está que la mayoría de los casos los dispositivos serán cosas más sencillas a la hora de programación
no siempre pero esto puede ser engañoso porque recuerden un dispositivo también puede solicitar información
puede enviarla y no siempre va a estar mandando.
El caso típico mandando información desde el dispositivo hacia la aplicación web.
Las cosas en este mundo del diote no siempre son tan aburridas a veces hay dispositivos hablando entre
sí y aplicaciones hablando entre sí así que mucho cuidado con eso vamos a seguir con esta modalidad
de representar un bróker y sus allegados tanto un dispositivo o una aplicación web o una aplicación
móvil son clientes así los vamos a llamar y por eso digo miren son todos iguales no me importa si es
dispositivo o aplicación web.
Aquí no existe el concepto y es un concepto bastante peculiar y frecuente en arruino de master y esclavo.
Hay uno que manda y hay uno que obedece.
Eso aquí no va a suceder.
M QTTF utiliza un paradigma de suscripción publicación cualquiera de los clientes puede suscribirse
a determinados tópicos o temas.
Cuando alguien hable sobre ese tema este dispositivo lo recibirá.
Hablo de dispositivo por hablar de un cliente.
Lo que estoy explicando se aplica a cualquiera de los clientes sean lo que sea dispositivo o aplicación
no importa cualquiera de ellos también va a poder publicar sobre un tópico.
Entonces va a emitir información bajo determinado tema aquí es donde aparece la importancia del broker
el bróker es quien va a registrar quién se ha suscrito a qué temas y quién está publicando sobre tal
o cual tema.
El broker recibir esos datos y se los entregará a quienes sean que se serán suscrito sigamos avanzando
con la próxima diapositiva
me QTTF tiene una característica que creo que es una de las más importantes y las solemos llamar desacoples.
Por eso hemos desconectado todo para representarlo de alguna manera un desacople tridimensional complejo
que suena pero no es tan complejo.
Miren de qué se trata el desacople tridimensional y los llamamos así porque estamos hablando de un desacople
en espacio tiempo y sincronización vamos uno por uno en espacio porque el publicador quien fuere que
sea y el suscriptor no tienen por qué conocerse el publicador no da por sentado ni siquiera que exista
alguien esperando su publicación.
Lo mismo pasa con el suscriptor el suscriptor se suscribe a un tema sin siquiera saber si hay alguien
que esté hablando sobre ese tema.
Entonces eso quiere decir desacople en espacio muchos otros protocolos sólo pueden emitir.
Si yo ya sé a quién le voy a emitir me explico yo digo emito este mensaje desde mi posición hacia quien
hacia fulano de tal si no tengo esa dirección a donde va mi información no puedo emitir el mensaje.
Esto no sucede con M QTTF yo agarro este canal que es mi tópico un tema y digo envío esta información
bajo este tema.
Si hay alguien que la quiere escuchar pues la escuchará luego hay desacople en el tiempo porque en algunos
casos no tienen que coincidir temporalmente.
Yo puedo hacer una publicación sobre un tema y ya vamos a ver cómo hay maneras especiales para que esa
información que publiqué bajo determinado tópico se ha recibido por un suscriptor.
En otro momento no necesariamente en tiempo real más allá de que me QTTF tiene predilección por el tiempo
real ya les pido un poquito un poquito de paciencia ya vamos a llegar a algunos detalles para que entiendan
más por otro lado sincronizacion no necesitamos sincronización tanto aplicaciones dispositivos o sea
clientes como Brooker no se bloquean mientras están publicando o recibiendo no quedan trabados hasta
que hasta que llegue ese mensaje sino que puedan realizar otras tareas hasta recibir o emitir un mensaje
entonces podemos decir que un cliente sin importar la tarea que desempeñe puede realizar algunas acciones
básicas vamos a ir viendo estas acciones una es y creo que es la más básica de todas conectarse al broker
al servidor de QTTF otra es publicar un mensaje que como ya estuvimos adelantando los mensajes se publican
a través de un tópico.
Ese mensaje puede ser una temperatura una oración o incluso pueden ser muchos valores que yo me encargo
de codificar de cierta manera en un solo mensaje Puedo enviar tranquilamente por ejemplo temperatura
con la humedad coma presión.
Esas tres cosas en un solo mensaje.
Total en teoría mi receptor de alguna manera tendría que saber en qué orden llegan cada uno de estos
valores bien.
Un cliente también va a poder suscribirse a esta altura ya lo tenemos claro.
En definitiva es decir bueno cualquiera que esté hablando sobre tal tópico yo quiero recibir esa información.
Eso es suscribirme a un tópico así como me suscribo a un boletín Letter a un diario y por último de
suscribirme puedo decir en cierto momento ya no quiero escuchar más cuando se hable de tal o cual cosa.
Así como lo dijo en la vida real pasa aquí también me suscribo de determinado tópico y por ende ya no
voy a recibir más los mensajes que se emitan bajo ese tema decíamos que un cliente puede suscribirse
a un tópico o emitir mensajes bajo un tema o tópico pero exactamente qué son cómo funcionan cómo se
organizan entonces qué mejor que ver esto con un ejemplo práctico vamos a pensar que una fábrica textil
nos contrata para que llevemos adelante un proyecto y OTE a donde esta fábrica tiene dos edificios vamos
a decir que son dos plantas de producción y como las telas que hoy manejan son tan finas y delicadas
necesitan medir y tener controlada tanto temperatura como humedad en todos los pisos de cada uno de
estos edificios.
Por eso es que tenemos edificio a edificio Be
en esta fábrica vamos.
Para solventar este problema y procedemos a instalar en cada piso un dispositivo.
Cómo ven la diferencia se encuentra en los dispositivos que instalamos en planta baja donde además de
temperatura y humedad medimos la tensión supondremos que esto la tensión de la red.
Me refiero de la red eléctrica porque lo medimos en planta baja porque ahí se encuentra el tablero de
ingreso de la fábrica y esto fue una petición especial del ingeniero de la fábrica para que podamos
tener un control y sobre todo el gerente de la fábrica pueda tener un control de los posibles cortes
de energía.
Entonces luego en los otros pisos el dispositivo es diferente porque solamente mide humedad y temperatura
y la idea es enviar estos datos a un servidor y acumularlos para posterior análisis bien entonces vamos
a encarar el tema de los tópicos vamos a evaluar por ejemplo qué o cómo funciona cómo funciona el dispositivo
que colocamos en el piso 2 que claramente ha de tener un sensor de temperatura y un sensor de humedad.
En el caso de que este sensor necesite enviar la temperatura lo que va a hacer es transmitir ese dato
bajo un tópico
entonces yo debo pensar en cómo estructurar estos tópicos para darle un sentido de orden y que después
resulte fácil recibir y separar cada uno de los valores de dónde proviene quién lo envió veamos cómo
lo podemos hacer vamos a decir entonces que piso 2.
Este dispositivo envía el dato de temperatura bajo el tópico general fábrica textil bajo el subtrópico
edificio a..
De esa manera ya sabemos desde dónde proviene ese mensaje piso 2 esto es otro su tópico y por último
viene el tópico propiamente dicho temperatura temp lo hemos llamado aquí
entonces como podemos ver luego de temperatura enviamos adosado este tópico el valor propiamente dicho
por otra parte ya sea un programa o una aplicación algo que esté funcionando en nuestro servidor se
va a suscribir a fábrica textil barra edificio a Barra pisos barra Temp.
Esto va a ser que reciba entonces el 20 que envió pisados.
Entonces si yo me suscribo a este tópico que tengo aquí fábrica textil subtrópico edificio a subtrópico
pisos tópico temp qué valor vamos a recibir.
Aquí está iluminado en amarillo solo la temperatura del piso 2.
Sigamos avanzando ahora qué pasa si yo pongo solamente piso 2 como lo ven aquí.
Fábrica textil edificio a piso 2.
Podríamos pensar que si yo me suscribo a este tópico voy a recibir tanto temperatura como mera porque
me estoy suscribiendo a todo piso 2 pero eso no es así para que funcione de esta manera necesito utilizar
lo que se conoce como comodines.
Entonces tenemos un comodín multinivel que es el numeral que me va a permitir recibir por ejemplo todo
lo que contenga Piso 2 incluso si yo al comodin lo uso luego de edificio a Barra comodín numeral voy
a recibir todo edificio a todos los mensajes que se transmitan bajo el tópico fábrica textil edificio
a no importa que venga después.
Si piso 1 piso 2 o si aparecen más pisos pues llegarán aquí si vamos avanzando qué sucederá cuando ponga
un comodín multinivel que es el numeral en fábrica textil barra comodín lo que estamos viendo.
Recibiremos todo absolutamente todo incluso si el día de mañana aparece un nuevo edificio pues también
lo recibiríamos recibimos cada uno de esos mensajes el de temperatura humedad de piso 2 temperatura
temperatura y humedad de piso 1 y lo bueno es que sabremos no es que van a llegar todos juntos y amontonados.
Claro está que cuando practiquemos esto entenderemos aún más pero lo bueno es que vamos a saber cuando
recibamos una temperatura exactamente de dónde vino entonces.
De igual manera puedo recibir todo y ordenar cada valor en su lugar vamos más adelante aquí estamos
viendo otro tipo de comodin y es el segundo tipo sólo tenemos dos tipos de comodines el numeral y el
símbolo más o de la adición el símbolo más es un comodín mono nivel sólo se puede usar a una altura
pero debo especificar los subniveles.
Entonces miren cómo funciona esto yo estoy reemplazando con el más el nivel de edificio entonces me
van a llegar todos los mensajes de piso 2 barra temp pero sin importar si es de edificio a edificio
o si aparecen nuevos edificios.
Estoy reemplazando con un comodín un solo nivel entonces por eso es que vemos en amarillo temperatura
y humedad de piso 2 también vamos a saber que los mensajes tienen otro parámetro y es la calidad del
servicio dijo otro porque el primer parámetro era el tópico en sí mismo el mensaje tiene un tópico y
también tiene el valor que lleva ese mensaje.
Los mensajes también tienen un parámetro que es la calidad del servicio.
O S también como Quality of Service y vamos a decir que el primero es el nivel cero la calidad cero
es un paradigma a donde nosotros lo que hacemos es dejar en manos de la red TCP.
Por qué me QTTF.
Viaja a través de un protocolo TCP IP que es el mismo protocolo que usamos para navegar por Internet.
Cuando escribimos HTTPS dos puntos barra barra y alguna página web en el fondo por detrás se está realizando
una conexión TCP quizá tiene sus propios mecanismos para asegurarnos de que una información llegue de
un extremo al otro.
Entonces eso ya es suficiente para decir bueno este mensaje yo confío en que TCP los llevará a buen
puerto.
Y con a buen puerto aquí me estoy refiriendo a que el mensaje será entregado a los destinatarios no
destinatarios.
Hablamos si cuando enviamos un mensaje a través de un tópico bajo un tópico yo no le estoy enviando
a nadie en particular lo envió a quienes se hayan suscripto si es que alguien se ha suscrito.
Entonces en el nivel cero confío en que TCP bueno se lo entregará si alguien se suscribió.
Pero si hay un problema en la comunicación si se apaga el servidor y después vuelve iguano se perderá
aunque poco probable pero sucederá es calidad de servicio a nivel 1 esa donde al menos una vez tengo
la garantía de que el mensaje será entregado a los suscriptores de ese tópico al menos una vez.
Desde luego que esto va a congestionar más la comunicación porque se establecerán protocolos de redundancia
de confirmación de si el dato fue recibido o no por los suscriptores a parte al menos una vez.
También me deja abierta la posibilidad de que existan mensajes duplicados en el afán de asegurar de
que llegue me QTTF puede que envía el mensaje más de una vez y los suscriptores lo reciban en múltiples
ocasiones.
Y por último tenemos el nivel 2 a donde M QTTF no solo se va a asegurar de que los suscriptores reciban
ese mensaje sino que también se va a asegurar de que solo lo reciban una vez.
Entonces este nivel es ideal para cuando un mensaje duplicado puede causar un problema en el suscriptor
pero también tenemos que saber como hay una capa adicional de confirmación.
Ahora no solo confirmamos que llegue sino que también tengo que confirmar que no vaya a ser que se lo
enviemos dos veces.
Voy a generar más congestión y por supuesto más carga para nuestro bróker.
No confundir lo que vimos recién esto de la calidad de servicios con la retención de mensajes es a veces
es fácil confundirlo porque es parecido pero en realidad es muy diferente Red retención de mensajes
y cesión persistente.
Esto
consiste en lo siguiente y es algo que veremos muy por encima porque no hay cómo aprenderlo sobre la
práctica retención de mensajes significa que cuando yo envío un mensaje bajo un tópico
ese tópico va a tener un parámetro llamado retención.
Si ese parámetro está en Tru quiere decir que ese mensaje va a ser entregado a todos los suscriptores
y cuando un nuevo suscriptor aparezca ese mensaje será enviado a dicho suscriptor.
Entonces esto me va a servir para obtener como suscriptor el último estado de ese emisor.
Entonces para ser un ejemplo si yo transmito un mensaje sin retención bajo el tópico Fàbrica bueno todos
los que se hayan suscripto a fábrica recibirán el mensaje normalmente los que no se hayan suscripto
cuando se conecten y se suscriban no van a recibir nada van a tener que esperar hasta que fabrica a
emitir otro valor si yo lo mando con retención al mensaje.
Pues bien los que están suscriptos y conectados genial lo van a recibir el mensaje.
Pero si yo me conecto a posteriori yo voy a recibir el último mensaje que envió Fàbrica.
Ahora veamos lo de cesión persistente.
Si yo declaro mi sesión como cliente y me suscribo a un tópico bajo sesión persistente y acá aparece
una gran diferencia retención es un parámetro que tienen los mensajes a la hora de ser emitidos.
Es un parámetro para las emisiones para cuando público.
Ahora cuando me suscribo puedo hablar de sesión persistente o no una sesión pero mi persistente hará
que cuando yo me desconecte o no esté presente como cliente.
Todos los mensajes que lleguen a esos tópicos a los que me suscribí bajo sesión persistente lleguen
en mi próxima reconexión.
Entonces para hacerlo fácil yo me conecto a fábrica textil bajo sesión persistente.
Entonces voy a recibir en tiempo real todos los mensajes si si me desconecto por algún problema cuando
vuelva recibiré todos juntos los mensajes que me perdí en el mail.