TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018

Pagina creata da Filippo Gentili
 
CONTINUA A LEGGERE
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
FOSS4G-IT
                        2018

Toward IoT and Big Data!
the rise of istSOS3

                         ISTSOS DEV TEAM
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
Locarno: gestione delle esondazioni

Piogge intense a confronto della capacità di deflusso (2,000 m3/s)
Bacino idrologico esteso (6’386 km2) ed area del lago limitata (213 km2)
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
MODELLI
 HYDRO RETE
MONITORAGGIO
    GESTIONE
        RISCHIO
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
Architettura aperta
Sulla base dei principi SOA (Service Oriented Architecture) e le
specifiche dell’Open Geospatial Consortium Sensor Web Enablement
(OGC - SWE) initiative

 Dati                                         Comprensione      Azione

       WEB          WEB           SENSOR
     FEATURE     COVERAGES      OBSERVATION
     SERVICE       ERVICE         SERVICE

                                                     WEB
                                                 NOTIFICATION     INTERVENTION
                                                   SERVICE

                                                WEB MAPPING       POLICY MAKING
                                                SERVICE & DSS
 Analisi
               WEB PROCESSING
                  SERVICE
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
Gestione delle emergenze
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
isodate
Architettura istSOS2                         psycopg2
                       mod_wsgi
                                             pytz

                                  Database
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
7
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
MIARIA – Adaptive
Hydrogeological
Monitoring in support
of the Alpine
Iintegrated Risk plan
Dynamically identify impacts
 of impending scenarios
and rise alerts
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
DACD / IST / ISTSOS in support of ENORASIS for optimizing irrigation

ENORASIS
The project
ENORASIS is a FP7-ENV project (Grant Agreement 282.949).
The project duration is three years (January 2012 – December
2014).

Objective
Develop an integrated decision support system for
environmentally optimized and thus sustainable irrigation
management for farmers and water management
organizations based on advanced technologies and models.
TOWARD IOT AND BIG DATA! - THE RISE OF ISTSOS3 - FOSS4G-IT 2018
Analysis of 4 times Open Non-conventional
             system for Sensing the Environment

Empower environmental monitoring in
developing countries using non-
conventional and fully open solution
open source
water resource
management
platform
Caso in produzione: Canton Ticino HydroMet
istSOS service for Canton Ticino HydroMet

CONFIGURAZIONE
549 registered sensors
15 observed properties
(air-temperature, air-rainfall, water-height, water-height, air-humidity, water-discharge, water-height, air-pressure,
air-radiation, water-conductivity, water-temperature, water-temperature, battery-tension, water-tension, air-
relative_humidity)

47 years of data (1970-2017)
114 Mio registered observations
73 GB of database
Alcune statistiche di un anno(8.2016/8.2017)

TRAFFICO
122 GB of data served
75 Mio served requests in 1Y
1 Internal server error response (500)
UPTIME
99.902% Availability
9 hours Downtime
istSOS2 loading test to identifies bottlenecks
PAPER UNDER REVIEW
• 3 different cases
• 2 different WGSI server solution
• 2 different user types
• 5 different concurrent users scenarios (100, 200, 500, 1’000, 2’000)
Perché istSOS3

Era tempo di code refactoring… Ma dopo una prima analisi abbiamo
deciso di riscrivere tutto da zero.

Python2 è morto viva Python3
• Python 2 andrà in pensione il 12 Aprile 2020
• Introduzione di nuove interessanti tecnologie con Python 3 (p.es.
   Async)

IoT e Big Data:
• Necessità di migliorare le performance
     – Big-Data vs Multi-Utenza
     – Caching in tempo reale
• Interfaccia di comunicazione espandibile per la comunicazione con
   il mondo IoT
Requisiti richiesti per istSOS v3
(1st release by summer 2018)

•   Python 3.X
•   Asynchronous programming
•   Database independent
•   SOS v2
•   INSPIRE compliant
•   Container independent (Servizi Web, Applicazioni desktop, Sviluppo di Plug-in
    in ambienti Python: QGIS per esempio, Scripting)
•   Big-Data support
•   Architettura modulare (espandibile con plug-in)

….. ed ovviamente veloce :-D
istSOS3: architettura modulare

In istSOS3 ogni singolo processo è
eseguito da un azione (Action) ed il dato
è rappresentato da un’entità (Entities)
caricato da database specifici tramite
Action specializzati chiamati Retrievers.

Seguendo il concetto del Chain of
Responsibility Pattern, ogni azione può
essere concatenata ad altre azioni
permettendo così di creare azioni più
complesse (Composite Action).

Questo approccio permette un notevole
riutilizzo del codice e quindi ne facilita
l’espansione per la creazione di nuove
azioni (istSOS-Plug-in).
Possibile architettura d’insieme come servizio Web

  Python 3

       Tornado Web
                                                   REST
                                                    API

               istSOS3 API
                                           NGINX
                         istSOS3-Plug-in

                                                   OGC
                                                   SOS 2

  PostgreSQL
                   ???            ???
   + PostGIS
Interfacce di istSOS3 : JavaScript Packages (ECMAScript2016)

In parallelo alle API sono in sviluppo anche dei pacchetti JavaScript
riutilizzabili nella creazione di applicazioni web:

istsos3-core:
• Una libreria JavaScript che permette la comunicazione con le REST
   API di istSOS3.

istsos3-web:
• Interfaccia web per gli amministratori (simile a quella istSOS2) per
   la gestione dei sensori ed espandibile con nuovi plug-in.
   Attualmente integra un plug-in per la visualizzazione dei dati su
   grafici interattivi (istsos3-viewer).
Architettura interfacce

                                      istsos-web

                            istsos-core
 istSOS 3 API
                     REST
                            istsos-viewer
                      API
I primi test sulle REST
API promettono bene
    PC sviluppo vs
    Server istSOS SUPSI

1 Thread x 1 Connessione
1 Sensore x (1 osservazione / 10min)

•   P7D / 1 settimana:
    1’008 righe
•   P1M / 1 mese:
    4’320 righe
•   P2M / 2 mesi:
    8’640 righe
•   P6M / 6 mesi:
    25’920 righe
•   P1Y / 1 anno:
    51’840 righe
28

Restate sintonizzati…

   @istsos

   www.istsos.org

   FOSS4G (NA-WORLD-ASIA-EU)

       … ne vedrete delle belle :-D
Puoi anche leggere