Podcast: Descargar (68.5MB)

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
Concepto general del IoT
E l é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. Estas aplicaciones tendrá la capacidad de modificar los parámetros para que los sistemas se comporten de una manera determinada.
Puedes escuchar este programa en, iVoox, iTunes y en Spreaker. Si lo haces, por favor valora y comenta, así podremos llegar a más gente.