Está en la página 1de 15

Arquitecturas IoT

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.

Requerimiento Arquitectura IoT

Requerimientos:

 Conectividad y comunicación
 Gestión y control de dispositivos

o La posibilidad de desconectar un dispositivo robado


o La habilidad de actualizar el software de un dispositivo
o La actualización de credenciales de seguridad
o Autorizar o denegar algunas capacidades del hardware remotamente
o Localizar dispositivos perdidos
o Limpiar información confidencial de un dispositivo robado
o Reconfigurar parámetros de Wi-Fi, GPRS u otras redes remotamente.

 Recolección, análisis y actuación de los datos


 Escalabilidad
 Flexibilidad
 Alta disponibilidad
 Integración
 Seguridad

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.

Captación, análisis y actuación de la información: La arquitectura de referencia se ha diseñado para poder


gestionar un gran número de dispositivos. Si estos dispositivos están constantemente enviando datos, esto
genera un volumen significativo de información. Este requerimiento se refiere a los sistemas de almacenaje
de información con una gran capacidad de escalabilidad, que soporta diversos tipos y grandes volúmenes de
datos. Las acciones deberían ser en “casi tiempo real”, por lo que se requiere una gran capacidad de análisis
de la información en tiempo real, además de la habilidad de los dispositivos de analizar y actuar en
referencia a la información.

Escalabilidad. Cualquier arquitectura server-side es escalable y puede soportar millones de dispositivos


enviando, recibiendo y actuando constantemente con los datos. Pero por otro lado, muchas de estas
arquitecturas vienen con un precio muy elevado, tanto en hardware como en software y complejidad. Uno de
los requerimientos más importantes es la capacidad de soportar la escalabilidad desde pequeños despliegues
hasta volúmenes masivos de dispositivos, por eso la flexibilidad de la escalabilidad y la habilidad de
desplegarla en una infraestructura Cloud son esenciales.

Modelo de Capas de Arquitectura IoT

Un modelo de IoT puede verse en esta imagen.


En IoT se sigue una arquitectura por capas. Modelo de 7 capas de la arquitectura IoT:

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/HTTP (y RESTful sobre ellos)


 MQTT 3.1/3.1.1
 Constrained application protocol (CoAP)

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.

Capa de Agregación (Edge Computing)

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.

Capa de procesamiento de eventos y analítica

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.

Componentes de la Arquitectura IoT

En términos sencillos, nuestra arquitectura de IoT contiene los siguientes componentes:

 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.

Fases en la integración IoT

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.

Ejemplo de Fases en la Industria (IIoT)

Fase Inicial: Máquina sin acceso a la máquina (no hay comunicaciones)

Fase 1: Acceso remoto a la máquina. Conexión

Fase 2: Adquisición de datos, monitorización y notificaciones de alarmas

Fase 3: Advanced analytics, diagnóstico y reporting

Fase 4: Integración con SW corporativo

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

o 1 Concepto general del IoT


o 2 IoT, requerimientos de la arquitectura
o 3 Conectado el mundo físico con la web

Concepto general del IoT


El éxito del IoT depende en gran medida de una arquitectura que permita que sea una tecnología dinámica
y segura. De hecho, el gran inconveniente que existe es la idea conceptual del IoT y cómo aplicarlo
a nuestra vida diaria. Es importante tener presente un significado común para el Internet de las Cosas. Según
el IBSG (Internet Business Solution Group) de Cisco, el IoT es simplemente el momento en el que hay
más cosas u objetos conectados a Internet que personas.

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.

Masterclass: David Cuartielles


 

IoT, requerimientos de la arquitectura


Como ya he comentado antes, 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, eficiente y segura.

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.

Interación entre objetos conectados


Uno de los grandes problemas que nos encontramos es la estandarización de protocolos de comunicación.
En este sentido cada fabricante aplica su propia tecnología. Esto implica que en muchas ocasiones no se
puedan comunicar entre ellos. En el IoT, el intercambio de datos debe ser entre cualquier objeto y de forma
bidireccional. Se requiere que entre ellos puedan interacionar.

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 es lo más importante


Sin duda alguna, la seguridad es la base de toda tecnología. Realmente no se puede construir una
arquitectura totalmente segura. Recuerdo una mención de un experto de seguridad al que, hace ya tiempo, le
preguntaron: «para usted ¿cual sería una máquina totalmente segura?» su respuesta fue muy concisa. No
existen las máquinas seguras, lo único que podemos garantizar es que si ponemos un ordenador encerrado en
una habitación, blindado con paredes de plomo de un metro de grosor, sin puerta y sin conexión a ninguna
red, podemos asegurar que está relativamente seguro. No existe la seguridad informática 100% segura, pero
podemos poner todas las trabas que podamos a los delincuentes.

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.

Conectado el mundo físico con la web


Uno de los pilares fundamentales dentro del IoT es la programación o computación física. Esta
disciplina se encarga de abrir un canal de comunicación entre el mundo físico y el mundo virtual a través de
interfaces hardware. Por lo tanto necesitamos, de alguna manera, conectar estos mundos.

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.

Cosas, objetos y dispositivos conectados


Esta es la parte visible a los usuarios. Dentro de este bloque encontramos los sensores, actuadores y el
hardware necesario para comunicar el mundo físico con el mundo virtual. Actualmente encontramos
infinidad de componentes, sobre todo para el prototipado, que nos permiten comenzar a crear dispositivos
del IoT.

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

referencia se ha diseñado es escalable y puede soportar


para poder gestionar un millones de dispositivos enviando, Un token refresh/bearer
Recolección, análisis y OAuth2
actuación de los datos gran número de recibiendo y actuando
dispositivos. constantemente con los datos.
Un identificador guardado en
Escalabilidad memoria no volátil como una
EEPROM

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.

También podría gustarte