Desarrollo de Software IoT

El Internet de las Cosas (IoT) genera grandes cantidades de datos y el resto de la historia es sobre los grandes datos. No muchos saben cómo diseñar software IoT excepto para contar una historia sobre «grandes datos y el análisis». Probablemente esto se deba a muchas razones, incluyendo que saben sobre los grandes datos (saben cómo usar algunas de las herramientas y plataformas – éstas son mano de obra capacitada) y/o hacen negocio con los grandes datos. En la práctica, el diseño del IoT es complejo y requiere que los ingenieros lo construyan.

Aquí os enseñaremos el diseño IoT y lo que se necesita para construir aplicaciones IoT a gran escala. Cuando la gente (¿ingenieros?) habla de grandes datos, los comparan con un gran elefante. Dicen que «los grandes datos se parecen mucho a la historia de unos pocos ciegos y el elefante; cuando cada uno de ellos toca una parte del elefante describen lo que es el elefante». No entiendo por qué no pudieron tocar el elefante entero y luego describirlo. Tal vez, no sólo son ciegos, sino que también son descerebrados.

Los grandes tipos de datos parecen ser similares. No quieren escarbar en toda la aplicación IoT de extremo a extremo para entender las complejidades y lo que se necesita para construir aplicaciones IoT. Por supuesto, como en la historia del elefante y la vaca, tienen razón sobre su limitada perspectiva. Al igual que Aristóteles, que pensaba que un objeto en movimiento se detiene porque se cansa, mientras que un ingeniero IoT es como una era cuántica en la que una partícula puede existir en múltiples lugares simultáneamente, lo que lleva al multiverso.

En este artículo vamos a ver algunas construcciones que se pueden utilizar para diseñar aplicaciones IoT escalables y seguras de extremo a extremo. Déjanos que te acompañemos en el desarrollo del software IoT que tu empresa necesita.

Personas construyendo un software IoT.

¿Qué es el software IoT?

El término «software IoT» se refiere a las aplicaciones informáticas y plataformas de software diseñadas específicamente para el Internet de las Cosas (IoT). Estas herramientas están destinadas a facilitar el desarrollo, la implementación y la gestión de soluciones y dispositivos IoT.

Imagen que representa una red IoT. Toda la red de dispositivos está conectada a través de una plataforma IoT, que opera con software IoT.

IoT y el manejo de eventos espacio-temporales

En el Internet de las Cosas, ciertas decisiones tienen que ser tomadas en ese momento y lugar. Esto se denomina «manejo de eventos espacio-temporales». Como se ilustra en la figura:

· Los dispositivos IoT (End Devices) deben reaccionar en la capa del borde y el borde, por tanto, debe actuar en tiempo real. Los datos generados en esta capa se procesan en el mismo terminal o se envían a un servidor en la capa niebla (Fog Computing).

· En el siguiente nivel, la niebla (fog) debe optimizar la recepción de los datos. Esta capa está compuesta por una serie de servidores de gran rendimiento que reciben los datos de la primera capa, los preparan y los envían a la nube si es necesario.

· Y en un nivel superior, la nube (Cloud Computing), debe planificar las acciones futuras.

IoT y el contexto de la construcción

Todo lo que hacemos en este universo se basa en un contexto que se construye utilizando la información de la que disponemos. Posteriormente, decidimos tomar las medidas adecuadas o necesarias para ese contexto. Una aplicación IoT debe funcionar de manera autónoma y segura en un entorno local, y conectarse a la Internet global para crear más valor.

La construcción del contexto ayuda a proporcionar un análisis en tiempo real del entorno para tomar las medidas adecuadas y requeridas.

Las aplicaciones IoT requieren dos tipos de análisis de datos: construcción del contexto y análisis masivo de datos. El primero es un análisis en tiempo real de la situación actual, es decir, la aproximación en tiempo real al escenario del mundo real. Mientras que el segundo es un análisis de la historia para predecir tendencias y acciones preventivas.

