Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Enrique Crespo.
La arquitectura tiene que cumplir ciertos requerimientos para que esta tecnología sea viable. Debe permitir
que la tecnología sea distribuida, donde los objetos puedan interactuar entre ellos, escalable, flexible,
robusta, eficiente y segura.
Requerimientos:
Conectividad y comunicación
Gestión y control de dispositivos
o Riesgos inherentes de cualquier sistema de internet pero que los diseñadores IoT o de producto no
tengan consciencia de ellos.
o Riesgos específicos de los dispositivos IoT
o Seguridad para cerciorarnos de que no se causan daños por, por ejemplo, por el mal uso de los
actuadores.
La arquitectura describe la estructura de su solución de IoT, lo que incluye los aspectos físicos (esto es, las
cosas) y los aspectos virtuales (como los servicios y los protocolos de comunicación). Adoptar una
arquitectura con múltiples niveles le permite concentrarse en mejorar su comprensión acerca de cómo
todos los aspectos más importantes de la arquitectura funcionan antes de que los integre dentro de su
aplicación de IoT. Este enfoque modular le ayuda a gestionar la complejidad de las soluciones IoT.
Este modelo de capas puede simplificarse para un modelo más sencillo. Arquitectura simple de tres capas:
O un modelo de 4 capas:
Capas de Dispositivos
La capa inferior de la arquitectura es la de dispositivos. Hay varios tipos de dispositivos, pero para que se
consideren dispositivos IoT deben tener algún tipo de comunicación, directa o indirecta, que lo enlaza con
Internet.
Cada dispositivo necesita una identidad, la cual puede ser una de las siguientes:
Un identificador único (Unique identifier, UUID) grabado en el dispositivo (típicamente parte del
System-on-Chip, o proporcionado por un segundo chip)
Un UUID proporcionado por un subsistema radio (por ejemplo: identificador Bluetooth, dirección
MAC del WiFi)
Un token refresh/bearer OAuth2 (puede ser un complemento a los dos anteriores)
Un identificador guardado en memoria no volátil como una EEPROM
Capa de Comunicaciones
La capa de comunicaciones soporta la conectividad de los dispositivos. Hay múltiples protocolos para la
comunicación entre los dispositivos y el Cloud. Los tres protocolos más conocidos y usados son:
HTTP es muy conocido y hay muchas librerías que lo soportan. Dado que es un protocolo simple basado en
texto, muchos dispositivos pequeños como los controladores de 8 bits lo pueden soportar parcialmente (por
ejemplo, sólo recursos como POST o GET). Por otro lado, dispositivos con más capacidad como los de 32
bits, pueden utilizar librerías con un cliente completo de HTTP, el cual puede implementar todo el
protocolo.
Hay algunos protocolos optimizados para el uso en IoT, como MQTT y CoAP. MQTT fue inventado en
1999 para resolver los problemas en los sistemas embedded y SCADA. Ha habido varias iteraciones pero la
versión actual (v3.1.1) está bajo estandarización en el OASIS MQTT Technical Committee.
MQTT es un sistema de mensajería publish-subscription basado en un modelo bróker. El protocolo tiene una
pequeña cabecera (2 bytes por mensaje), y fue diseñado para trabajar en conexiones pobres y con cortes
intermitentes. MQTT fue diseñado para correr sobre TCP. Además, existe MQTT-SN (Sensor networks) una
especificación diseñada para redes basadas en ZigBee.
CoAP es un protocolo del IETF (Internet Engineering Task Force) que se ha diseñado para proporcionar
aplicaciones RESTful modeladas en la semántica de HTTP, pero más pequeño y binario a diferencia del
basado en texto. CoAP es un enfoque tradicional de cliente-servidor en comparación al de brokers, diseñado
para correr sobre UDP.
Una capa importante de la arquitectura es la que agrega y hace de bróker de comunicaciones. Hay tres
principales razones por las cuales es importante:
El soporte de un servidor HTTP y/o un broker MQTT para hablar con los dispositivos.
La agregación y combinación de comunicaciones de diferentes dispositivos y de enrutar las
comunicaciones hacia un dispositivo especifico (posiblemente via un Gateway)
La habilidad de hacer un puente y transformar diferentes protocolos. Por ejemplo: ofrecer APIs
basadas en HTTP que interceden un mensaje MQTT que va a un dispositivo
Finalmente, la capa de agregación/bus necesita desarrollar dos roles de seguridad claves. Debe ser capaz de
actuar como un recurso de servidor OAuth2 (validando el portador de tokens y asociando los recursos de
acceso). También debería ser capaz de actuar como policy enforcement point (PEP) para las políticas de
acceso.
Esta capa coge los eventos del bus y proporciona la posibilidad de procesarlos y actuar sobre estos. Una
capacidad esencial es la de guardar los datos en BBDD.
Cosas equipadas con sensores para recoger datos y actuadores para realizar comandos recibidos
desde la nube.
Gateways para filtrar, preprocesar y mover datos a la nube y viceversa, – recibir comandos desde la
nube.
Pasarelas en nube (Cloud Gateways) para garantizar la transición de datos entre las pasarelas sobre
el terreno y los servidores centrales de IoT.
Procesadores de datos en tiempo real para distribuir los datos procedentes de los sensores entre los
componentes de las soluciones de IoT pertinentes.
Bases de Datos para almacenar todos los datos de valor definido e indefinido.
Big Data Warehouse para la recogida de datos valiosos.
Aplicaciones de control para enviar comandos a los actuadores.
Machine Learning para generar los modelos que luego son utilizados por las aplicaciones de
control.
Aplicaciones de usuario que permiten a los usuarios monitorizar el control de sus cosas conectadas.
Análisis de datos para el procesamiento manual de datos.
Fase 1: Conexión. En primer lugar, los objetos conectados en red con sensores inteligentes empiezan a
enviar información sobre sí mismos y su entorno a su centro de comunicaciones central en la nube. Conectar
cosas (darles sentido y abrirles una conexión a Internet para que puedan enviarles sus datos) representa el
comienzo de la evolución del IoT. La mayoría de las plataformas de IoT se ganan la vida asegurándose de
que sus cosas puedan hacerlo con seguridad.
Fase 2: Análisis y Visualización. A continuación, a medida que los datos de tus cosas se acumulan y tienes
tantos que empiezas a llamarlos “grandes”, agregas, exploras y empiezas a ejecutar análisis inteligentes en
tus pilas de datos y visualizas los resultados en los dashboards. Esta es la segunda etapa en la evolución de
IoT, cuando aprendes cosas nuevas importantes sobre tus sistemas de cosas conectadas.
Fase 3: Automatización. Ahora que has aprendido algo, empiezas a pensar en aplicar lo que has aprendido
a tus procesos existentes, para que finalmente puedas cosechar los beneficios de IoT en su tercera gran etapa
evolutiva: la automatización.
Fase 5: Automatización
Arquitectura IoT, prototipando los dispositivos del futuro
Luis del Valle Hernández
El Internet de las Cosas (IoT) constituye uno de los más importantes desarrollos tecnológicos de la última
década. Es tal su potencial, que cuando esté implementado cambiará nuestro estilo de vida. Quizás sea
algo atrevido predecir el futuro pero solo debemos fijarnos lo que ha sucedido con Internet. El impacto de la
conectividad ha llegado a todas las capas y áreas de la sociedad, educación, comunicación, negocios,
ciencia, gobiernos y prácticamente la humanidad entera. Es evidente que Internet es una de las creaciones
más potentes e importantes de la humanidad y el IoT es la evolución a la que nos enfrentaremos en los
próximos años.
Si queremos tener una perspectiva general de hacia donde evoluciona esta tecnología, podemos ver
las tendencias de búsqueda en Google. Esta herramienta nos permite ver la evolución de un término o
concepto basado en la búsqueda de los usuarios de este buscador. A continuación te dejo la siguiente gráfica
que es muy significativa.
Indice de contenidos
Si analizamos los datos estadísticos actuales podremos saber si estamos viviendo en la era del IoT o no. Es
muy sencillo, solo tenemos que dividir el número de objetos conectados entre el número de personas
que habitan el planeta. Este dato nos dirá cuantos objetos o dispositivos conectados tenemos cada ser
humano.
Según el Gobierno de Estados Unidos, en octubre de 2016 hay unos 7.300.000.000 habitantes en todo el
planeta. Según el portal Statista, hay unos 23.000.000.000 dispositivos conectados a Internet. Si dividimos
el número de dispositivos entre el número de habitantes, obtenemos que a cada ser humano le
corresponden 3,15 dispositivos. Por lo tanto, según la definición del IBSG, ya estamos en la era del IoT.
De hecho, en un estudio publicado por este grupo, indican que en algún momento entre el año 2008 y
2009 nació el IoT.
Si queremos construir dispositivos del IoT, debemos conocer los requerimientos necesarios para su
implantación. Ahora te dejo un vídeo donde David Cuartielles pone un ejemplo muy bueno sobre el IoT.
Tecnología distribuida
La base en la que se fundamente el IoT es poder distribuir objetos y dispositivos conectados por todo
nuestro entorno. Esto implica que la información adquirida pueda provenir de diferentes lugares y a su vez,
procesada por máquinas o servidores diferentes.
Todo esto implica que vamos a tener un montón de objetos, dispositivos y máquinas separadas físicamente y
conectadas entre si por una red de comunicaciones. Cada componente con su propio software y hardware. La
arquitectura debe ser capaz de mostrar todos los componentes como un único sistema a los ojos de los
usuarios y desarrolladores.
Esto no es algo nuevo entre nosotros, solo tenemos que ver los servicios en la nube como Google Drive. Da
lo mismo donde se guarden los datos, en que CPD y da lo mismo desde donde los subamos. Para nosotros
todo es un sistema al que accedemos y enviamos o leemos datos.
Imagínate que en Internet no existieran protocolos y que cada servidor web o cada empresa tuviera su propio
protocolo y su propio lenguaje de programación. Los desarrolladores tendrían que especializarse en un
servidor web o framework. Tendríamos que hacer tantas versiones de páginas web como protocolos existan.
Sería una locura e inviable.
El IoT intentará aprovecharse de los estándares que ya existen e incluso crear nuevos para que la
información fluya sin obstáculos.
Arquitectura escalable
Si antes te hablaba del número de dispositivos conectados en el año 2016, imagínate dentro de 10 años. El
IoT necesita de una arquitectura que permita la escalabilidad es decir, que de lo mismo que hoy se
conecten 10.000 y mañana 1.000.000 de dispositivos.
Si Internet, como lo conocemos a día de hoy, no fuera escalable, hubiera sido inviable la implantación de la
tecnología móvil y el acceso a Internet de millones de hogares.
Lo cierto es que hay un gran problema con respecto a identificar a cada dispositivo con una IP. El
protocolo que existe en la actualidad, IPv4, no podrá dar servicio a la avalancha de objetos que se prevén en
un futuro estén conectados a Internet. Pero eso estaría resuelto con su sucesor, el IPv6.
Para que te hagas una idea, con IPv4 se pueden generar 4.294.967.296 IPs. Todas estas direcciones no están
operativas, hay un gran rango de ellas reservadas. Con IPv6 tenemos 2128 (340 sextillones) IPs. Te
preguntarás, si hay 23.000 millones de dispositivos conectaos y solo 4.294 millones de IPs ¿cómo se pueden
conectar?. No todos los dispositivos tienen una IP única por ejemplo, los teléfonos que se conectan a una
misma antena tienen una misma IP. Esto hace que de momento haya suficientes direcciones para todos los
dispositivos conectados.
Eficiencia energética
Si lo que necesitamos son dispositivos autónomos conectados, estos deben tener una autonomía máxima.
No se puede depender de cargar sus baterías cada muy poco tiempo como los móviles. En este aspecto se
puede mejorar de diferentes maneras, atacando la fabricación de baterías mas duraderas y haciendo más
eficientes los dispositivos.
Aunque cada vez tenemos más componentes que consumen menos, este sería uno de los grandes problemas
a los que nos debemos enfrentar para implantar el IoT en nuestra vida diaria. Además, una de las ideas
fundamentales es integrarlo con energías renovables e inagotables.
La seguridad en el IoT es algo que se debe tener en cuenta desde el principio. Ya no solo están en peligro
nuestros datos, ahora también está en peligro nuestra integridad física. Imagínate que la cerradura de tu
casa se controla de forma electrónica y la puedes abrir con un móvil. Si te hackean el sistema, podrían entrar
en tu casa.
Existen diferentes sistemas o arquitecturas que nos permiten esta comunicación. Un ejemplo lo tendríamos
en los móviles u ordenadores. A través de un teclado, ratón, pantalla o cualquier interfaz hardware, nos
comunicamos con el mundo virtual. Pero aunque nosotros solo veamos esas interfaces hardware, detrás hay
una compleja arquitectura donde la información fluye en ambos sentidos.
Los dispositivos del IoT siguen un proceso por el cual la información fluye del medio físico a un medio
virtual. Este proceso lo podemos dividir en cuatro fases según la arquitectura propuesta por Sumit
Sharma de MuleSoft, empresa creada en el 2006 y centrada en la creación de software para conectar
aplicaciones, fuentes de datos y APIs.
Marcas como Intel, Arduino, Raspberry Pi, Qualcomm, AMD, ARM, Microchip, etc…, ponen a nuestra
disposición placas para utilizar en nuestros desarrollos. El primer problema lo encontramos aquí, ¿cómo
comunicar diferentes dispositivos de diferentes marcas?Cada fabricante utiliza su propio software,
hardware y protocolo. Esto es un cuello de botella ya que no existe un estándar para la comunicación
entre ellos.
Puntos de acceso
Los puntos de acceso permiten la conectividad de las cosas, objetos o dispositivos a Internet. El objetivo
fundamental es establecer una conexión entre los periféricos (dispositivos u objetos conectados) y la nube,
pero también debe permitir conectividad entre ellos. Esta conexión tiene que ser segura, robusta,
tolerante a fallos a fin de que recoja la información obtenida de los dispositivos y a la vez, se puedan
gestionar.
A través de los gateway o interfaces de comunicación, los dispositivos estarán conectados entre ellos y con
la nube. El problema está en los diferentes ecosistemas que existen, demasiadas pasarelas, protocolos,
aplicaciones, etc… Para resolver esta cuestión, debe existir un núcleo general que pueda comunicar con
todos ellos.
Existen multitud de protocolos y tecnologías de comunicación. Por citar unos pocos y los más conocidos
ZigBee, WiFi, MQTT, Zwave o Bluetooth. Cada objeto o dispositivo utiliza una tecnología para
comunicarse con otros objetos o con los servidores. Los puntos de acceso deben ser capaces de entender
todos estos sistemas y hacerlos compatibles.
Procesamiento de datos
El eje central del IoT son los datos. El buen funcionamiento de un sistema con estas características
dependerá de las capacidades en la gestión de estos datos y el uso inteligente que se haga de ellos. Por este
motivo, un sistema del IoT debe ser capaz de recolectar información de los sensores, almacenarlos y
analizarlos. En este punto las plataformas en la nube enfocadas a este sector tienen mucho que decir.
Además, deben ser capaces con los datos analizados lanzar alertas basadas en reglas. Un caso típico, que
se suele poner como ejemplo, es el sensor de temperatura y el sistema de calefacción de una casa. Este
sensor es capaz de medir una magnitud física y enviar la información a través de un protocolo a algún centro
de procesamiento de datos. En base a dicha temperatura el sistema debe ser capaz de tomar decisiones, en
este caso de poner o no poner la calefacción o el aire acondicionado.
A este último ejemplo podemos darle una vuelta de tuerca. Imagínate que junto al parámetro de la
temperatura añadimos una segunda variable, el número de personas que hay en la casa. Ya no solo
dependerá de la temperatura, ahora si hay 1 persona, pondrá una temperatura pero si hay 5 personas, pondrá
una temperatura diferente.
Esto es solo un ejemplo de la cantidad ingente de información, variables, umbrales, etc… que se pueden
tener en cuenta para que los sistemas respondan a cambios en el medio físico. Dentro de este marco se
encuentran el big data, machine learning o aprendizaje automático, data mining y demás conceptos
relacionados con el análisis avanzado de datos.
Por último, en esta parte tendremos diferentes APIs basadas en servicios web, que ofrezcan la información
a otros sistemas como las aplicaciones u otros servidores. Aquí también hay buscar un estándar que haga
que la comunicación se lo más flexible posible.
Aplicaciones
Para poder manejar y visualizar la información, necesitamos de aplicaciones que sean amigables para el
ser humano. Da lo mismo si son nativas o web. Gracias al uso de APIs y servicios web, cualquier tipo de
aplicación se podrá conectar a los datos y mostrarlos a los usuarios.
Y no solo vamos a visualizar los datos. Esta aplicación tendrá la capacidad de modificar los parámetros para
que los sistemas se comporten de una manera determinada.
Arquitecturas IoT
Modelo de Capas de
Arquitectura IoT
La arquitectura tiene que cumplir ciertos requerimientos para
que esta tecnología sea viable. Debe permitir que la tecnología Comunicaciones
sea distribuida, donde los objetos puedan interactuar entre
Agregación Constrained application
ellos, escalable, flexible, robusta, eficiente y segura. protocol (CoAP)
HTTP/HTTP (y RESTful
sobre ellos)
MQTT 3.1/3.1.1
Requerimiento
Arquitectura IoT Un identificador único (Unique
identifier, UUID) grabado en el
dispositivo (típicamente parte del
Captación, análisis y Escalabilidad System-on-Chip, o proporcionado por
Conectividad y un segundo chip)
comunicación actuación de la
información
Dispositivos
Gestión y control
de dispositivos La arquitectura de Cualquier arquitectura server-side
UUID
Flexibilidad
Alta disponibilidad
Integración
Seguridad
Arquitectura IoT, prototipando los dispositivos del futuro
El Internet de las
Si queremos tener una perspectiva general
Cosas (IoT) constituye uno
de hacia donde evoluciona esta tecnología,
de los más importantes
podemos ver las tendencias de búsqueda
desarrollos tecnológicos de
en Google.
la última década.
La base en la que se
El éxito del IoT depende en Si analizamos los datos fundamente el IoT es
Según el Gobierno de
gran medida de una estadísticos actuales Uno de los grandes poder distribuir objetos y
Estados Unidos, en
arquitectura que permita podremos saber si estamos problemas que nos dispositivos conectados
octubre de 2016 hay unos
que sea una tecnología viviendo en la era del IoT o encontramos es por todo nuestro entorno.
7.300.000.000 habitantes
dinámica y segura. De no. Es muy sencillo, solo la estandarización de Esto implica que la
en todo el planeta.
hecho, el gran tenemos que dividir el protocolos de información adquirida
Según el portal Statista,
inconveniente que existe número de objetos comunicación. En este pueda provenir de
hay unos 23.000.000.000
es la idea conceptual del conectados entre el sentido cada fabricante diferentes lugares y a su
dispositivos conectados a
IoT y cómo aplicarlo número de personas que aplica su propia tecnología. vez, procesada por
Internet.
a nuestra vida diaria. habitan el planeta. máquinas o servidores
diferentes.