Arquitectura de la plataforma

Anuncio
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.
Descargar