El reto consiste en proporcionar una computación fiable en tiempo real para la construcción del contexto y las acciones en tiempo real. La creación de un contexto y la puesta en marcha de acciones en tiempo real en el límite hacen que el sistema IoT sea más funcional incluso en los casos de pérdida prolongada de la conectividad a la Internet y la nube. El borde construye el contexto en tiempo real mientras que la nube realiza el gran análisis de datos. Ambos son naturales por su ubicación en la arquitectura de red federada.

Asegurar el Internet de las Cosas

La interfaz entre las «cosas» (objetos físicos dotados de tecnología) y la nube/internet es el eslabón más débil, ya que las cosas son los dispositivos restringidos (limitados por la potencia de procesamiento, la batería y el ancho de banda). Esto los convierte en los elementos de red menos autoprotegidos.

Dado que los dispositivos IoT se despliegan a gran escala sin precedentes, la interfaz insegura entre las cosas y la nube puede dar lugar a la corrupción de datos, la denegación de servicio, o una completa toma de posesión de las cosas haciendo que las personas, empresas y gobiernos sean vulnerables a los ciberataques. Además, la mayoría de usuarios y diseñadores de las aplicaciones IoT son «analfabetos tecnológicos», lo que hace que las aplicaciones IoT sean más vulnerables a las amenazas a la seguridad y la privacidad.

La falta de seguridad y privacidad en las aplicaciones IoT puede tener un impacto en la seguridad, la economía e incluso la pérdida de vidas. La seguridad de la Internet de las Cosas es diferente de la ciberseguridad, y los desafíos no tienen precedentes.

Una forma de resolver los problemas de seguridad en loT es llevar la batalla a un nivel superior y ayudar a las necesidades informáticas de los dispositivos IoT en el nivel del borde (edge). Para asegurar la Internet de las Cosas, es necesario construirla a la primera. Esto, a su vez, requiere que se establezcan ciertas directrices, políticas y normas.

Estas normas y directrices facilitan la creación de un ecosistema de colaboración entre los vendedores de dispositivos, los desarrolladores de software, los constructores de redes, los integradores de sistemas y los reguladores, y desempeñarían su función en la construcción de los sistemas para una IoT segura.

Backhaul, gestión de información y servicios

Las cosas generan datos continuamente, pero no todos los datos tienen sentido ni son útiles. No es prudente simplemente enrutar los datos a la nube y almacenarlos. Requiere filtrar los datos no deseados y los que pueden no ayudar para futuros análisis, y transmitir sólo los datos intermedios agregados útiles a la nube. Esto permite aumentar la eficiencia de la conectividad de retroceso.

También requiere almacenar los datos localmente cuando la conectividad a la nube se rompe, y subir los datos cuando la conectividad se ha reestablecido. Una red IoT puede soportar múltiples aplicaciones, por ejemplo, servicios públicos, seguridad, seguros, mantenimiento, etc.

Y puede haber múltiples proveedores de servicios, por ejemplo, tenemos varios proveedores de servicios de Internet (ISP) y uno puede cambiar al proveedor apropiado dependiendo de la calidad del servicio y el costo. Del mismo modo, y la aplicación IoT debería poder cambiar tanto los proveedores de servicios como las aplicaciones de la nube; esto puede llevar algo más de tiempo para que se establezcan los estándares.

Horizontalización – Diseñar para la innovación

La mayoría de las soluciones IoT de hoy en día son impulsadas por los proveedores y segmentadas verticalmente. El proveedor proporciona los dispositivos, el centro/puerta de enlace IoT y los servicios de nube. Esto lleva a problemas de interoperabilidad y a la dependencia del proveedor.

La interoperabilidad requiere una pasarela/puerta de enlace estandarizada con interfaces estándar para que podamos integrar los dispositivos y los servicios en la nube de forma horizontal, eligiendo los dispositivos de cualquier proveedor y obteniendo los servicios de cualquier otro proveedor. Esto no sólo nos permite construir aplicaciones IoT utilizando los mejores componentes de la raza, sino que también permite la innovación para construir nuevas aplicaciones.

El número de contextos y, por lo tanto, los mejores contextos que se pueden construir es directamente proporcional al número de parámetros que se están detectando desde el entorno de aplicación.

