1. Introducción
Con la llegada de Internet de las cosas (IoT), el sueño de la ciudad inteligente finalmente se hizo realidad. El propósito de construir una ciudad inteligente es mejorar la salud, la seguridad, la comodidad, la conveniencia y la sabiduría; en resumen, mejorar la calidad de vida de las personan que la habitan [1].
En las ciudades inteligentes existe una amplia heterogeneidad y movilidad de dispositivos IoT, y se requieren altos niveles de escalabilidad e interoperabilidad entre las soluciones desplegadas. Los datos recopilados de los dispositivos IoT son procesados y almacenados utilizando las posibilidades que brinda la computación en la nube [2]. Sin embargo, a pesar de su poder, el modelo de la nube no es aplicable, por sí solo, a entornos en los cuales las operaciones son sensibles a la latencia, como la telemedicina y las comunicaciones vehículo a vehículo, donde los milisegundos pueden tener importantes consecuencias [3]. Además, tener cada dispositivo conectado a la nube enviando datos, a través de Internet, puede traer implicaciones legales, de seguridad y de privacidad [4]. La complejidad de la gestión de grandes cantidades de datos, debido al constante aumento de dispositivos IoT, también puede constituir una dificultad si se realiza de forma centralizada; también, se ocupa un gran ancho de banda en la transmisión de dichos datos [5]. Por otra parte, en la actualidad, la mayoría de los dispositivos de IoT no cuentan con los recursos de cómputo y de almacenamiento requeridos para realizar tareas de análisis y aprendizaje automático; mientras que los servidores de la nube cuentan con los recursos necesarios, pero están demasiado lejos para procesar los datos y responder a tiempo a las peticiones que se generan más cerca del borde de la red [6].
La computación en la niebla surge como un paradigma novedoso para dar solución a lo antes planteado. Con el empleo de recursos de computación, almacenamiento y redes, imita las capacidades de la nube, respalda la ingestión local de datos y el procesamiento de las aplicaciones sensibles a la latencia en el borde de la red; mientras que otras, con alta tolerancia al retardo y que requieren de un uso intensivo de recursos de computación, pueden procesarse en la nube. Esto significa que la computación en la niebla permite el procesamiento más cerca del borde de la red sin dejar de ofrecer la posibilidad de interactuar con la nube [7].
En la implementación de esta tecnología, se deben tener en cuenta muchos aspectos, tales como: cómputo, almacenamiento, aceleradores, redes, seguridad, gestión y virtualización. En este entorno complejo se requiere contar con una guía que considere un conjunto de aspectos. Con este objetivo, en este artículo se propone un procedimiento para la implementación de la computación en la niebla en ciudades inteligentes.
En la primera parte del artículo se presenta un breve bosquejo sobre los fundamentos teóricos de la computación en la niebla en entornos de ciudades inteligentes. En la segunda parte, se exponen los aspectos principales de cada etapa del procedimiento elaborado. Finalmente, se realiza una validación parcial del procedimiento propuesto aplicándolo a un caso de uso en el escenario de La Habana Vieja.
2. Computación en la niebla
La computación en la niebla es un concepto introducido por la empresa Cisco en el año 2012 [8], la cual define esta tecnología como: "La niebla extiende la nube más cerca de las cosas que producen y actúan sobre los datos de IoT. Los dispositivos, llamados nodos niebla, se pueden implementar en cualquier lugar donde exista una conexión de red: en la planta de una fábrica, en la parte superior de un poste de energía, junto a una vía férrea, en un vehículo o en una plataforma petrolera. Cualquier dispositivo con computación, almacenamiento y conectividad de red puede ser un nodo niebla. Los ejemplos incluyen controladores industriales, conmutadores, enrutadores, servidores integrados y cámaras de videovigilancia” [8].
Por su cercanía a la capa más baja de la arquitectura de IoT se tiende a llamar computación en el borde, pero hay diferencias importantes entre estos dos paradigmas. La computación en la niebla involucra la combinación dinámica de recursos y fuentes de datos entre la nube y los dispositivos IoT, mientras que la computación en el borde aprovisiona dispositivos en el borde de la red para realizar funciones predefinidas. La niebla trabaja con la nube, mientras que el borde se define por la exclusión de la misma. La capa de niebla abarca una jerarquía, no solo en el perímetro de la red, sino en todas las áreas desde la nube hasta los dispositivos IoT, mientras el borde tiende a ser limitado a un pequeño número de capas [9].
La capa de la niebla se encuentra entre la nube y los dispositivos IoT, lo cual representa una arquitectura que distribuye funciones de computación, almacenamiento, comunicación y control. Este paradigma proporciona conciencia de proximidad y ubicación, distribución geográfica y organización jerárquica, lo que la convierte en una plataforma adecuada para redes de sensores y actuadores inalámbricos con limitaciones de recursos [10].
En busca de soluciones que ofrezcan a las aplicaciones requerimientos de baja latencia, movilidad y amplia distribución geográfica, han sido desarrolladas diferentes tecnologías como: forrajeo cibernético (cyber foraging), nube pequeña (cloudlet), computación en el borde multi-acceso (MEC, por las siglas del término en inglés Multi-Access Edge Computing) que, aunque brindan servicios semejantes a los de la computación en la niebla, presentan diferencias entre ellas. La primera diferencia es que MEC es impulsado principalmente por un consorcio de la industria, el Instituto de Estándares de Telecomunicaciones Europeo (ETSI, por las siglas del término en inglés European Telecommunication Standards Institute), mientras que cloudlet y la niebla son impulsadas por la academia y la industria. Otra diferencia es que cloudlet se basa únicamente en la tecnología de máquinas virtuales para la virtualización, mientras que MEC y la niebla consideran otras tecnologías de virtualización. Una tercera diferencia es que MEC funciona solo en modo independiente. Sin embargo, los cloudlets pueden funcionar en modo independiente o conectados a una nube, aunque casi no hay trabajos sobre cómo interactúan con esta, mientras que la niebla está diseñada como una extensión de la nube. A partir de la comparación realizada entre los cloudlets, MEC y la niebla, se puede concluir que la computación en la niebla representa la tecnología más completa para cubrir los requerimientos de baja latencia, movilidad y amplia distribución geográfica de las aplicaciones actuales y futuras [7].
La figura 1 muestra la arquitectura de computación en la niebla, en comparación con otros paradigmas de computación [10].
La computación en la niebla está en constante desarrollo, por lo que las aplicaciones que se verán favorecidas con esta tecnología irán en incremento. En la actualidad, entre las principales aplicaciones de las ciudades inteligentes que se benefician de las bondades que ofrece este paradigma están: control de tráfico y vehículos inteligentes, videovigilancia pública y edificios inteligentes [9] y redes inteligentes de energía eléctrica [10]. En otro ámbito, existen aplicaciones que también aprovechan las posibilidades que brinda la computación en la niebla como: el procesamiento de imágenes para la exploración de petróleo y la transmisión de video en vivo [9]. En general, si bien el paradigma de computación en la niebla no sustituirá a la nube, presenta un grupo de ventajas para la interacción con IoT que la hacen una solución viable a las demandas de sus aplicaciones.
3. Procedimiento
El procedimiento que se propone en este artículo para la implementación de computación en la niebla en ciudades inteligentes está compuesto por cuatro etapas: Caracterización del Proyecto, Diseño Lógico, Diseño Físico e Implementación, cada una de las cuales comprende varias fases, lo que se resume en la figura 2Tal procedimiento representa la principal contribución de este artículo y su objetivo es guiar a los desarrolladores de aplicaciones de las ciudades inteligentes en el espliegue de nodos niebla. Hasta donde se ha podido investigar en la literatura, no se encontró un método que cubriera todas las etapas descritas en la propuesta que se hace, ni que tuviera el nivel de profundidad y respaldo de bibliografía que posee cada fase dentro de cada etapa del procedimiento.
A continuación, se explican cada una de las etapas del procedimiento que se propone para la implementación de la computación en la niebla en ciudades inteligentes.
3.1.- Etapa I: Caracterización del proyecto
Esta primera etapa está integrada por tres fases: análisis de la demanda de recursos de red, procesamiento y almacenamiento en correspondencia con el propósito del proyecto, análisis de los aspectos técnicos y caracterización de los datos. En la primera fase, se deben determinar las necesidades y problemáticas a enfrentar en el escenario de la ciudad inteligente, para definir qué aspectos serán solventados a través de la solución de computación en la niebla. Al enfrentarse a un proyecto de ciudad inteligente, se deben analizar un conjunto de requerimientos, como movilidad, latencia, distribución geográfica y ancho de banda necesario, con vistas a determinar si las necesidades de computación, almacenamiento y recursos de red deberán ser solventadas a través de la niebla o con una implementación basada en la nube.
En relación a la movilidad, en un entorno de dispositivos IoT móviles con recursos limitados se requieren servicios topológicamente cercanos, por ejemplo, ubicados en el borde de la red. El propósito es utilizar nodos nieblas cuando los dispositivos de IoT se mueven de un lugar a otro. Para habilitar el soporte de movilidad, se debe migrar el servicio niebla de un nodo a otro, manteniéndolo lo suficientemente cerca del componente de aplicación asociado al dispositivo IoT móvil. Se puede encontrar una discusión más detallada sobre el apoyo a la movilidad en un entorno de niebla en la referencia [11].
Por otra parte, algunas aplicaciones de IoT se incluyen en la categoría de comunicaciones de baja latencia ultra-fiables, donde los tiempos de respuesta extremadamente bajos y predecibles son de suma importancia [12]. Por ejemplo, los servicios de seguridad vial y conducción autónoma requieren latencias de menos de 50 ms [13], mientras que para las redes inteligentes este valor es de hasta 20 ms; las fábricas inteligentes, por su parte, tienen los requisitos más estrictos, con latencias por debajo de 10 ms. La distancia entre los dispositivos de IoT y la nube a menudo conduce a una alta latencia de comunicación que dificulta satisfacer las limitaciones de tiempo de las aplicaciones.
La cobertura geográfica es uno de los beneficios de la computación en la niebla. En dependencia de los requerimientos del proyecto, los nodos nieblas se pueden ubicar más o menos cerca de los sensores y actuadores. Estos nodos, suelen ser los menos potentes, ya que tienen que procesar datos transitorios en un área limitada. Los nodos niebla, llamados nodos núcleos, por el contrario, se ubican más separadamente del borde de la red. Cuanto más alto sea el nivel de la pirámide, más potentes serán los nodos niebla [12] y podrán procesar mayor cantidad de datos persistentes en una zona geográfica más amplia.
Con respecto al consumo de ancho de banda, que es otro de los factores a considerar en la primera fase de esta etapa, se puede ilustrar, por ejemplo, en los vehículos autónomos que son capaces de generar un gigabyte por segundo; o los medidores inteligentes en los Estados Unidos que recopilan datos de consumo de energía a 53,6 petabytes (es decir, 53,6 millones de gigabytes) al año [12]. Mientras mayor sea el consumo o producción de datos, más justificado será el despliegue de nodos nieblas entre el borde de la red y la nube.
En la segunda fase de esta etapa de caracterización del proyecto, se definen los aspectos técnicos generales que deberán ser tenidos en cuenta acorde a la necesidad que va a ser satisfecha en el mismo. Dichos aspectos variarán en dependencia de la aplicación de ciudad inteligente que se vaya a implementar, pero en términos generales existen metas fundamentales que se deben tener en cuenta, las cuales son: escalabilidad, disponibilidad, rendimiento, seguridad y capacidad de gestión. Dichos aspectos están respaldados por la Arquitectura de Referencia del Consorcio OpenFog [9].
Por último, en la tercera fase de esta primera etapa, como ya se ha mencionado, deben ser caracterizados los datos que serán manejados por el sistema. La diversidad en los tipos y tamaños de datos influye en el comportamiento y el rendimiento de la niebla de manera significativa. Las solicitudes con datos voluminosos o “pesadas” requieren tiempo adicional para ser procesadas, en relación con las solicitudes con pocos datos o “ligeras”. Como consecuencia, se pueden congestionar nodos niebla que reciben solicitudes pesadas, mientras que otros tienen solo un poco de peticiones ligeras. Los nodos nieblas congestionados provocan un problema de latencia en la provisión de los servicios de IoT deseados. Este problema afecta el rendimiento de la niebla, así como a la calidad del servicio (QoS), especialmente para sistemas que son sensibles al tiempo. En esta fase se recomienda asumir algún modelo que garantice el balanceo de las cargas de procesamiento en los nodos niebla [14, 15].
3.2.- Etapa II: Diseño lógico
Partiendo de los resultados de la primera etapa, el análisis del contexto es la primera fase que se aborda en el Diseño Lógico de un proyecto de computación en la niebla. El contexto se define como "cualquier información que pueda utilizarse para caracterizar la situación de una entidad"[12]. Ejemplos de información de contexto pueden ser: el conjunto de nodos y/o servicios cercanos y las condiciones de la red local y las estadísticas de tráfico. La conciencia del contexto permite mejor prestación de servicios y utilización de recursos. También en el contexto se debe analizar el entorno urbano, para detectar todo lo que podría afectar de manera directa o indirecta el correcto despliegue de la computación en la niebla como, por ejemplo, el clima, la ubicación geográfica y la arquitectura de la ciudad.
En la segunda fase, se plantea realizar un análisis topológico del sistema niebla. Se debe partir de la ubicación de los dispositivos IoT, los que se encuentren desplegados en la ciudad por proyectos anteriores y los que serán instalados en el proyecto de computación en la niebla. Posteriormente, según los requerimientos que impongan el escenario de aplicación y el contexto, los nodos niebla deben ser ubicados de forma distribuida, ya sea en postes, muros o gabinetes. También, se recomienda analizar los patrones de tráfico que deben soportar los nodos niebla y la red en su conjunto. El diseño de la red del sistema niebla debe realizarse de forma jerárquica, pues aportará disponibilidad a los servicios, más eficiencia en el intercambio de datos y mayor inteligencia operativa al sistema niebla. El número de niveles en el diseño jerárquico será dictado por los requisitos de los escenarios, tales como: cantidad y tipo de trabajo requerido por cada nivel, así como el número de dispositivos IoT y recursos de los nodos niebla en cada nivel [16]. En la figura 3, se muestra cómo podrían ser desplegados los niveles jerárquicos de un sistema niebla en una ciudad inteligente.
En la tercera fase de esta etapa, debe diseñarse una estrategia de seguridad que considere, entre otros, los activos a proteger, los posibles riesgos de seguridad y los mecanismos para lograr la seguridad íntegra del sistema. La decisión de cuáles activos proteger y cómo protegerlos depende del uso previsto y de su ubicación. Entre estos activos se pueden incluir: infraestructura tecnológica, servicios disponibles, información sensible (propiedad intelectual, datos financieros, información personal), entre otros. Un importante paso en el diseño de la estrategia de seguridad es analizar los riesgos de seguridad, sus probabilidades de ocurrencia y el impacto que podrían tener sobre el sistema. En el despliegue de la computación en la niebla, los mecanismos de seguridad a implementar dependen del modelo de amenazas y del valor del activo a proteger, pudiendo existir diferentes niveles de seguridad. Estos van desde la protección física a los dispositivos, la protección al software y la seguridad de las aplicaciones, hasta la protección a la red. Además de los mecanismos de seguridad antes planteados, un aspecto importante a tener en cuenta es la gestión de la seguridad que considera un conjunto de aspectos, entre los que se destacan las herramientas de gestión a utilizar y la capacitación del personal, los cuales son vitales para proveer una efectiva y proactiva gestión, que evitará la ocurrencia de afectaciones a la seguridad del sistema niebla. El éxito del despliegue de modelos basados en la niebla requiere un marco de orquestación que pueda, de forma simple, mantener y mejorar la seguridad de los datos y la fiabilidad del sistema [17].
En la cuarta y última fase de esta etapa, se deben diseñar las estrategias de gestión, tanto de los recursos de la infraestructura a desplegar como de los datos que se obtendrán del sistema niebla, una vez implementado. En función de definir la dimensión del sistema de gestión, se deben determinar los recursos a gestionar, los datos de gestión que se obtendrán, cómo acceder a los mismos y la forma en que estos se procesarán. Además, se debe tener en cuenta la escalabilidad del sistema niebla y los patrones de tráfico del mismo. Entre los recursos que deben ser gestionados están: las capacidades de memoria, la CPU y el almacenamiento, así como la temperatura, la humedad y el consumo de energía de los nodos niebla, entre otros aspectos. Los protocolos para gestionar los sensores, nodos niebla y dispositivos de red pueden variar, principalmente, en función de las características de gestión que ofrezcan los recursos gestionados y del sistema de gestión que se emplee. La gestión de los datos debe ser vista en dos partes: la realizada por los nodos niebla de forma distribuida en tiempo real (Front-end) y la realizada de forma centralizada en la nube (Back-end), mientras se analizan para cada caso los elementos necesarios, tales como sistemas de análisis en tiempo real, microservicios y sistemas de distribución de datos [18].
3.3.- Etapa III: Diseño físico
En esta etapa, se consideran tres fases: selección de las tecnologías de interconexión, caracterización y selección de software y hardware, y configuración.
En la primera fase, a partir de haberse realizado en las etapas anteriores el análisis topológico del sistema niebla y definido el ancho de banda requerido por los datos que serán transportados por la red de dicho sistema, se podrán seleccionar las tecnologías que conectarán los diferentes elementos que conforman dicho sistema. Existen diversos estándares e interfaces físicas que pueden emplearse, ya sea el medio de comunicación cableado o inalámbrico. La elección de la tecnología a emplear deberá estar en función de los requisitos de conectividad y de la ubicación de cada nodo dentro del sistema niebla.
En la segunda fase serán seleccionados los elementos de software y hardware necesarios para el despliegue de un sistema niebla. Se debe comenzar con la selección de los dispositivos de IoT (sensores y actuadores) de acuerdo a las aplicaciones a desplegar, las que se deben haber definido en la primera etapa de este procedimiento.
Para la selección de los sensores como dispositivos IoT se debe considerar el tipo de sensor (de temperatura, humedad, presión, etc.), el alcance de detección que posee, su tipo de alimentación, las opciones de seguridad y gestión que presenta, así como el protocolo de comunicación que utiliza. Con respecto a los actuadores, hay que tener en cuenta el método que emplean para ejecutar una acción (neumático, hidráulico o electrónico), el tiempo que demora en ejecutar dicha acción, el protocolo de comunicación que emplea y las opciones de gestión y seguridad que presentan.
Con respecto a la capa niebla se recomienda, primeramente, seleccionar el software niebla a utilizar, y el hardware adecuado para este y con ello, conformar el nodo niebla. El software es el elemento más importante de los nodos niebla; proporcionándole las posibilidades de interoperabilidad, gestión de recursos y datos, programabilidad y agilidad de procesamiento que ofrece la computación en la niebla. Para la selección del software niebla, se recomienda tener en cuenta determinados aspectos como es el tipo de licencia: si es de código abierto o no, si es gratuito o de pago, si el software es o no agnóstico al hardware donde se instale, la técnica de virtualización que utilice, si presenta soporte para tareas relacionadas con el descubrimiento, configuración y mantenimiento de recursos, así como para la recopilación de datos de dispositivos IoT y su almacenamiento, procesamiento y reenvío a aplicaciones y servicios basados en la nube. Además, deben considerarse opciones de gestión de seguridad y privacidad, a través del control de acceso a los datos, sistemas de autenticación y autorización, así como posibilidades de cifrado de datos. Entre los principales software niebla propietarios que se pueden encontrar en el mercado están: Cisco IOx, FogHorn, Nebbiolo FogOS, mientras que de código abierto existen software tales como OpenVolcano, Eclipse ioFog, FogLAMP y FogFlow, este último con una comunidad heredada del ecosistema FIWARE de IoT [19]. Los principales elementos que se recomienda tener en cuenta para la selección del hardware del nodo niebla son: el tipo de dispositivo (router, switch, punto de acceso o hardware de propósito general, como por ejemplo un Raspberry Pi), si soportan el software niebla seleccionado, los protocolos de comunicación que utilizan, si están diseñados para resistir las condiciones ambientales de la ciudad donde se realizará el proyecto, sobre todo si trabaja en zonas exteriores o solo en interiores, así como las opciones de gestión y seguridad que presentan.
Por último, en esta fase, debe ser seleccionada la o las plataformas en la nube, qué se utilizarán para realizar diferentes funciones como: administración de los nodos niebla y los dispositivos IoT, instalación y gestión de las aplicaciones IoT, analíticas (Big Data) y gestión de políticas de seguridad, entre otras. Dada la naturaleza distribuida de la computación en la niebla, algunas de las funciones realizadas por la plataforma en la nube podrían ejecutarse también en los nodos niebla. Para la selección de la plataforma en la nube, a consideración de los autores, se deben tener presentes aspectos como: si es gratuita o de pago, opciones de seguridad que posee (control de acceso, cifrado de datos, etc.), bases de datos con que trabaja, posibilidades de servidores virtuales, administración de contenedores y selección de instancias de computación de uso general con que cuenta, las cuales ofrecen un equilibrio entre recursos de cómputo, de memoria y de red; si posee soporte para aplicaciones distribuidas, permite configuración de recursos, dispone de herramientas para monitorización de alertas, se puede integrar con la infraestructura existente y contiene herramientas para el análisis de datos.
En la tercera y última fase de esta etapa, se deben configurar los elementos seleccionados, para lo que se recomienda listarlos, especialmente los de conectividad. Realizar de forma incorrecta la configuración podría provocar: ineficiente funcionamiento, recolección de datos erróneos o innecesarios y traería otras consecuencias no deseadas (fallos técnicos, roturas, tiempos de inactividad y riesgos de seguridad). Para la correcta ejecución de esta fase, se deben obtener y estudiar a fondo los manuales de configuración de cada uno de los elementos a utilizar y, en caso necesario, solicitar soporte técnico al fabricante.
3.4.- Etapa IV: Implementación
Esta constituye la última etapa del procedimiento y se encuentra dividida en tres fases: prueba, despliegue y gestión. En la primera fase, se deben realizar pruebas destinadas a comprobar la estabilidad de la comunicación entre los dispositivos IoT y los nodos niebla, para lo cual, se deben hacer pruebas como, por ejemplo, comprobar el correcto funcionamiento de los protocolos de comunicación y de la calidad de la señal que se recibe. Estas pruebas pueden ser físicas o simuladas y sus resultados permitirán rectificar la configuración y ubicación de los dispositivos involucrados. Una vez que se realice satisfactoriamente la fase de prueba, se procederá al despliegue o reubicación de los elementos que conforman el proyecto de computación en la niebla en una ciudad inteligente.
En la tercera fase de esta etapa, se debe verificar si la implementación realizada del sistema de computación en la niebla es correcta y si su funcionamiento es adecuado lo cual deberá realizarse mediante una gestión constante. Para esto se deberá emplear el sistema de gestión seleccionado, el cual debe permitir obtener el desempeño, visualizar las alarmas y obtener las estadísticas de mayor importancia del sistema niebla. Esto permitirá verificar si los requerimientos previstos para el proyecto se cumplieron y, de no ser así, se debe volver a ejecutar las etapas anteriores del procedimiento. Como antes se mencionó, esta fase es constante pues permitirá conocer si, después de culminada la implementación, aparece algún problema en el sistema niebla.
4.- Validación parcial del procedimiento
Con el objetivo de validar parcialmente el procedimiento que se propone para la implementación de la computación en la niebla en ciudades inteligentes, se emplea el proyecto del Programa Nacional de Ciencia Tecnología e Innovación (PNCTI) de Informatización titulado “Experimentación para ciudades inteligentes sostenibles en La Habana Vieja”. Este proyecto es coordinado por la Unión de Informáticos de Cuba y participan la Oficina del Historiador de la Ciudad (OHC), la Universidad Tecnológica de la Habana (CUJAE) y otros actores del municipio.
La Habana Vieja posee características únicas para enfrentar tanto los retos de una ciudad inteligente sostenible, como los de la dinamización de la innovación comunitaria, por lo que fue seleccionada para aplicar el procedimiento que se propone [20]. La propuesta de procedimiento que se hace en este artículo se enmarca dentro de la primera etapa del proyecto del PNCTI mencionado, como una contribución al establecimiento de parte de la infraestructura TIC que se requiere para el desarrollo de varias aplicaciones y servicios inteligentes, las cuales se ven beneficiadas con las posibilidades que brinda la computación en la niebla. A continuación, se aplica cada una de las etapas del procedimiento que se propone a un caso de uso en La Habana Vieja.
4.1.- Primera etapa
Una de las problemáticas principales de la Habana Vieja es el crecimiento turístico que está teniendo lugar. En contraposición, se aprecia una carencia de servicios inteligentes habilitados para los turistas y ciudadanos. La disponibilidad de información por parte de los viajeros es una necesidad en cualquier ciudad. Esta información puede estar relacionada con diversos contextos y para su gestión se requieren desplegar varias soluciones IoT [20].
Para la validación parcial que se realiza del procedimiento, se ha considerado el caso de uso de un sistema inteligente de recogida de desechos, debido a que usualmente este proceso es ineficiente, ya que en La Habana Vieja existe con frecuencia congestión a causa de la estrechez de sus calles. De acuerdo a los requerimientos de latencia y distribución geográfica de la aplicación a emplear, se propone utilizar la tecnología de computación en la niebla, con capacidad de procesamiento de datos, análisis y seguridad. Dicho sistema debe ser escalable, debido a que se espera un aumento de dispositivos IoT y nodos niebla en consonancia con el incremento de las aplicaciones IoT que requiere La Habana Vieja. También debe proveer alta disponibilidad y seguridad, ya que una falla afectaría la calidad del servicio público y provocaría descontento entre los habitantes y visitantes de la ciudad.
Para el caso de uso de la recolección de desechos en La Habana Vieja, los datos a gestionar serían fundamentalmente los niveles de llenado de los contenedores de basura que participan en el experimento, transmitidos regularmente a la niebla por sensores ultrasónicos. Los datos provenientes de los GPS a bordo de los camiones complementarían la caracterización de los datos del caso de uso. Para la gestión de los datos obtenidos de los GPS ubicados en los camiones de recogida de desechos se podría emplear la variante de la niebla o se podrían integrar a partir de un sistema de control y gestión de flotas de vehículos que funcionaría desde la nube. En esta validación parcial se opta por acotar el caso de uso al procesamiento en los nodos niebla de los datos transmitidos desde los sensores ultrasónicos ubicados en contenedores de basura, y no se incluye la transmisión y acciones derivadas del seguimiento de vehículos por GPS, que podría incluirse en una etapa posterior.
4.2.- Segunda etapa
En la primera fase de esta etapa, al realizar un análisis de condiciones de la ciudad, se tiene que La Habana Vieja es la zona más antigua y el municipio más pequeño de la capital cubana, con un trazado urbanístico de unos 5 km² de superficie. El clima de la ciudad es tropical como en el resto de la Isla, sin embargo, recibe una mayor influencia continental en invierno, lo que hace que las temperaturas sean más frescas entre los meses de noviembre a febrero. Las precipitaciones son abundantes de mayo a noviembre, por la ocurrencia de ciclones en la temporada mencionada, lo cual puede afectar eventualmente a la ciudad. Debido a las características de La Habana Vieja, los dispositivos hardware que se instalen deben soportar altas temperaturas, alto nivel de humedad y salitre marinos, y se deben ubicar en lugares donde no se vean afectados por el impacto de huracanes, sobre todo en el litoral costero. Además, su instalación no debe afectar significativamente el entorno que lo rodea, debido a que la gran mayoría de las edificaciones son patrimoniales. En la segunda fase de esta etapa, donde se realiza el análisis topológico del sistema niebla, se han considerado tres niveles jerárquicos: los dispositivos IoT (sensores ultrasónicos, por ejemplo), los nodos niebla situados en los gabinetes como nodos niebla fijos) y la nube (ubicada en el centro de datos de ETECSA). En la figura 4, se destaca, en un rectángulo amarillo, el área utilizada para la validación, donde se encuentran los gabinetes de ETECSA que serán utilizados para ubicar los nodos nieblas.
En cuanto al diseño de la estrategia de seguridad, que debe realizarse en la tercera fase de esta segunda etapa, se ha considerado utilizar sistemas de detección de intrusos, apoyarse en la seguridad implementada por ETECSA en sus gabinetes para proteger los nodos nieblas, utilizar cajas de protección y cámaras para la vigilancia de los sensores, entre otros. Además, se debe capacitar a los administradores de la red, para evitar fallas por negligencias o desconocimiento y así proveer una gestión proactiva de la seguridad.
Como parte de la cuarta fase de esta etapa, relacionada con la estrategia de gestión, se consideró que la gestión del sistema niebla debe ser centralizada, para lo cual se emplearía el sistema que se seleccione para gestionar los nodos niebla y los dispositivos IoT. Se recomienda utilizar para la gestión de los nodos niebla el protocolo SNMP (Simple Network Management Protocol) [22] y para la gestión de los dispositivos IoT, por sus características, el protocolo ligero M2M (LWM2M, por las siglas del término en inglés Lightweight Machine to Machine) [22].
4.3.- Tercera etapa
En la primera fase de la tercera etapa, en la que se seleccionan las tecnologías de interconexión, se determinó que la comunicación de los dispositivos IoT, ubicados en los contenedores de basura, con los nodos niebla de los gabinetes de ETECSA será principalmente a través del protocolo 802.11 (Wi-Fi) y para los dispositivos más cercanos y con menor tasa de transmisión de datos, se plantea utilizar Bluetooth. La conexión entre los nodos niebla ubicados en los gabinetes y la plataforma en la nube en el centro de datos de ETECSA se debe realizar a través de la fibra óptica desplegada por dicha empresa.
En la segunda fase, relacionada con la caracterización y selección de software y hardware, específicamente en los dispositivos IoT que se deben colocar en los contenedores de desechos sólidos, se recomienda utilizar el sensor ultrasónico Hc-sr04 Sonar, el cual será ubicado en la parte interior del contenedor de basura apuntando hacia la base para medir la distancia entre el dispositivo y el objeto más cercano, por lo que cuanto más residuos haya menor distancia medirá el sensor y mayor porcentaje de llenado marcará. Para el camión de recogida de residuos se utilizará un sistema de seguimiento con el empleo de Sistemas de Posicionamiento por Satélite (GPS), con envíos de datos cada cierta distancia recorrida para ahorrar recursos de infraestructura de comunicación. Este sistema es muy útil para la ciudad, ya que en esta puede haber gran cantidad de tráfico vehicular, por lo que el camión puede permanecer en el mismo lugar durante cierto tiempo y la información que enviaría sería poco relevante.
Con respecto al software de los nodos niebla, se propone utilizar FogFlow [23], el cual es un marco de código abierto, desarrollado para soportar gestión de nodos en la niebla en plataformas IoT de ciudades inteligentes.
En cuanto a hardware, se ha considerado emplear hardware de propósito general programable con código abierto, debido a que permite independencia tecnológica, al no tener que depender únicamente del software que proporciona el fabricante de hardware propietario. Luego de analizar las diferentes variantes que existen en el mercado, se propone utilizar la tarjeta Raspberry Pi modelo B+, para los nodos niebla ubicados en los gabinetes. Para su protección física se recomienda utilizar cajas protectoras que están diseñadas especialmente para estos tipos de dispositivos.
Como sistema de gestión de dispositivos IoT, se propone: FIWARE [24], del propio ecosistema donde se genera el marco FogFlow [23]. FIWARE es de código abierto, compatible con prácticamente cualquier tipo de dispositivo o sensor. Tiene múltiples interfaces con bases de datos externas como MongoDB a través de Cygnus, lo que permite hacer persistente los datos capturados de los dispositivos. Además, proporciona una estructura de servicios y extensiones para diferentes tipos de aplicaciones IoT e incluye gestión de dispositivos, gestión de configuración y analíticas, entre otras funciones.
La disposición de los diferentes elementos que intervienen en la gestión inteligente de residuos en un entorno de computación en la niebla se observa en la figura 5.
4.4.- Cuarta etapa
En la cuarta y última etapa, se recomienda realizar diferentes pruebas, con vistas a comprobar si el diseño propuesto del sistema niebla cumple con las metas planteadas. Se plantea hacerlo por simulación con el empleo de iFogSim [25] que es la herramienta de simulación de niebla más ampliamente utilizada y estable para entornos de computación en la niebla. Además, iFogSim permite medir el desempeño del sistema niebla en términos de latencia, congestión de la red y consumo de energía.
Considerando el caso de uso de la recogida de desechos en la Habana Vieja, se deben realizar pruebas de campo entre un contenedor (sensor ultrasónico) con un gabinete, y entre este y la nube; e ir incorporando otras pruebas a medida que se vayan habilitando nuevos tipos de nodos niebla (como los ubicados en los camiones) y/o nuevos dispositivos IoT (otros sensores que ofrezcan información de contexto, por ejemplo). Esto contribuirá a la comprobación del sistema niebla en un entorno real, donde debe observarse si la implementación experimental cumple con los metas del proyecto o deben ser ajustadas nuevamente. Luego de completar la fase de prueba, podrá ser desplegada la solución diseñada, mediante la ubicación de los sensores y los nodos nieblas en los lugares previstos con los soportes respectivos para su fijación de forma segura. Mediante el uso de FIWARE y FogFlow se realiza la gestión de todo el sistema una vez completada la fase de despliegue, con el fin de monitorizar tanto el estado de los nodos nieblas, como de los dispositivos IoT y los datos que estos envían, lo que permitiría verificar continuamente el correcto funcionamiento del sistema niebla implementado en la ciudad.
5.- Conclusiones
La contribución principal de este artículo es la provisión de un método sistemático, en forma de procedimiento, para implementar el paradigma de computación en la niebla en el marco de ciudades inteligentes. Dicho procedimiento, consta de cuatro etapas: caracterización del proyecto, diseño lógico, diseño físico e implementación, conformadas cada una por diferentes fases que explican los pasos a seguir. Gracias a la ejecución del procedimiento en el marco del proyecto “Experimentación para ciudades inteligentes sostenibles en la Habana Vieja”, del PNCTI de Informatización, se ha podido contar con una propuesta de infraestructura de ciudad inteligente para experimentar situaciones reales en entornos cercanos al borde de la red.
Esta investigación constituye la primera aproximación del despliegue de nodos niebla asociados a un Laboratorio de Innovación para experimentar escenarios de ciudades inteligentes. Asimismo, abre un camino a futuras investigaciones relacionadas, orientadas a la explotación de plataformas IoT y al paradigma de computación en la nube, la niebla y el borde de la red.