Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TECNOLOGÍAS DE INTERNET
SEMANA 6
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni
IACC-2019
utilizar los contenidos para fines comerciales de ninguna clase.
1
SEMANA 6 – TECNOLOGÍAS DE INTERNET
OBJETIVOS ESPECÍFICOS
IACC-2019
2
SEMANA 6 – TECNOLOGÍAS DE INTERNET
INTRODUCCIÓN ................................................................................................................................... 4
1. PROTOCOLOS DE COMUNICACIÓN ............................................................................................. 5
1.1. MQTT ............................................................................................................................... 5
1.2. JSON - LD ......................................................................................................................... 8
1.3. AWS - IoT ....................................................................................................................... 11
COMENTARIO FINAL.......................................................................................................................... 16
REFERENCIAS ..................................................................................................................................... 17
IACC-2019
3
SEMANA 6 – TECNOLOGÍAS DE INTERNET
INTRODUCCIÓN
Cuando se pretende comunicar un sistema Entre ellos destaca el MQTT (Message Queue
informático con otro a través de una red de Telemetry Transport), que se orienta
telecomunicaciones, es necesario que exista principalmente a la comunicación de
un conjunto de elementos físicos y lógicos sensores, debido al poco consumo de ancho
que permitan esta comunicación. de banda que este posee y el cual tiene una
característica transcendental: este es un
Hoy en día, la informática y las protocolo de aplicación con una topología
telecomunicaciones permiten la tipo estrella que en la actualidad es utilizado
interconexión de sistemas de igual o distinto por Facebook Messenger, tanto para Android
tipo, conectándose por medio de protocolos. como iPhone.
IACC-2019
4
SEMANA 6 – TECNOLOGÍAS DE INTERNET
1. PROTOCOLOS DE COMUNICACIÓN
1.1. MQTT
El MQTT (Message Queue Telemetry Transport) es un protocolo para el manejo de mensajes que
se basa en publicaciones – suscripciones de acuerdo con el estándar ISO. Específicamente, este
protocolo está diseñado para conexiones de ubicaciones remotas donde se requiere administrar
un ancho de banda limitado o una autenticación con código. La conexión que utiliza el MQTT es
M2M o machine to machine.
Ejemplo:
La aplicación de Facebook Messenger tanto para Android o iPhone emplean este protocolo. La
arquitectura de MQTT sigue una topología de estrella, con un nodo central que hace de servidor o
broker y con una capacidad de hasta 10000 clientes. El broker es el encargado de gestionar la red y
de transmitir los mensajes; y para mantener activo el canal, los clientes mandan periódicamente
un paquete (PINGREQ) y esperan la respuesta del broker (PINGRESP). La comunicación puede ser
cifrada, entre otras muchas opciones.
IACC-2019
5
SEMANA 6 – TECNOLOGÍAS DE INTERNET
• "edificio2/planta7/sala2/raspberry1/temperatura"
• "/edificio1/planta1/sala6/arduino2/ruido".
• "/edificio2/planta30/piscina/arduino1/nivel_de_agua".
De esta forma, se pueden crear jerarquías de clientes que publican y reciben datos, como se
muestra en la imagen 2:
Inicialmente, MQTT fue inventado y desarrollado por IBM a finales de los 90. Su
IACC-2019
6
SEMANA 6 – TECNOLOGÍAS DE INTERNET
confianza. Pese a su nombre, no tiene nada que ver con colas de mensajes; en
• El broker de mensajería y
• Numerosos clientes.
El broker es un servidor que recibe todos los mensajes de los clientes y, en seguida, redirige estos
mensajes a los clientes de destino relevantes. Un cliente es cualquier cosa que pueda interactuar
con el broker y recibir mensajes. Un cliente puede ser un sensor de IoT en campo o una aplicación
en un centro de datos que procesa datos de IoT.
El cliente se conecta al broker y puede suscribirse a cualquier "tema" de mensajería del broker. El
flujo es el que sigue:
• Después, el broker remite el mensaje a todos los clientes que se suscriben a este tema.
• Una aplicación de consola administrativa podría recibir comandos del administrador del
sistema para ajustar las configuraciones de los sensores, tales como la sensibilidad y la
frecuencia de muestreo, y publicar dichos cambios en el tema "config_change".
IACC-2019
7
SEMANA 6 – TECNOLOGÍAS DE INTERNET
Al mismo tiempo, MQTT es liviano. Tiene un encabezado simple para especificar el tipo de
mensaje, un tema basado en texto y, posteriormente, una carga útil binaria arbitraria. La
aplicación puede tener cualquier formato de datos para la carga útil, como JSON, XML, binario
cifrado o Base64, siempre que los clientes de destino puedan analizar la carga útil.
1.2. JSON - LD
Antes de definir lo que es JSON – LD, es importante tener claro que JSON es un formato de código
de datos de texto ligero para el intercambio de datos. Así, JSON es un subconjunto de la notación
literal de objetos de JavaScript, que es considerado hoy en día un formato de lenguaje
independiente, ya que es ampliamente usado como alternativa de XML.
IACC-2019
8
SEMANA 6 – TECNOLOGÍAS DE INTERNET
Por otro lado, JSON-LD (JavaScript Object Notation for Linked Data) es una forma de codificar o
desarrollar estructuras de datos de manera enlazada (LD = Linked Data). JSON-LD permite describir
o codificar datos que siguen esta recomendación del W3C.
El siguiente ejemplo permite describir a una persona una persona famosa (John Lennon) utilizando
JSON – LD:
1{
2 "@context": "https://json-ld.org/contexts/person.jsonld",
3 "@id": "http://dbpedia.org/resource/John_Lennon",
4 "name": "John Lennon",
5 "born": "1940-10-09",
6 "spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
7}
La particularidad del código anterior es que tiene algo denominado @context (ver la línea 2), que
pareciera ser una URL a “algo”. Al abrir esa URL se encontrará algo como el código que se muestra
a continuación, que es llamado un “Schema” y que, en definitiva, es el conjunto de propiedades
que describen a una persona (Person).
1 {
2 "@context":
3 {
4 "Person": "http://xmlns.com/foaf/0.1/Person",
5 "xsd": "http://www.w3.org/2001/XMLSchema#",
6 "name": "http://xmlns.com/foaf/0.1/name",
7 "nickname": "http://xmlns.com/foaf/0.1/nick",
8 "affiliation": "http://schema.org/affiliation",
9 "depiction":
10 {
11 "@id": "http://xmlns.com/foaf/0.1/depiction",
12 "@type": "@id"
13 },
14 "image":
15 {
16 "@id": "http://xmlns.com/foaf/0.1/img",
17 "@type": "@id"
18 },
IACC-2019
9
SEMANA 6 – TECNOLOGÍAS DE INTERNET
19 "born":
20 {
21 "@id": "http://schema.org/birthDate",
22 "@type": "xsd:dateTime"
23 },
24 "child":
25 {
26 "@id": "http://schema.org/children",
27 "@type": "@id"
28 },
29 "colleague":
30 {
31 "@id": "http://schema.org/colleagues",
32 "@type": "@id"
33 },
34 "knows":
35 {
36 "@id": "http://xmlns.com/foaf/0.1/knows",
37 "@type": "@id"
38 },
39 "died":
40 {
41 "@id": "http://schema.org/deathDate",
42 "@type": "xsd:dateTime"
43 },
44 "email":
45 {
46 "@id": "http://xmlns.com/foaf/0.1/mbox",
47 "@type": "@id"
48 },
49 "familyName": "http://xmlns.com/foaf/0.1/familyName",
50 "givenName": "http://xmlns.com/foaf/0.1/givenName",
51 "gender": "http://schema.org/gender",
52 "homepage":
53 {
54 "@id": "http://xmlns.com/foaf/0.1/homepage",
55 "@type": "@id"
56 },
57 "honorificPrefix": "http://schema.org/honorificPrefix",
58 "honorificSuffix": "http://schema.org/honorificSuffix",
59 "jobTitle": "http://xmlns.com/foaf/0.1/title",
60 "nationality": "http://schema.org/nationality",
61 "parent":
62 {
IACC-2019
10
SEMANA 6 – TECNOLOGÍAS DE INTERNET
63 "@id": "http://schema.org/parent",
64 "@type": "@id"
65 },
66 "sibling":
67 {
68 "@id": "http://schema.org/sibling",
69 "@type": "@id"
70 },
71 "spouse":
72 {
73 "@id": "http://schema.org/spouse",
74 "@type": "@id"
75 },
76 "telephone": "http://schema.org/telephone",
77 "Address": "http://www.w3.org/2006/vcard/ns#Address",
78 "address": "http://www.w3.org/2006/vcard/ns#address",
79 "street": "http://www.w3.org/2006/vcard/ns#street-address",
80 "locality": "http://www.w3.org/2006/vcard/ns#locality",
81 "region": "http://www.w3.org/2006/vcard/ns#region",
82 "country": "http://www.w3.org/2006/vcard/ns#country",
83 "postalCode": "http://www.w3.org/2006/vcard/ns#postal-code"
84 }
85 }
JSON-LD es el formato recomendado por buscadores web como Google para proveer datos
enriquecidos que ellos puedan utilizar para mejorar la visualización de resultados, como lo indican
en las “Structured Data General Guidelines”.
AWS IoT Core admite miles de millones de dispositivos y billones de mensajes, y es capaz de
procesarlos y direccionarlos a puntos de enlace de AWS y a otros dispositivos de manera fiable y
segura. Con AWS IoT Core, sus aplicaciones pueden realizar un seguimiento de todos los
dispositivos y comunicarse con ellos en todo momento, incluso cuando no están conectados.
IACC-2019
11
SEMANA 6 – TECNOLOGÍAS DE INTERNET
Además, AWS IoT Core facilita la utilización de servicios de AWS, como AWS Lambda, Amazon
Kinesis, Amazon S3, Amazon SageMaker, Amazon DynamoDB, Amazon CloudWatch, AWS
CloudTrail y Amazon QuickSight para crear aplicaciones de IoT que recopilen, procesen, analicen y
utilicen datos generados por dispositivos conectados sin tener que administrar ninguna
infraestructura.
AWS IoT Core le permite conectar fácilmente dispositivos a la nube y a otros dispositivos. También
admite HTTP, WebSockets y MQTT; y es un protocolo de comunicación ligero, especialmente
diseñado para tolerar conexiones intermitentes, minimizar la huella de código en los dispositivos y
reducir los requisitos de ancho de banda de la red.
Asimismo, es compatible con otros protocolos personalizados y propios del sector, y los
dispositivos pueden comunicarse entre sí aunque utilicen protocolos distintos.
IACC-2019
12
SEMANA 6 – TECNOLOGÍAS DE INTERNET
Con AWS IoT Core se puede filtrar, transformar y utilizar datos de dispositivos sobre la marcha,
según las reglas empresariales que se hayan establecido. También se pueden actualizar las reglas
para implementar nuevas características de dispositivos y aplicaciones cuando lo desee. AWS IoT
Core facilita la utilización de servicios de AWS, como AWS Lambda, Amazon Kinesis, Amazon S3,
Amazon Machine Learning, Amazon DynamoDB, Amazon CloudWatch y Amazon Elasticsearch
Service para lograr aplicaciones de IoT incluso más eficientes.
https://aws.amazon.com/es/iot/
De acuerdo con Amazon se pueden mencionar los diferentes componentes de AWS IoT:
• Agente de mensajes: Proporciona un mecanismo seguro para que los dispositivos y las
aplicaciones de AWS IoT publiquen y reciban mensajes entre sí. Puede utilizar el protocolo
MQTT directamente, o MQTT sobre WebSocket para publicar y suscribirse. Puede utilizar
la interfaz HTTP REST para publicar.
IACC-2019
13
SEMANA 6 – TECNOLOGÍAS DE INTERNET
Cualquier acción que realice en un grupo principal se aplicará a sus grupos secundarios, así
como a todos los dispositivos incluidos en el grupo principal y en sus grupos secundarios.
Los permisos proporcionados a un grupo se aplicarán a todos los dispositivos del grupo y a
todos sus grupos secundarios.
IACC-2019
14
SEMANA 6 – TECNOLOGÍAS DE INTERNET
• Servicio de Jobs: Permite definir un conjunto de operaciones remotas que se envían a uno
o más dispositivos conectados a AWS IoT o que se ejecutan en uno o más de esos
dispositivos.
Por ejemplo, puede definir un trabajo que indique a un conjunto de dispositivos descargar
e instalar actualizaciones de firmware y aplicaciones, reiniciar, rotar certificados o realizar
operaciones remotas de solución de problemas.
Para crear un trabajo, se debe especificar una descripción de las operaciones remotas que
se van a realizar y una lista de destinos que deben realizarlas. Los destinos pueden ser
dispositivos individuales, grupos o ambos.
IACC-2019
15
SEMANA 6 – TECNOLOGÍAS DE INTERNET
COMENTARIO FINAL
Los protocolos como los MQTT responden a la problemática del creciente número de dispositivos
que harán su aparición en la red en los próximos años. De hecho, según un estudio Gartner, de
aquí a 2020 habrá casi 26.000 millones de objetos conectados.
Los MQTT responden también a las siguientes necesidades en la IoT, ya que están especialmente
adaptados para utilizar un ancho de banda mínimo, son ideales para utilizar redes inalámbricas, y
además de consumir muy poca energía, son muy rápidos y posibilitan un tiempo de respuesta
superior al resto de protocolos web actuales. También permiten una gran fiabilidad y, finalmente,
requieren de pocos recursos procesadores y memoria.
IACC-2019
16
SEMANA 6 – TECNOLOGÍAS DE INTERNET
REFERENCIAS
https://www.ibm.com/developerworks/ssa/library/iot-mqtt-why-good-for-iot/index.html
ld/
https://docs.aws.amazon.com/es_es/iot/latest/developerguide/what-is-aws-iot.html
IACC-2019
17
SEMANA 6 – TECNOLOGÍAS DE INTERNET
IACC-2019
18