Cuanto mayor sea el número de sensores, mayor será el número de puntos de datos y mejor será la construcción del contexto. Si tenemos un sensor (un sensor de temperatura) que proporciona un servicio IoT (servicio de temperatura que proporciona la temperatura actual de una habitación), sólo se puede construir un contexto simple (la habitación es fría o caliente). Con dos servicios, el número de contextos posibles es de tres.

Gestionando millones de nuevos dispositivos cada día

Se estima que en el año 2025, se instalarán decenas de millones de dispositivos. Este alcance requiere un gran número de personal capacitado para la instalación, configuración y puesta en marcha de los dispositivos IoT. Estos procedimientos típicamente requieren de 20 a 30 minutos para dispositivos simples hasta unas pocas horas para equipos grandes.

Los esfuerzos necesarios para estos procedimientos pueden ser más costosos que el costo de los dispositivos de I/O y limitan la escalabilidad. Por lo tanto, se deben diseñar los dispositivos de I/O y las aplicaciones para la autoconfiguración y la fácil gestión del ciclo de vida de los dispositivos. Esto llevaría al desarrollo de un ecosistema en el que el despliegue de las aplicaciones de I/O sería fácil sin necesidad de conocimientos técnicos profundos para la instalación, el aprovisionamiento, la puesta en marcha y la clausura.

*Los dispositivos de I/O (Input: entrada / Output: salida) son dispositivos que pueden llevar a cabo tanto las tareas de entrada como de salida de información, es decir, permiten introducir y extraer información. Ejemplo: impresora multifunción, pantallas táctiles, casos de realidad virtual, etc.

Escalabilidad y diseño para la resistencia

La red del Internet de las Cosas es la mayor red jamás creada por los humanos. Por ello, requiere un modelo escalable y repetible construido sobre construcciones más pequeñas y reutilizables. Para poder construir una red tan masiva, necesitamos tomar los patrones de diseño de las GRANDES COSAS que se escalaron bien: el Universo, la Internet y los Humanos.

Uno de estos modelos es el IEEE P1931.1 – el Roof Computing, que se basa principalmente en cómo evolucionaron los humanos. El modelo Roof puede ser replicado fácilmente y puede ser usado para construir aplicaciones IoT a gran escala, por ejemplo, una Ciudad Inteligente.

Este modelo puede utilizarse en múltiples aplicaciones, verticales y permite una arquitectura federada para el aislamiento de fallos y una funcionalidad semiautónoma para la fiabilidad y la resistencia.

Rasgos de un buen diseño de software IoT

El IoT se trata de diseñar un sistema de acciones que resuelvan los puntos de dolor de los interesados en la declaración del problema. No diseñamos aplicaciones IoT para la recolección de datos. Cuando estamos diseñando para acciones, podemos recolectar y almacenar datos para acciones futuras.

Las acciones están diseñadas para el manejo de eventos espacio-temporales. Las organizaciones pueden permitir la innovación interfuncional cuando la plataforma IoT se construye con una API abierta a la que pueden acceder todos los interesados para crear contextos nuevos y mejorados y, por lo tanto, mejores acciones.

Los dispositivos IoT vienen en una amplia variedad de factores de forma de diferentes proveedores con diferentes capacidades de entrada y salida. Las interacciones con los dispositivos, por lo general, se manejan mediante aplicaciones web y móviles proporcionadas por los vendedores. El valor para el usuario final radica en la prestación de un servicio coherente para proporcionar una experiencia de usuario distribuida entre múltiples dispositivos/aplicaciones IoT.

Para poder construir los sistemas IoT interoperables, los estándares juegan un papel importante, mientras que las empresas requieren un margen de innovación para diferenciarse de la multitud.

Dado que la mayoría de los usuarios finales y diseñadores son «analfabetos tecnológicos», necesitamos las normas de seguridad de IoT para que el ecosistema pueda reutilizar el conocimiento sin necesidad de su intervención, lo que puede dar lugar a sistemas comprometidos.

El diseño de aplicaciones reales IoT es complejo; sólo los expertos pueden diseñarlas y ponerlas en uso de manera que puedan escalarse, asegurarse y resolver los problemas.

Si quieres desbloquear el potencial que tiene el IoT e integrarlo en tu empresa, contacta con nosotros.

Diseñaremos el software IoT que mejor se adapte a las necesidades de tu empresa.