Comunicación presentada al V Congreso Ciudades Inteligentes.
Autor
- Javier Berdonces Fernández, Advanced Technology & Architecture Senior Manager, Accenture
Resumen
CityOS es una plataforma analítica con altas capacidades de integración y procesado de la información que permite extraer el conocimiento de los datos gracias a las tecnologías Big Data. CityOS consolida información que proviene tanto del mundo IoT y de la sensórica, como de diferentes sistemas de información, redes sociales y sistemas de terceros para generar nuevos casos de uso basados en capacidades analíticas avanzadas. CityOS no solo cubre las necesidades en el ámbito de las Smart Cities, sino que va más allá, consolidando toda la información relevante de la ciudad para poner al ciudadano en el centro con la intención de ofrecerle una gran variedad de servicios digitales. CityOS no solo es una Plataforma, ya que se dota de una serie de procesos que hacen que la ingesta de los datos se relacione con un modelo común basado en una visión única de la ciudad descrita en una ontología propia. CityOS proporciona también un modelo de consumo de los datos seguro, escalable y basado en estándares gracias al uso de un API Manager. También tiene los componentes para implementar un Gobierno del Dato basado en la identificación de patrones y eventos y la gestión tuteladas de los procesos para dotar de calidad a los datos.
Palabras clave
CityOS, Smart Cities, Analítica, Big Data, Plataforma, Open Source, IoT
El ciudadano en el centro de los servicios digitales
Introducción
CityOS es una plataforma analítica con altas capacidades de integración y procesado de la información que permite extraer el conocimiento de los datos gracias a las tecnologías Big Data. CityOS consolida información que proviene tanto del mundo IoT y de la sensórica, como de diferentes sistemas de información, redes sociales y sistemas de terceros para generar nuevos casos de uso basados en capacidades analíticas avanzadas. CityOS no solo cubre las necesidades en el ámbito de las Smart Cities, sino que va más allá, consolidando toda la información relevante de la ciudad para poner al ciudadano en el centro con la intención de ofrecerle una gran variedad de servicios digitales.
CityOS no solo es una Plataforma, ya que se dota de una serie de procesos que hacen que la ingesta de los datos se relacione con un modelo común basado en una visión única de la ciudad descrita en una ontología propia. CityOS proporciona también un modelo de consumo de los datos seguro, escalable y basado en estándares gracias al uso de un API Manager. También tiene los componentes para implementar un Gobierno del Dato basado en la identificación de patrones y eventos y la gestión tuteladas de los procesos para dotar de calidad a los datos.
CityOS se apoya en las diferentes tecnologías y técnicas analíticas para dotar al Ayuntamiento de Barcelona de modelos predictivos y de simulación que permiten optimizar la toma de decisiones, eficientar la administración local y redundan en un mejor servicio para las personas que viven en la ciudad.
Por supuesto, la seguridad es un aspecto clave en CityOS, ya que la Plataforma tiene que garantizar la privacidad y uso ético de los datos en un ecosistema multitenant en los que las capacidades de encriptación, autenticación, autorización y trazabilidad deben ser en todo momento la base fundacional del tratamiento de los datos.
La Plataforma está diseñada para una gran escalabilidad, tanto horizontal como vertical, que permite crecer en volumen y tipología de los datos, ya sean estructurados o no. La aproximación modular de CityOS también permite la sustitución de sus diferentes componentes por los que se ajusten a las necesidades de cada implementación concreta, dándole diferentes flavors a cada una de las implantaciones de CityOS.
CityOS es un proyecto basado en productos Open Source. Tanto es así, que la propia experiencia desarrollada en el Ayuntamiento de Barcelona ha dado lugar a una Comunidad Open Source cuya misión es difundir la Plataforma CityOS en el ámbito de las entidades que tengan necesidades similares. La Comunidad quiere ser un punto central para la colaboración que permita replicar las implementaciones de Barcelona, creando un ecosistema de entidades que contribuyan al desarrollo de CityOS.
En ese sentido, la Comunidad no se ocupa únicamente de unificar los diferentes desarrollos de componentes (software) sino que surge con la intención de agrupar el conocimiento y proporcionar soporte, foros y habilitar canales en los que las entidades colaborantes puedan encontrar un marco de referencia.
CityOS es en definitiva la apuesta de Barcelona por una aproximación a los servicios digitales, iniciativas Smart y analítica avanzada basada en la innovación gracias a una plataforma Open Source multipropósito que permite ofrecer valor al ciudadano a través de nuevos casos de uso.
Creación de la Plataforma CityOS
El proyecto de Creación de la Plataforma CityOS arranca con una fase de ideación y conceptualización llevada a cabo por el Ayuntamiento de Barcelona y el Institut Municipal d’Informatica, que gestiona las TIC del Ayuntamiento de Barcelona, en una primera fase embrionaria donde se describen los fundamentos de la Plataforma, así como un esbozo funcional de la propia Arquitectura de la solución. En este primer Blue Print, se describen a alto nivel las responsabilidades de los diferentes componentes, así como la interacción de los mismos. También se define la estrategia general para la implantación de la Plataforma y la Integración de los datos.
A partir de aquí, se inicia un diálogo competitivo para la definición en detalle de la Plataforma, aterrizar la arquitectura utilizando productos Open Source, así como la implementación de la misma y operación hasta la finalización de las diferentes etapas del proyecto. Este contrato se otorga la UTE CIMO, compuesta por Engie, Cellnex y Accenture.
Tras un periodo de tiempo para la formalización del contrato, se lanza la iniciativa de construcción de CityOS. La primera fase del proyecto resulta crucial para la consecución de los objetivos. En este punto se define una primera visión funcional de la Plataforma, consistente de los componentes lógicos que van a formar parte de la solución final de la arquitectura técnica.
Se define CityOS se creará como un Open System, consolidando información de diferentes fuentes de datos, procesarlos para extraer el valor y servirlos a los diferentes servicios o aplicaciones que compongan los casos de uso que acaben generando un beneficio para el ciudadano.
Para la entrada de datos, se concibe procesos con la misma filosofía para integrar las fuentes Online y Batch, pese a que las tecnologías sobre las que se implementen sean significativamente diferentes. A tal efecto se dota la información de una serie de metadatos comunes para cada uno de los datos que se incorporan a la Plataforma, que permiten una gestión común de su Ciclo de Vida y Gobierno, unificando la gestión de la Calidad, Trazabilidad y Confidencialidad del dato.
Para gestionar los diferentes estadios de madurez del dato en la Plataforma, se definen diversas áreas dentro del repositorio. Una primera área de Staging, donde se almacenan los datos en crudo tal y como vienen de las diferentes fuentes, pero enriquecidas con los metadatos que identifican el origen, así como sus principales características. En una segunda área de Normalización e Historificación, se unifican los formatos, tanto a nivel técnico como funcional, para garantizar la homogeneidad de éstos. Además, se relacionan con un modelo de Ontología de la ciudad, que permite contextualizarlo dentro del modelo semántico de la ciudad. También se historifican, de manera que para cada origen de datos, se conservan los diferentes valores que han existido a lo largo del tiempo, permitiendo aplicar procesos analíticos más ricos y entrenar futuros modelos.
Una vez los datos son homogéneos, tienen profundidad temporal y contexto funcional, se procesan gracias a técnicas analíticas utilizando modelos predictivos y de simulación que permiten extraer información valiosa de los dados desagregados y originalmente distribuidos en silos de información. Tanto los datos normalizados, como el resultado de los análisis se almacenan en una capa de Publicación donde serán consumidos por las diferentes aplicaciones o servicios.
De cara a gestionar todas las interficies de consumo, también se concibe un componente que regule los consumos de los datos, para controlar las cuotas de acceso, autenticaciones, autorizaciones y volumetrías de los datos consumidos. Es por tanto coherente ingestar los datos con un procedimiento común, hacer un tratamiento homogéneo de los mismos y proporcionar un mecanismo de consumo que estandarice el acceso a los datos.
También se prevee un componente que permita hacer Data Discovery sobre los datos residentes en CityOS a los que se tenga autorización. Este proceso se enriquece con la relación de los propios datos con la Ontología, que jerarquiza y relaciona a los mismos funcionalmente. El componente bautizado como Directivas, permite que la Plataforma gestione alertas y eventos en los datos de manera que se puedan lanzar señales o actuadores a los sistemas origen o de terceros. También se conceptualiza un connector de interoperabilidad, para la futura comunicación con otras ciudades, regiones o países que implementen su propio CityOS (ya que se ha habilitado una Comunidad para compartir la experiencia de Barcelona y que pueda ser replicada en otros lugares).
Una vez cerrado el diseño conceptual de la Plataforma, se aterrizó la visión más tecnológica que serviría de Blueprint para la Arquitectura detallada y que se puede ver en la Figura 2. Todos los productos seleccionados para construir los componentes conceptualizados anteriormente se basan en iniciativas Open Source.
Para la ingesta de datos se utilizaron Kafka (Online) y Talend (Batch), así como Flink para la detección de eventos complejos. El repositorio Big Data está basado en Cloudera, por sus capacidades avanzadas en la gestión de la seguridad. El consumo de los datos se gestiona utilizando un API Manager (WSO2) y las APIs que se desplegan están basadas en estándares, como por ejemplo WFS.
En el ámbito de la Analítica se han implementado los primeros casos de uso con R, aunque la Plataforma permite la utilización de Python o cualquier software habitual en el ámbito del tratamiento complejo de datos. En el ámbito de las directivas, se utiliza Activitii como BPM, ya que permite la gestión con procesos automáticos o atendidos de los diferentes eventos técnicos o de negocio que se detectan en la Plataforma. También se implementa ELK para la futura gestión del End to End de negocio a partir del diseño avanzado de los logs de cada producto.
Para la definición de la Ontología, se utiliza Protegé, mientras que para el proceso técnico que relaciona los datos con el modelo se utiliza Apache Jena. Como Kernel para encapsular los servicios se utiliza Apache Karaf. Desde el punto de vista de la seguridad, se ha utilizado un módulo sobre el que se delega la integración con el gestor de identidades del Ayuntamiento, en concreto WSO2 Identity Server. De esta manera, la visión modular de la Plataforma se simplifica, ya que los diferentes componentes se integran con esta pieza que hace de hub para conectar con el sistema de gestión de identidades común al resto de aplicaciones. La infraestructura se monitoriza con Zabbix.
Una vez el diseño se cerró y aprobó, se implementó la plataforma, desde una infraestructura y comunicaciones creadas add-hoc, a la instalación, configuración e integración de los diferentes componentes pasando por la codificación de todos los procesos comunes para la ingesta de datos. Una vez se disponía de la Plataforma, se pasó a la fase de integración de las diferentes fuentes de datos del Ayuntamiento (aproximadamente 150 datasets en 3 entornos) y la creación de los casos de uso para validar el funcionamiento de la Plataforma.
Una vez la Plataforma se ha desplegado en Producción y se está operando para dar servicio al Ayuntamiento, el objetivo para Barcelona es desplegar nuevos casos de uso y servicios digitales basados en el análisis avanzado de datos y que redunden en la mejoría de la vida de los ciudadanos.
Material y métodos
Para la creación de la Plataforma CityOS se ha utilizado una mezcla entre metodologías Agile, sobre todo en lo que a Iteración de diferentes sprints se refiere, para la creación de los componentes de software y la integración de datos, y metodologías tradicionales Waterfall para la construcción de la infraestructura y las comunicaciones. Ambas metodologías, ampliamente utilizadas y conocidas en el mundo de las TIC se han adaptado al proyecto y a la normativa del Institut Municipal d’Informatica.
Resultados
La puesta en Producción de una Plataforma analítica multipropósito como CityOS que permite habilitar prácticamente cualquier caso de uso es ya un éxito en sí mismo, ya que capacita a la ciudad de Barcelona para desarrollar un nuevo catálogo de servicios para los ciudadanos que sería impensable en un entorno con la información distribuida en Silos y con procesos heterogéneos y anárquicos.
A nivel de casos de uso analíticos que se han implementado o están pendientes de despliegue en CityOS, destacan tres. El primero es el análisis predictivo del fenómeno de la Gentrificación en Barcelona, gracias al uso anonimizado de los datos de residencia de las personas enriquecido con diferentes datos socioeconómicos que permiten evaluar tendencias de los diferentes barrios y representar geográficamente la evolución de los mismos.
También se utiliza CityOS para nutrir datos en Real Time a la aplicación Situation Room, que articula un punto único de toma de decisiones en caso de emergencia o necesidad de respuesta rápida entre diferentes entidades como Autoridades, Bomberos, Guardia Urbana, etc. Una vez más, la representación geográfica de los eventos permite visualizar de forma sencilla lo que está sucediendo en la ciudad y agiliza el proceso de decisión, especialmente en situaciones complejas.
También se han analizado los datos de siniestralidad en la ciudad y se ha elaborado un modelo predictivo orientado a predecir dónde se pueden producir accidente de manera que se puedan a llevar a cabo acciones preventivas que sirvan para evitar desenlaces fatales. En ese sentido, este caso de uso se está ejecutando en CityOS, pero todavía falta integrar la ingesta de los datos automáticamente (en curso en el momento de redacción de este documento).
Discusión y conclusiones
Como conclusión, Barcelona ha construido una Plataforma que capacita a la ciudad para ofrecer toda una serie de servicios de forma ágil y que redunden en el ciudadano. Barcelona ha evolucionado de una plataforma únicamente Smart a una visión más amplia en la que CityOS se convierte en la Urban Platform de Barcelona, que no solo consolida información y casos de uso provenientes de IoT o sensórica, si no que va más allá ampliando el horizonte a todos aquellos casos de uso analíticos que extraigan valor de los datos de la propia ciudad, sean de sensores, de sistemas de información o incluso de terceros.
En este sentido, es el momento ideal para culminar el gran principio básico asociado a Big Data: “Think Big, Start Small, Scale Fast”. Barcelona ha pensado en grande a la hora de plantear iniciar su viaje Analítico apostando por una Plataforma multipropósito en lugar de casos de uso específicos y aislados que perpetúan el modelo de silos. Barcelona ha empezado por un conjunto de casos de uso reducido pero heterogéneo para demostrar la versatilidad de la Plataforma y asentarla desde el punto de vista de la tecnología, dado el alto componente de innovación del proyecto.
Ahora es el momento ideal para escalar rápido, tanto en casos de uso, volumen de datos o integraciones nuevas, siempre con el objetivo de ofrecer una corona de servicios digitales que sitúe al ciudadano en el centro de todo.
Agradecimientos
Desde Accenture queremos agradecer al Institut Municipal de Informática y al Ayuntamiento de Barcelona por compartir este viaje al corazón de la innovación y hacernos partícipes de una de las iniciativas Smart más ambiciosas de Europa, así como al resto de empresas colaboradoras en el proyecto: Cellnex y Engie.