La tecnología detrás del proyecto ÍNDICE Arquitectura de la plataforma ¿Cómo experimentar con la plataforma? Oportunidades de desarrollo de ideas Arquitectura de la plataforma ¿Cómo experimentar con la plataforma? Oportunidades de desarrollo de ideas Arquitectura de la plataforma Tecnologías de referencia • Sensórica: IoT, M2M, SCADA, plataformas WSAN, autómatas, nube, etc… • Datos y servicios espaciales: OGC, W3C • Metadatos: inventarios, configuraciones • APIs. Aplicaciones. Restful JSON. Suscripción • Visualización avanzada. Centros de control • Business Intelligence. Cuadros de mando • OpenData • Tiempo real y Big Data • Apps Mecanismos de integración Datos y Servicios Smart Sensores y Actuadores. Interconexión Los sensores son sistemas que emiten datos y reciben ordenes a lo largo del tiempo: • Medidas / Comandos / Alertas / Incidencias / Eventos / KPIs / Auditoria Las redes de sensores y actuadores conectadas a la Plataforma pueden ser: • Redes de sensores y actuadores (inalámbricos o no) físicamente conectados (managed) a la Plataforma a través de los mecanismos provistos por la misma. Gateway CSC. • Información de carácter sensorial disponible en un sistema externo que se conecta a la Plataforma CSC. • Sensores virtuales. Sensores y Actuadores. Interconexión ¿Cuáles son los principales retos a resolver? • Cobertura. Llegar los sensores para captar la información que emiten. • Adquisición. Ofrecer mecanismos para conectar cualquier tipo de red de sensores. • Fiabilidad. Gestionar grandes volúmenes de información en un sistema masivamente distribuido. • Interoperabilidad. Independizar el dato de la tecnología que lo soporta o de la fuente que lo emite. • Tiempo real vs. Datos históricos • Escalabilidad. Posibilidades de crecer con la demanda, tanto a lo alto (procesamiento) como a lo ancho (capacidad). • Deslocalización del dato de su origen. • Eficiencia. Medir para mejorar. • Toma de decisión. Posibilidad de realización automática de acciones en base a situaciones. • Otros: Disponibilidad, Mantenibilidad, Seguridad, Apertura, Estándares, Evolución Sensores y Actuadores. Gateway CSC Gateway CSC • Conectar miles de sensores desplegados por toda la Ciudad. • Diseño, desarrollo y producción de un Gateway específico para Coruña Smart City. • Resultado de innovación del proyecto, cubre una necesidad para la cual no hay actualmente una oferta en el mercado: ser interoperable con cualquier tecnología de sensores. • Sistema modular con múltiples configuraciones. Versiones de interior y de exterior. • Basado en sistemas abiertos. • Cobertura Coruña Smart City Sensores y Actuadores. SOFIA2 El módulo de interconexión de la plataforma (SOFIA) ofrece los mecanismos para interconectar cualquier tipo de red de sensores y ofrece además los necesarios para el soporte y explotación de dichos datos: adquisición, reglas, acciones, publicación, suscripción, consulta, etc… Sensores y Actuadores. SOFIA2 (http://sofia2.com) SOFIA2 con un ejemplo: Instagram Pretendemos conectar el API público de Instagram a SOFIA2 para obtener los enlaces a todas las fotografías y vídeos publicados por los usuarios que estén geo-localizadas en la zona de A Coruña. api.instagram.com SOFIA2 https://api.instagram.com/v1/media/search?lat=43.368712&lng=8.401460000000043&client_id=xxxxxxxx&distance=5000&min_timestamp=1395313010&max_timesta mp=1395313040 Ontologías Definición de Ontologías JSON • Mecanismo semántico. Colaboración sin acoplamiento entre «cualquier Thing (IoT» • Representan una definición de una entidad dentro del sistema. • Se especifican utilizando JSON-schema. Ejemplo: • Se crea una nueva ontología en SOFIA2: feedInstagram para lo cual se utiliza la plantilla Feed. • Se le asignan permisos y propiedades. { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Feeds", "type": "object", "required": [ "Feed" ], "properties": { "Feed": { "type": "string", "$ref": "#/datos" } }, "datos": { "type": "object", "required": [ "assetId", "assetType", "assetSource", "type", "timestamp" ], "properties": { "feedId": { "type": "string" SOFIA2 con un ejemplo: Instagram api.instagram.com KP SSAP SOFIA2 El siguiente paso será la creación de un KP (Knowledge Processor) de SOFIA2 • El KP consume datos de api.instagram.com y los inserta como instancias de la ontología feedInstagram en SOFIA2. Debe de ser registrado y configurado en la Plataforma • APIs : HTTP Restful, MQTT (suscripción/publicación asíncrona) • SDKs: Java, Arduino, C, Javascript, Android • SSAP: protocolo estándar de mensajería entre los KPs y SOFIA2 (Smart Space Access Protocol) SOFIA2 con un ejemplo: Instagram { "_id": { "$oid": "53674da9c91c051ffc2ae7ad" }, "contextData": { "session_key": "243d2ff7-c2c4-41438bd2-5c6e5eecb76a", "user": "oscar.sacristan", "kp": "pt_kp_instagram", "kp_instancia": "pt_kp_instagram1", "timestamp": { "$date": "2014-05-05T10:36:57.706Z" } }, "Feed": { "assetId": "804505612", "assetName": "olguitasurribas", "assetSource": "api.instagram.com", "assetType": "Instagram", "attribs": [ { "name": "type", "value": "image" }, { "name": "standardResolution", "value": { "http%3A//distilleryimage10.s3.amazonaws.com/ "name": "text", 3832dcb0d43011e3bdcf0002c954a4e6_8.jpg" "value": "Caminata" }, } { ], "name": "thumbnail", "feedId": "value": "713526466105152697_804505612", "http%3A//distilleryimage10.s3.amazonaws.com/ "feedSource": "api.instagram.com", 3832dcb0d43011e3bdcf0002c954a4e6_5.jpg" "geometry": { }, "coordinates": [ { -8.393661123, "name": "lowResolution", 43.384908749 "value": ], "http%3A//distilleryimage10.s3.amazonaws.com/ "type": "Point" 3832dcb0d43011e3bdcf0002c954a4e6_6.jpg" }, }, "measures": [ ], { "measuresTimestamp": { "name": "userFullName", "$date": "2014-05-05T08:36:44.000Z" "value": "olguita" }, }, "measuresType": "INSTANT", { "timestamp": { "name": "userProfilePicture", "$date": "2014-05-05T08:37:06.498Z" "value": }, "http%3A//images.ak.instagram.com/profiles/pr "type": "VIRTUAL" ofile_804505612_75sq_1398969805.jpg" } }, } KPs: operaciones y modo de funcionamiento El SIB (Semantic Information Broker) es el elemento integrador y almacén de datos. • Todas las conexiones al SIB se realizan a través de KPs. Operaciones soportadas en SSAP: • JOIN, LEAVE • INSERT, UPDATE, REMOVE • QUERY • SUBSCRIBE, UNSUBSCRIBE • GET_VERSION, GET_CONFIG Ejemplo de despliegue SOFIA2 con un ejemplo: Instagram Consultas a la Base de Datos de Tiempo Real (MongoDB): • Obtener las 10 últimas instancias db.feedInstagram.find().sort({"Feed.timestamp":-1}).limit(10) • Conseguir los 10 últimos feeds del usuario: cloudsail db.feedInstagram.find({"Feed.assetName":"cloudsail"}).sort({"Feed.timestamp":-1}).limit(10) • Obtener todas las instancias a menos de 200 metros de una ubicación db.feedInstagram.find({"Feed.geometry" : {$near : {$geometry : {type : "Point", coordinates : [-8.410874912164331, 43.33292993157361]}}, $maxDistance: 200}}).sort({"Feed.timestamp":-1}).limit(10) Reglas de scripting El sistema de reglas de scripting, del tipo IF THEN ELSE, (basado en Groovy) permite de manera sencilla programar la realización de acciones cuando se cumplen ciertas condiciones. • • Reglas que se disparan en el momento que sucede una condición. • Ejemplo: si un autobús de la línea 6 está a menos de 200 metros de una parada entonces envía un email. • Ejemplo: si el suelo está seco y no va a llover en la próxima hora entonces riega. Reglas que se ejecutan periódicamente. • Ejemplo: cada hora envía un email con el número de vehículos que han pasado por una calle. Reglas CEP La Plataforma también dispone de un motor CEP (Complex Event Processing) que le permite ejecutar reglas más complicadas en las que se procesan eventos agregados a lo largo del tiempo. • Ejemplo: si el nivel de ruido se dispara, y además se mantiene durante más de 5 minutos, entonces lanza una alarma. • Ejemplo: si el nivel de agua de un depósito está por debajo de la media durante una hora entonces inicia el bombeo. Las reglas CEP pueden además encadenarse y relacionarse entre ellas: • Ejemplo: si el nivel de tráfico de entrada a la Ciudad supera el 60% de su capacidad durante más de 10 minutos y: • si la ocupación media de los parkings está por encima del 80% entonces dispara una alarma. Base de datos histórica La base de datos histórica (BDH) almacena todos los datos que ya no forman parte del tiempo real, es decir, han pasado a ser históricos. • • Implementada sobre Hadoop en el datawarehouse HIVE lo que permite: • Capacidades para almacenamiento prácticamente ilimitado. • Capacidades de procesamiento de toda esa información cuando se necesite. • Lenguaje de consultas SQL. • Posible uso de Impala para consultas online. Los datos históricos también pueden consultarse a través del SIB con mensajes SSAP Query. Información espacial. GIS La gestión de la información espacial/georreferenciada de manera integrada con la sensórica confiere a la Plataforma de capacidades para implementar sistemas inteligentes sobre el terreno. • Modelo de datos integrado. Planteamiento alineado con el proyecto de GIS Municipal (ESRI ). Todos los datos del GIS Municipal estarán disponibles en la Plataforma CSC. • Datos y servicios disponibles a través de interfaces de consulta. • Servicios: inventario, mapas, callejero, calculo de rutas, cálculos espaciales, etc… • Requisitos en los pliegos de los pilotos para los adjudicatarios: • Generar las capas de información espacial de todos los activos incluidos y darla de alta en el GIS Municipal. • Mantener el inventario tanto de sensores como de elementos sobre el el GIS municipal. Plataforma tecnológica Mecanismos de Publicación y explotación de la información Cuadros de mando Análisis de los datos La Plataforma, a parte de tener la capacidad de gestionar grandes volúmenes de información en tiempo real, incorpora también capacidades para gestionar, almacenar y procesar la información histórica generada a lo largo del tiempo, lo que permite: • Complementar los datos utilizados para generar los actuales cuadros de mando (Microstrategy) o definir cuadros de mando nuevos (cada Piloto tendrá su propio cuadro de mando). • De la misma manera, la Plataforma ofrece también los mecanismos para tomar datos ya existentes y procesados de los actuales cuadros de mando (Datawarehouse) y conectarlos a la plataforma para su utilización por los diferentes verticales, como por ejemplo, llevar datos al OpenData. • Y de manera complementaria a la utilización de los cuadros de mando, la Plataforma incorpora un Motor Holístico capaz de gestionar indicadores estratégicos sobre el terreno. Todos los datos históricos disponibles en la plataforma, e incluso los propios indicadores, constituyen información susceptible de ser publicada hacia aplicaciones Smart. Portal y web La web constituye uno de los mecanismos principales de difusión del Proyecto CSC, pero también constituye un punto clave de interacción con el usuario/ciudadano de los servicios finales provistos. • El Portal CSC será el punto central de agregación de todos los contenidos y servicios disponibles e incorpora, entre otros, los siguientes: • Información del proyecto y los pilotos. • Acceso a los datos publicados de los diferentes pilotos y aplicaciones. • Acceso al OpenData. • Acceso al portal de desarrolladores. • Otras webs también podrán incorporar dinámicamente la información de la plataforma ya que la parte web se encuentra integrada con el gestor de contenidos municipal. Apps La Plataforma ofrece los interfaces y mecanismos necesarios para que desarrolladores, previamente autorizados, puedan desarrollar Apps Móviles. • A través de las apps se puede tanto consultar información, como interactuar con la Plataforma y con los sensores o utilizar cualquiera de los servicios expuestos por la Plataforma. • Las apps constituirán uno de los principales canales de comunicación con los ciudadanos. Centros de control en tiempo real Basado en la tecnología eVidens los centros de control permiten acceder sobre el terreno, y de manera integrada y personalizada a toda la información disponible en tiempo real. Las capacidades de los centros de control incluyen a parte de la consulta de información, la actuación, el acceso y la gestión de alarmas e incidencias, etc … • Cada área municipal tendrá su propio centro de control especifico con toda la información de sus Pilotos y cualquier otra información conectada y disponible. • Cada Piloto tendrá su propio centro de control específico. OpenData Integración de datos de fuentes diferentes para generar servicios de mayor valor añadido tanto para la gestión como para el ciudadano. Concepto Open Data de los datos Smart, para que puedan ser utilizados y explotados por terceros. Soporte avanzado a terceros para la construcción de servicios inteligentes. Arquitectura de la plataforma ¿Cómo experimentar con la plataforma? Oportunidades de desarrollo de ideas ¿Cómo experimentar con la plataforma? http://sofia2.com Pasos: • Revisar la documentación. • Darse de alta en la plataforma de desarrollo. • Seleccionar tecnologías de desarrollo y SDKs • Revisar ontologías disponibles o crear ontologías nuevas. • Dar de alta un KP y asignarle un token. • Desarrollo y pruebas. • Publicación. Arquitectura de la plataforma ¿Cómo experimentar con la plataforma? Oportunidades de desarrollo de ideas Oportunidades de desarrollo de ideas Oportunidades La Plataforma Smart Coruña ofrecerá a los desarrolladores un conjunto de datos, herramientas y servicios disponibles a través de una infraestructura pública accesible de experimentación sobre la cual podrán crear sus propias aplicaciones y servicios Smart. • Ámbito de la innovación: proyectos de I+D+i, proyectos fin de carrera, tesis. • Ámbito público: aplicaciones y servicios de interés público para los ciudadanos. • Ámbito privado: aplicaciones y servicios El canal de entrada de los desarrolladores será el OpenData Coruña Smart City a través del cual se disponibilizarán dichos mecanismos. Coruña SmartCity soportará e impulsará la creación de un HUB empresarial dinamizador de ideas, proyectos, desarrollos, aplicaciones, spin-offs Smart creadas sobre la Plataforma y que podrán ser de aplicación en cualquier otra Smart City en el mundo.