Comunicación presentada al V Congreso Ciudades Inteligentes
Autor
- Francisco Romero, Director programa Ciudades Digitales, IBM España
Resumen
El presente documento describe nuestra propuesta de solución basada en diferentes componentes: plataforma inteligente, canal turístico digital y cuadro de mando integral predictivo de la experiencia turística. Así, creemos que la solución tiene que conseguir tres objetivos principales: -Proporcionar una plataforma turística inteligente que permita incrementar la utilización de los servicios y recursos del destino, dotando a los turistas de contenidos personalizados en base a sus preferencias y por lo tanto de la mejor experiencia del turista. – Proporcionar a los agentes turísticos de una herramienta que les permita aconsejar, informar y vender a los turistas. -Disponer de una herramienta analítica y cuadro de mando que permita realizar un seguimiento de los kpi’s definidos con el objetivo de atraer al turista, maximizar su experiencia y asegurar la recurrencia.
Palabras clave
Transformación Digital, Ciudades, Turismo, Tecnologías Cognitivas
La solución
La solución funcional está diseñada desde el prisma de la innovación y experiencia de usuario:
- Cada componente de la solución que presentamos nace del análisis de las necesidades del usuario final, a través de sesiones de descubrimiento y de exploración, en las que utilizamos técnicas de Design Thinking para tener la seguridad de que responden a las expectativas del usuario.
- Hacemos la conceptualización de la solución con un enfoque de Producto Mínimo Viable (MVP) donde priorizamos las necesidades de los usuarios, que se transforman en requerimientos que organizamos en sprints.
- Construimos en procesos iterativos cortos (sprint) siempre al lado del usuario, que participa de la definición a lo largo de todo el proceso, garantizando su implicación con el proyecto.
- Validamos directamente los resultados con el usuario. Nuestro objetivo es obtener el máximo nivel de satisfacción, lo que nos asegura que la solución será utilizada y que mejorará su día a día.
En cuanto a la solución técnica, nuestro enfoque consiste en proporcionar una plataforma que se pueda evolucionar fácilmente a medida que el cliente lo demande y la tecnología vaya evolucionando, de forma que se puedan incorporar o sustituir componentes según necesidades.
El modelo de arquitectura futura se basa en los siguientes principios de diseño:
- Soluciones basadas en la nube que proporcionan servicios de negocio accesibles desde cualquier lugar y para todos los actores.
- Estructurada en módulos y capas totalmente desacopladas, reduciendo la dependencia en tecnologías propietarias o específicas que creen barreras para la integración de nuevas soluciones.
- Módulos aislados e independientes de plataformas tecnológicas de base, mediante la contenerización de soluciones.
- Con una arquitectura de integración basada en estándares de mercado como API REST, MQTT o LoRaW y mediante la exposición de un catálogo de servicios disponibles tanto para aplicaciones internas como externas.
- Una capa de aplicaciones frontales que consumen y comparten los servicios de negocio, adaptados a las necesidades de cada consumidor y con alta capacidad de re-utilización.
Características y prestaciones de la plataforma
La plataforma y arquitectura de referencia propuesta se ha diseñado teniendo en cuenta los principios clave de diseño de arquitectura y los bloques funcionales objeto de este proyecto.
Aspectos generales de la arquitectura
En base al análisis de las necesidades del pliego proponemos la siguiente arquitectura:
De forma genérica definimos que la plataforma cumplirá las siguientes características clave:
- Todos los componentes lógicos han sido pensados para permitir una escalabilidad ágil y controlada teniendo en cuenta la siguiente regla; Cualquier componente susceptible de ser modulado lo será. En el caso de no existir esta posibilidad, se contemplará la opción de clusterización, añadiendo más componentes de forma horizontal. Este hecho debiera asegurar la robustez, escalabilidad, disponibilidad e interoperabilidad del sistema.
- Los dispositivos se comunican tanto, para el flujo de datos como para el flujo de control, a través de una puerta de enlace de IoT y servicios perimetrales o directamente a través de la red pública a través de los citados servicios.
- Las fuentes de datos incluyen sistemas de registro tradicionales de la empresa, así como nuevas fuentes de Internet de las cosas (IoT). También pueden incluir fuentes consideradas dentro del ámbito de las redes sociales.
- La plataforma captura los datos de los dispositivos, de otros servicios en la nube y otras fuentes de datos (por ejemplo, los servicios meteorológicos). Puede usar tecnologías de integración o procesamiento de flujo para transformar, filtrar y analizar estos datos en tiempo real y puede almacenar los datos en repositorios donde se pueden realizar análisis adicionales. Este procesamiento, que se puede aumentar con el uso de analíticas cognitivas y predictivas, se utiliza para generar información procesable. Estos conocimientos son utilizados por los usuarios y las aplicaciones empresariales y también pueden usarse para desencadenar acciones que deben realizar los activadores de IoT. Todo esto debe hacerse en un entorno seguro y gobernado.
- Los resultados se entregan a los usuarios y las aplicaciones utilizando componentes de transformación y conectividad que proporcionan mensajería segura y transformaciones hacia y desde los sistemas participantes, sistemas de datos y aplicaciones empresariales.
- La normativa y especificaciones incluidas en la norma UNE 178104, UNE 37120, UNE 178301 y UNE 178501.
Capa de Usuario
Un usuario es aquella persona o sistema que se conecta a la plataforma a través de Internet. Dicha entidad, persona o sistema, tendrá la capacidad de cargar nuevos datos en la plataforma, modificar los ya existentes, buscar y obtener datos de carácter público, o bien, de carácter privado siempre convenientemente autenticado y autorizado. Para la autenticación se considera la utilización de un servicio que delegue la autenticación a un tercero IdP (Identity Provider), normalmente mediante protocolos OAuth2 y estándar OpenId Connect.
Se definen tres canales de comunicación y de integración con usuarios o con sistemas terceros:
- Portal del Turista: Aplicación web de tipo PWA (Progressive Web App). Dichas aplicaciones están basadas en estándares HTLM5, CSS3 y Javascript, pudiendo utilizar frameworks aceleradores, tales como Ionic, Polymer, Angular, etc. Las ventajas a considerar para este tipo de aplicaciones son, por citar algunas, confiabilidad, rapidez, soporte para gran variedad de navegadores, etc.
- App del Turista: Dada la naturaleza adaptativa de las aplicaciones de tipo Progresivas, éstas permiten ser ejecutadas de manera fiable y rápida en cualquier tipo de dispositivo que tenga soporte para las nuevas versiones de navegador. Como si de una aplicación nativa se tratase, desde una aplicación PWA podemos acceder a los diferentes artefactos del dispositivo móvil, tales como GPS, Cámara, etc.
- Open Data: Plataforma basada en servicios que proveerá una capa de consumo controlada de datos controlada a terceros, para que estos puedan añadir valor a sus negocios. Dichos servicios podrán ser publicados a través de soluciones de API Management, para identificar el consumidor, acotar el consumo basado en suscripciones a planes (SLA) y homogeneizar la seguridad de los mismos.
Plataforma
A continuación, se definen todos los componentes que formarán parte de la solución de plataforma para la solución.
Servicios Perimetrales
Dichos servicios permitirán que los datos fluyan de forma segura desde Internet al sistema o sistemas de procesamiento de los mismos. Dichos sistemas de procesamiento se denominan de transformación e interconectividad y los explicaremos en más profundidad en el siguiente apartado.
Los servicios perimetrales tienen las siguientes funcionalidades entres otras:
- Puede hacer las funciones de Cortafuegos, permitiendo el tráfico de entrada o de salida en función de unas reglas establecidas por el administrador.
- Puede hacer las funciones de balanceador de carga, para maximizar el rendimiento y minimizar los tiempos de respuesta.
- Puede hacer las funciones de VPN (Virtual Private Network).
- Puede ofrecer servicios de infraestructura, tales como DNS, DHCP, etc.
Creemos que la solución basada en software de código abierto pfsense puede ofrecer las citadas características y más, siendo altamente recomendable su uso en la plataforma por la versatilidad y facilidad de uso.
Transformación e Interconectividad
Permite una conectividad segura hacia y desde dispositivos IoT, Aplicaciones de usuario y empresariales. Este componente debe ser capaz de manejar y transformar grandes volúmenes de mensajes y enrutarlos rápidamente a los componentes correctos dentro de la plataforma para su procesado. El componente de Transformación y Conectividad incluye las siguientes capacidades:
- Apache Kafka, es una plataforma de Streaming distribuida con una gran capacidad para el procesado de eventos provenientes de los dispositivos y aplicaciones de usuario. Kafka está basado en mecanismos de publicación y subscripción permitiendo el consumo en ‘real-time’ de los eventos producidos por los dispositivos de IoT o aplicaciones de usuario.
- Apache Spark, es un sistema de computación en clúster para el procesamiento distribuido de datos a gran escala. Proporciona una API de alto nivel en Java, Scala, Python y R. También es compatible con un amplio conjunto de herramientas de alto nivel que incluyen Spark SQL para SQL y procesamiento de datos estructurado, MLlib para aprendizaje automático (Machine Learning), GraphX para procesamiento de gráficos y Spark Streaming. Dentro de la plataforma será utilizado como herramienta de ETL, permitiendo la transformación y enriquecimiento de los eventos, ya bien sea en modalidad Streaming o a través de ficheros de carga batch.
- Apache Flume, es una herramienta especializada en la agregación y transporte de una gran variedad y cantidad de datos que pueden provenir de diferentes sistemas, tales como, logs de sistema empresariales, redes sociales, etc. Dicha herramienta permite el transporte y transformación de datos semiestructurados y estructurados, para persistirlos en el repositorio principal.
- Tanto Apache Spark, como Apache Flume, están basados en tecnología Java, por lo tanto contemplamos la escalabilidad de los componentes de forma nativa dentro del cluster de Kubermetes, sobre un servidor de aplicaciones Tomcat y con Apache HTTP Server como frontal y balanceador de carga.
Registro, Gestión e Identificación de dispositivos
Permite la gestión y tipificación de los sensores y dispositivos que se encentran en la red de proximidad. Dicho subsistema almacena y controla el ciclo de vida de los datos, en función de la edad del dato. Adicionalmente se establecerán canales de comunicación bidireccionales entre la plataforma y los sensores y/o dispositivos desplegados. A través de dichos canales, viajarán tanto datos que provienen de mediciones, como datos de comandos de gestión.
Watson ioT, es una solución que permite disponer de las principales capacidades de IoT. Es una solución versátil y extensible a través de agentes.
API Management / Kubernetes
Una herramienta de API Management ha de cumplir con los siguientes requisitos mínimos: A nivel de Seguridad ha de forzar y homogeneizar la seguridad de las APIs, permitiendo la integración con mecanismos de autorización de terceros a través del sw APICONNECT. Adicionalmente ha de controlar el consumo de las APIs basadas en planes de consumo. En el ámbito de control del ciclo de vida, un API manager ha de proveer una capa de gobierno flexible que permita gobernar las APIs a diferentes niveles. Finalmente, un Api Manager ha de soportar los estándares API del mercado JSON y XML (SOAP), permitir la socialización y trazabilidad de las APIs.
Se contempla el escalado horizontal de la solución dentro de un clúster de contenedores, tal como Kubernetes.
Lógica de aplicación y Presentación
La capa lógica de negocio y presentación está enfocada a una arquitectura basada en micro-servicios. Dichos micro-servicios pueden ser gestionados por clúster de: Kubernetes (Kubernetes 8) / Dockers (Swarm).
La solución propuesta se construye en base a los principios de los Microservicios de programación y persistencia políglota. Este concepto es importante ya que es la base de la modularidad e independencia de la tecnología subyacente.
Esta arquitectura orientada a micro-servicios permitirá la escalabilidad granular de cada servicio por separado. La escalabilidad permite cambiar el número de instancias de la aplicación según las necesidades. Es importante que la aplicación o micro-servicio sea lo más «stateless» posible ya que de esta manera será mucho más fácil de escalar. Ésta debe estar preparada para detenerse y reiniciarse siempre que sea necesario, parando nodos cuando la carga sea pequeña o incrementando cuando haya un pico de consumo.
Gestión de Contenidos
Gestor de contenidos diferentes opciones con capacidad de exposición del contenido como API REST y por tanto actuando como «Headless Content Management». De esta forma se podrá proporcionar los contenidos hacia y desde los diferentes sistemas de forma sencilla y completamente desacoplada de la capa de visualización inherente a todos los Gestores Documentales.
Dicha solución puede ser modulable, por lo tanto, se contempla una escalabilidad horizontal basada en parámetros de demanda.
Analítica
El componente de Analítica se refiere a la capacidad de uso de técnicas de Business Intelligence (BI) y soluciones para analizar contenidos, tanto estructurados, como no estructurados. Estas soluciones responden a preguntas de negocio predefinidas y utilizan herramientas de visualización para representar los resultados en vistas tabulares, gráficos, tablas, cuadros de mandos y cuadros de mando ensamblados con Indicadores clave de rendimiento (KPI).
Cognos es una herramienta BI (Business Intelligence) poderosa y de fácil utilización para la construcción de cuadros de mandos y la navegación de los datos. Proporciona un análisis empresarial rápido, potente, altamente interactivo y residente en memoria, sin las limitaciones, el coste o la complejidad de las herramientas BI tradicionales. Y permite analizar y descubrir conocimientos como usuarios de la plataforma, que pueden ayudar en la toma de decisiones.
Procesos (Cognitivo / Planificación de Viajes)
IBM Watson aglutina una serie de APIs y servicios en el cloud, que nos permite proveer al sistema de capacidades cognitivas a la plataforma. Dichas capacidades nos han de permitir el uso y análisis del lenguaje natural, el uso de chatbots, traducción e identificación de diferentes lenguajes, entre otros.
Repositorio de Datos
El componente Repositorios de datos es un conjunto de repositorios de datos seguros que permite que los datos y los usuarios puedan almacenar los datos para su posterior consumo. Estos repositorios forman el corazón del entorno analítico. Los repositorios dentro de este componente pueden variar desde un solo repositorio, hasta múltiples repositorios utilizados para diferentes propósitos por diferentes herramientas analíticas. Se ha de tener en cuenta que los almacenes de datos operativos y transaccionales (como OLTP, ECM, etc.) no están incluidos en este componente. En su lugar, forman parte del componente de fuentes de datos.