Sinfonier Contest 2015: Sinfonier y Smart CitiesElevenPaths 19 mayo, 2016 Las ciudades hoy en día generan una gran cantidad de información que puede resultar muy útil, algunos ejemplos son los niveles de contaminación del aire, que devuelven las sondas colocadas en diferentes puntos geográficos o la situación de nuestras carreteras, para saber si tenemos mucha afluencia de coches o ha ocurrido algún accidente. Estos datos ya están siendo usados, pero de manera independiente. En la solución que he propuesto se basa en la ingesta de diferentes fuentes de información abiertas que están relacionadas de alguna manera y pueden relacionarse para sacar inferir resultados o recomendaciones que de otra manera serían imposibles. ¿De dónde podemos sacar esta información? Buscando en diferentes lugares de datos abiertos, me he encontrado con que algunas comunidades autónomas tienen su sitio web de open data: Documentación de la API de Zaragoza: http://www.zaragoza.es/docs-api/#/ Portal de datos abiertos de Santander: http://datos.santander.es/ Portal de datos abiertos de Barcelona: http://opendata.bcn.cat/opendata/es/ Portal de datos abiertos de Madrid: http://datos.madrid.es/portal/site/egob Cualquiera puede descargarse los datos que quiera dentro de un catálogo. Inicialmente, iba a realizarlo a partir de los datos de la Comunidad de Madrid pero todo lo que encontré fueron datos muy separados en el tiempo, habitualmente con actualización anual o registro de datos de eventos pasados. Por todo ello, elegí mi ciudad, Zaragoza, donde se desarrolló la siguiente API para los datos de los que disponían: Vemos que tiene un catálogo (http://www.zaragoza.es/api/catalogo.json) bastante extenso, por lo que elegí diferentes fuentes de información y preparé los módulos en Sinfonier para poder extraer los datos que me interesaban: Para recoger los datos, generé módulos spouts con los siguientes parámetros de entrada: Frecuency: Segundos que va a esperar el módulo en realizar de nuevo la petición, dando respuesta solo cuando aparezcan nuevos. Rows: Límite de valores que quiero que me devuelva el módulo. Start_date: Fecha inicial desde la cual se devolverán resultados en formato yyyy-mm-ddThh:mm:ssZ (UTC). Sort: Orden de las respuestas por parte del módulo (asc/desc). Q: Consulta mediante FIQL (http://tools.ietf.org/pdf/draft-nottingham-atompub-fiql-00.pdf) para permitir filtros y condiciones en las consultas utilizando una sintaxis con URIs amigables. Más información en: https://www.zaragoza.es/ciudad/risp/ayuda-api.htm#PrametrosAPI. Estos módulos hacen la petición correspondiente con los parámetros configurados. Una vez tenemos estos valores, ¿cómo los podemos relacionar? Una opción es a partir del punto geográfico que puede aparecer en las respuestas, esto nos dará el punto de unión entre las diferentes fuentes de información. Dentro de la topología, los valores que llegan se conectan con la entrada de otros, con los parámetros de latitud y longitud para así tener resultados solo en esos puntos. Una vez tengo esa información necesito guardarla en algún lugar para después poder consumirla. En este caso, utilice una base de datos orientada a grafos, ya que me permite fácilmente tener esas relaciones almacenadas. Utilicé como base de datos una Neo4j (http://neo4j.com/), la cual tiene ya módulos implementados que desarrollé tiempo atrás y permite la inserción de nodos y relaciones de manera única. Una vez hecho esto, conecto las salidas de los módulos con los de Neo4j y ya tendría la topología terminada. Un ejemplo de esta conexión sería la siguiente: Como resultado obtenemos lo siguiente: En el grafo podremos realizar las consultas para lograr las recomendaciones. Por ejemplo cuando queramos saber si la oferta de una habitación de un hotel es una buena oferta sin basarnos solo en las opiniones de las habitaciones, sino viendo si existen relaciones en ese lugar como quejas, accidentes de tráfico, etc. y poder mejorar nuestra información. Este es un ejemplo de una consulta que relaciona habitaciones de hotel con diversas quejas e incidentes. Esta topología se podría ir nutriendo de nuevas fuentes de información y buscando nuevos puntos de conexión entre ellas para generar mejores recomendaciones. También se pueden añadir más comunidades autónomas para lograr una comparación entre comunidades. Finalmente, quiero agradecer a Iñigo Serrano su colaboración a la hora de plantear la topología de este Sinfonier Contest. Miguel Hernández Boza Ganador de Sinfonier Contest 2015 Seguridad criptográfica en IoT (III)«Camufladas, no ofuscadas»: Malware de macro… ¿creado en España?
Telefónica Tech Boletín semanal de Ciberseguridad, 28 de enero – 3 de febrero LockBit Green: nueva variante de LockBit Recientemente, investigadores de vx-underground han detectado que los gestores del ransomware LockBit están utilizando una nueva variante de ransomware, denominada LockBit Green. Esta nueva variante...
Martiniano Mallavibarrena Ciberseguridad en el cine: mito vs. realidad con 10 ejemplos Los múltiples aspectos de la ciberseguridad (ataques, investigaciones, defensa, empleados desleales, negligencia, etc.) llevan años siendo parte del argumento de infinidad de películas y series de TV. En la...
Daniel Pous Montardit Resiliencia, clave en sistemas Cloud-Native En el primer post de la serie Cloud-Native, ¿Qué significa que mi software sea Cloud Native?, presentamos la resiliencia como uno de los atributos fundamentales que nos ayudan a...
Telefónica Tech Boletín semanal de Ciberseguridad, 21 – 27 de enero Killnet apunta contra objetivos en España Esta semana el grupo hacktivista Killnet anunció una campaña de ataques contra Alemania, dando lugar a la realización de ataques de Denegación de Servicio...
Gonzalo Fernández Rodríguez ¿Qué significa que mi aplicación sea Cloud Native? El término Cloud Native es algo que va más allá de mover las aplicaciones alojadas en un data center a una infraestructura proporcionada por un proveedor Cloud, sea Cloud...
Telefónica Tech Boletín semanal de Ciberseguridad, 14 – 20 de enero Vulnerabilidades críticas en los router Netcomm y TP-Link Se han descubierto una serie de vulnerabilidades en los routers Netcomm y TP-Link. Por un lado, los fallos, identificados como CVE-2022-4873 y CVE-2022-4874, se tratan de un...
Miguel Hernández felicitaciones por el êxito. Yo no conocía a Sinfonier, pero a mí me parece una herramienta adecuada, incluso, para proyectos de ciudades resilientes. ¿Le parece que es posible integrar a Sinfonier con herramientas de ejecución de procesos, por ejemplo, para ejecutar respuestas a un conjunto de eventos? Saludos cordiales desde Brasil. Responder