INQUADRAMENTO E FUNZIONALITÀMONITORAGGIO - PROGETTI
Smart Data Platform
Agenda
• Smart Data Platform Overview
• Architettura piattaforma e documentazione
• Technical Session & Demo
• Dati condivisi
• Linee guida al monitoraggio
• Q&A
Smart Data Platform Overview
Smart Data Scenario
Sensor data
Internet of Things
Information System
Public Data
Enteprise Data
Vertical Applications
Social Feeds
Smart Data
Platform
Smart Data Platform: delivery models
• Cloud: hosting CSI-Piemonte
– http://userportal.smartdatanet.it/userportal
• Open Source: Downlodable sources
– https://github.com/csipiemonte Yucca Platform
Smart Data Platform Open Technologies
IntegrationMiddleware
Front-endUser Interface
Realtime & Batch Analytics
Data management & Storage
Configuration& Automation
Security
Cloud Development & Runtime Platform
Zigbee
IoT
Vertical
Application
IoT
Vertical
Application
Bluetooth LE
nfc
Smart Data Platform
DB
LogicLogic UIUI
Analytic
LogicLogic
D
B
Logi
c
Logi
c D
B
D
B
Gateway(optional)
DeviceSensing Network
ApplicationCloud
• Device Mgmt
• Stream Mgmt
• Stream Integration
• Data Ingestion
• Stream analysis
• Big Data Storage
• APIs development
• Access Stream &
Data via APIs
Connect Everythings
Smart Data Platform
ConnectedObjects
ConnectedSystems
ConnectedUsers
ConnectedApplications
Connect Organization
Organization 1
IoT
Application
Device, Stream,
Data
IoT
ApplicationApplication
Device, Stream,
DataDevice, Stream,
Data
Organization 2
IoT
Application
Device, Stream,
Data
IoT
ApplicationApplication
Device, Stream,
DataDevice, Stream,
Data
Organization 3
IoT
Application
Device, Stream,
Data
IoT
ApplicationApplication
Device, Stream,
DataDevice, Stream,
Data
Organization 4
IoT
Application
Device, Stream,
Data
IoT
ApplicationApplication
Device, Stream,
DataDevice, Stream,
Data
Smart Data PlatformOrganization context
Data/Stream Hub
Selective APIs Sharing
Stream & APIs Store
Metadata / Semantic Interoperability (*)
Architettura piattaforma e
documentazione
Architettura funzionale 1/3
DATA LAKE
DATA API
Architettura funzionale 2/3
DATA API
stream onlinestream real-time
servizi online
dati offlinedati offline
--------> INPUT> INPUT> INPUT> INPUT OUTPUT OUTPUT OUTPUT OUTPUT --------> > > >
Architettura funzionale 3/3
DATA API
Proprietario e gestore
dei sensori e dei dati
Pubblica nuovi stream e
nuovi datiFruitore flussi e dati
Realizza applicazioni
per gli utenti finali
Utenti finali
delle
applicazioni
sviluppate
Sviluppatore di
stream e event
processing
User Portal – funzionalità
Sviluppo e composizione Stream
Developer
Salvataggio e accesso ai dati su SDP
• Gli stream provenienti da smart object potranno
essere salvati su storage e, dalla release di fine
Novembre, sarà anche possibile tramite User
Portal:
– Creare un nuovo dataset definendone la struttura e
popolare il nuovo dataset tramite upload di file (p.e.
CSV)
– Accedere ai dati sia tramite API standard oData, sia
tramite download di file CSV
Creazione nuovo dataset
Accesso ai dati del dataset
Fruizione Api di esposizione dati
DATA LAKE
DATA API
Standard oData
Fruitore
Developer center
• Raggiungibile dal portale pubblico
• Destinato a chi sviluppa soluzioni usando Yucca
• Contiene linee guida, getting started, reference, docs
Protocolli e modello stream
Protocolli
MQTT(s)
HTTP(s)
RTSP H264
HTTP M-JPEG
Stomp over
WebSocket
HTTP (S2S)
WebM
Disponibili nella versione DEV-0.9 o successive
FTP (dataset)
MQTT(s)
Yucca Platform
Rest API
ODATA
Download
File
Near Realtime
BinarioBatch
Online Alfanumerico
Link
• LINEE GUIDA
– Formato
– Protocolli
http://www.smartdatanet.it/area-developer/linee-guida/
• SPECIFICHE DI INTEGRAZIONE
– Nomenclatura endpoint
– Nomenclatura topic
http://www.smartdatanet.it/area-developer/docs/specifiche-di-
interfaccia-ingresso-e-uscita-per-dati-alfanumerici/
Modello
Smart Object89f84a22-1e2e-5882-
bbf0-9c6efffb8ce7
StreamFORNISCE 1 ..N
ComponentsEventoContiene la misura
in un determinato
istante per uno
stream
INVIA 1..N
• longitudine
• latitudine
• altitudine
• temperatura
• umidità
• posizione
• Info meteo
CONTIENE 1 ..N
Esempi di implementazione
Smart Object89f84a22-1e2e-5882-
bbf0-9c6efffb8ce7All info
• longitudine
• latitudine
• altitudine
• temperatura
• umidità
Smart Object89f84a22-1e2e-5882-
bbf0-9c6efffb8ce7
position• longitudine
• latitudine
• altitudine
meteo • temperatura
• umidità
Smart Object1 position• longitudine
• latitudine
• altitudine
meteo • temperatura
• umiditàSmart Object1
Formato di un evento (alfanumerico)
{
"stream": "position",
"sensor": "cc1bfe50-491c-560d-a235-0e4134bbdc23",
"values": [ {
"time": "2014-10-10T12:36:18+0200",
"components": {
"longitude": "7.685676",
"latitude": "45.070984",
"altitude": "0.0"
}
} ]
}
Strumenti per la fruizione
Strumenti utili
(http://www.smartdatanet.it/area-developer/tools/)
MQTT:
– Linux Library C for SDP(GITHUB)
– Arduino reference implementations(GITHUB)
Stomp over Websocket:
– Stomp-websocket(GITHUB)
– WebSocket Singleton Reconnecting Library(GITHUB)
Reference SDP:
– Server Reference implementation(GITHUB)
• SDP - Arduino Reference Implementation
• SDP - Complex Event Processing
• SDP - bulk dataset load
• SDP – Access data via APIs
DEMO
Demo
SDP - Arduino Reference
Implementation
Reference implementation con Arduino
Arduino(550e8400-e29b-
41d4-a716-
446655440000)
MQTTStomp over
WebSocket
Webapp su
public hosting
Invio e ricezione eventiYucca features:Protocol switching (MQTT � Stomp over WebSocket)
Broadcasting (1 source � N destination)
Monitoring
Yucca Platform
Reference implementation con Arduino
• Informazioni
– Tenant: SMARTLAB
– Smart object: 550e8400-e29b-41d4-a716-446655440000
– Stream: temperature
• Componente: c0 (float)
• Formato Messaggio
{
"stream": "temperature",
"sensor": "550e8400-e29b-41d4-a716-446655440000",
"values": [ {
"time": "2014-10-10T12:36:18+0200",
"components": { "c0": "22.8 " }
} ]
}
Reference implementation con Arduino
• Censimento su platform
– http://int-
userportal.smartdatanet.it/userportal/#/management/strea
ms/smartlab
• Monitoraggio
– http://int-
userportal.smartdatanet.it/userportal/#/dashboard/stream/
smartlab/550e8400-e29b-41d4-a716-
446655440000/temperature
• Reference Application:
– http://www.smartdatanet.it/area-
developer/platform/getting-started
Inside
$('#connect_form').submit(function() {
var url = $("#connect_url").val();
var login = $("#connect_login").val();
var passcode = $("#connect_passcode").val();
destination = $("#destination").val();
// client = Stomp.client(url);
client = WebSocketService(url);
// the client is notified when it is connected to the server.
client.connect(login, passcode, function(frame) {
client.subscribe(destination, function(message) {
var json = message.body;
obj = JSON.parse(json);
…..
Demo
SDP - Complex Event
Processing
Elaborazioni online
Smartphones
HTTP
Stomp over
WebSocket
Webapp
su server
Composizione ed elaborazione streamYucca features:Aggregation
Filter
Pattern matching
Windowing
Elaborated
streams
Yucca Platform
Elaborazioni online
• Informazioni
– Tenant: SMARTLAB
– Smart object(s): cc1bfe50-491c-560d-a235-0e4134bbdc23/
5391c45d-7350-5f9b-b971-f711e2766123/……
– Flusso: position (longitude, latitude, altitude, speed)
• Componente: longitude, latitude, altitude, speed{
"stream": "position","sensor": "cc1bfe50-491c-560d-a235-0e4134bbdc23", "values": [ {
"time": "2014-10-10T12:36:18+0200", "components": {
"longitude": "7.685676", "latitude": "45.070984", "altitude": "0.0""speed": "0.0"
} } ]
}
• Software per smartphone
• http://demosdp.esy.es/release/SmartTrekSensor/
• Applicazione verticale fruitrice
• http://demosdp.esy.es/release/SmartTrekViewer/
"long": "7.13042",
"lat": "46.033382",
"alt": "289.0",
"long": "7.13042",
"lat": "46.033382",
"alt": "289.0",
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
Elaborazioni online: Aggregation
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
"long": "7.13042",
"lat": "46.033382",
"alt": "289.0",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
"long": "7.13042",
"lat": "46.033382",
"alt": "289.0",
"long": "7.13042",
"lat": "46.033382",
"alt": "289.0",
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
Elaborazioni online: Enrichment
"long": "7.453042",
"lat": "45.0448082",
"alt": "289.0",
"long": "7.13042",
"lat": "46.033382",
"alt": "289.0",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"long": "7.13042",
"lat": "46.033382",
"alt": "289.0",
"Inbound":true
Elaborazioni online: Enrichment
• Informazioni
– Tenant: SMARTLAB
– Smart object(s): internal
– Flusso: allgpsfiltergeo (longitude, latitude, altitude, speed)
• Componente: longitude, latitude, altitude, speed
{ "stream": "allgpsfiltergeo","sensor": "cc1bfe50-491c-560d-a235-0e4134bbdc23", "values": [ {
"time": "2014-10-10T12:36:18+0200", "components": {
"longitude": "7.685676", "latitude": "45.070984", "altitude": "0.0","speed": "0.0 ","inbound": " true"
} } ]
}
Elaborazioni online: Pattern
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "true",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "false",
+1
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "true",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "true",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "false",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "true",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "false",
"long": "7.653042",
"lat": "45.038082",
"alt": "289.0",
"inbound": "true",
-1
Elaborazioni online: Windows
+1
-1
+1
+1
+1
-16 hours
2
Elaborazioni online: Pattern + Windows
• Informazioni
– Tenant: SMARTLAB
– Smart object(s): internal
– Flusso: gpscounter (counter)
• Componente: longitude, latitude, altitude, speed
{ "stream": "gpscounter","sensor": "-", "values": [ {
"time": "2014-10-10T12:36:18+0200", "components": {
"counter": "2"}
} ]}
Elaborazioni online: altro scenario
Applicazione online delle regole di data quality utilizzate
nel Tropical Atmosphere Ocean project del National
Oceanic and Atmospheric Administration.
Misura: Sea Surface Temperature
Primo livello (FILTRO):
Dato non valido se SST < -9°C o SST > +33°C
Secondo livello (FILTRO e WINDOW)
Dato non valido se |SST-SSTgiorno precedente|> 5°C
Demo
SDP - bulk dataset load
DEMO caricamento dataset e accesso ai dati
• Il big data storage della Smart Data Platform consente di
salvare sia le misure provenienti dagli stream IoT sia i
dati di contesto caricati in modalità offiline in modalità
bulk
• La DEMO ha l’obiettivo di mostrare la creazione di un
nuovo dataset e il caricamento dei dati tramite file CSV
DEMO – creazione dataset e download dati
Creazione nuovo dataset
Invio CSV per preview
struttura dati contenuti
Definizione struttura di
dettaglio attributi dataset
Upload file CSV per
caricamento dati
Accesso alla scheda
dettaglio dataset
Url e informazioni per
l’accesso
Demo
SDP – Access data via APIs(oData Service API)
Browsing e accesso ai dati via oData API
• La Smart Data Platform espone l’accesso ai dati
provenienti dagli stream e/o da importazioni bulk
tramite servizi REST secondo lo standard oData v2.
“The Open Data Protocol (OData) enables the creation
and consumption of REST APIs, which allow resources,
identified using URLs and defined in a data model, to be
published and edited by Web clients using simple HTTP
messages”
• Questo abilita l’integrazione di tool e applicazioni in
differenti linguaggi aderenti allo standard oData.
DEMO – accesso ai dati tramite oData API
Interrogazione e fruizione
oData API da prototipo
Web applicativo
oData API browsing
tramite client web open
source
oDataQueryBuilder
Interrogazione singolo
dataset da
oDataQueryBuilder
http://demosdp.esy.es/ODataQueryBuilder/http://demosdp.esy.es/ODataQueryBuilder/sdp/map001.html
Dati Condivisi
Dati disponibili nella SDP
• Dati di «Business»
– Originati dalle aziende che utilizzano la Smart Data Platform
• Dati acquisiti dai sensori
• Dati conferiti alla piattaforma a livello applicativo
• Dati aggregati o elaborazioni rese disponibili in fruizione
• Dati di Contesto della PA
– Permettono di arricchire e contestualizzare i dati di business
• Hanno origine nei sistemi informativi della PA
• Comprendono i dati della PA (Public Sector information)
• Vengono inseriti in piattaforma per poterli aggregare ai dati di
business
Dati di Business
• Dati conferiti alla piattaforma (in conformità alle linee
guida), il fornitore:
– ha piena ed esclusiva disponibilità del dato o ha acquisito tutte
le eventuali autorizzazioni e consensi da soggetti terzi
– è l’unico soggetto che risponderà di eventuali contestazioni o
richieste di risarcimento
– ha responsabilità della definizione della licenza di eventuale
fruizione sulla SDP
• Dati fruiti dalla piattaforma:
– il fruitore sarà l'unico soggetto che risponderà di eventuali
utilizzi non conformi alla licenza associata ai dati fruiti
Dati di Business (2)
• In caso di dati:
– l'utilizzo in Piattaforma sarà subordinato all'applicazione dei
vincoli conformi alla normativa;
– è in corso un analisi giuridico-normativa sui flussi critici.
non Open
personali
sensibili
Open
Dati di Contesto della PA
DA:
portale "www.dati.piemonte.it":
• Open Data Regione Piemonte
• Open Data Geoportale ARPA
• Open Data Geoportale Regione
Piemonte (coming soon)
DA:
patrimonio informativo Regione
Piemonte:
• elenco Basi Dati per il
funzionamento dell'Ente
Scaricabili liberamente e
importabili in piattaforma
Se open (tutti o in parte): LIBERATI
e pubblicati su www.dati.piemonte
Se non open: richiesta di fruizione
in modalità riservata
Linee guida al monitoraggio
Linee Guida al Monitoraggio
� Il monitoraggio del Bando si compone di due parti:
� La documentazione richiesta per entrambe le parti dovrà
essere anticipata alla casella PEC
5 gg lavorativi prima di ogni incontro di monitoraggio
Monitoraggio
Tecnico
CSI Piemonte
Monitoraggio
Fisico, Finanziario e Procedurale
Finpiemonte
Monitoraggio Tecnico
Monitoraggio Tecnico
� Curato dal CSI Piemonte, (DD n. 151 del 30 maggio 2014) avrà
per scopo la verifica dello stato di avanzamento del progetto
in riferimento ai risultati raggiunti dalle attività di ricercaindustriale e/o di sviluppo sperimentale in coerenza con i
deliverable previsti
� Le informazioni sullo stato del progetto saranno riportate
nella Relazione Tecnica:
� descrizione delle attività realizzate o avviate;
� risultati ottenuti in riferimento ai piani di progetto;
� le prime valutazioni sugli effetti prodotti;
� avanzamento attività.
Monitoraggio Tecnico
� Avanzamento attività
Monitoraggio Tecnico
� Lo svolgimento dell’attività di monitoraggio comporterà
l’accesso da parte di CSI Piemonte ai deliverable di progettoin formato documentale e/o applicativo
� CSI Piemonte assicura la segretezza e la confidenzialità dei
dati, delle informazioni e del know-how commerciale di cui
verrà a conoscenza nell'ambito del monitoraggio
� Per eventuali richieste di chiarimento relative alla
predisposizione della Relazione Tecnica di monitoraggio
occorrerà fare riferimento alla casella di posta:
Monitoraggio Tecnico
� Sono previsti 3 incontri di monitoraggio tecnico
� Primo Incontro
� entro il prossimo mese di dicembre presso la sede del CSI Piemonte
con ogni Capofila progettuale (ed eventuali altri partner a sua
discrezione)
� verrà richiesta la prima Relazione Tecnica di monitoraggio in cui dovrà
essere presentato il cronoprogramma aggiornato del progetto,
riportando la data di kick off di avvio attività
Monitoraggio Tecnico
� Secondo Incontro
� si svolgerà entro aprile 2015
� verrà richiesta la Relazione Tecnica di monitoraggio intermedio con
possibili verifiche tecniche e documentali dei deliverable previsti a
piano
� Terzo Incontro
� si svolgerà entro la fine di settembre 2015
� verrà richiesta la Relazione Tecnica di avanzamento finale del progetto,
che sarà utilizzata per la valutazione conclusiva
� la verifica dovrà comprendere una dimostrazione funzionale dei
deliverable di progetto
Monitoraggio Tecnico
Lunedì, 1 dicembre 2014
h. 10.00-12.00 progetto SEes@Wh. 15.00-17.00 progetto QUIES
Mercoledì, 3 dicembre 2014
h. 10.00-12.00 progetto IDEMh. 15.00-17.00 progetto ALL4ALL
Venerdì, 5 dicembre 2014
h. 10.00-12.00 progetto EDENh. 15.00-17.00 progetto SMARTWEAR
Mercoledì, 10 dicembre 2014
h. 10.00-12.00 progetto LEOh. 15.00-17.00 progetto O.N.D.E. - UWC
Venerdì, 12 dicembre 2014
h. 10.00-12.00 progetto IoTiBevoh. 15.00-17.00 progetto HealthCommons
Lunedì, 15 dicembre 2014
h. 10.00-12.00 progetto Pitagorah. 15.00-17.00 progetto ELISE
Mercoledì, 17 dicembre 2014
h. 10.00-12.00 progetto ESGPh. 15.00-17.00 progetto ComfortSense
CONFERMARE DATA PROPOSTA VIA MAIL A
[email protected] (entro 26/11)
� Primo incontro – proposta calendario
Integrazione con Smart Data Platform
� In parallelo al monitoraggio tecnico
�CSI Piemonte richiede alle aziende informazioni per il capacityplanning della Piattaforma (es. frequenza invio stream,
dimensioni dataset, necessità di fruizione). Si richiede alle
aziende di compilare il capacity planning entro il mese di
dicembre 2014
�CSI Piemonte è disponibile per approfondimenti
sull'interfacciamento con la Smart Data Platform Yucca:
�Mediante Developer center e contatti continuativi
�Con incontri de visu contestuali agli incontri di monitoraggio
(segnalandone prima l’esigenza)
Monitoraggio Fisico
Finanziario e Procedurale
Monitoraggio Fisico Finanziario Procedurale� Curato da FINPIEMONTE, segue temporalmente le scadenze
previste dal monitoraggio tecnico
� I beneficiari, contemporaneamente all’invio della
documentazione tecnica, inoltrano anche lo stato di avanzamento
della spesa (= fatture quietanzate), da compilarsi su supporto
excel messo a disposizione da Finpiemonte
� NB: prima dell’incontro 1, Finpiemonte fornisce al capofila del
progetto il file excel di partenza, con già compilato il piano di
spesa approvato dal Comitato
Monitoraggio Fisico Finanziario Procedurale� Nel file sono presenti opportuni campi note, in cui il capofila
riporta le motivazioni degli scostamenti che possono
eventualmente emergere
� La documentazione viene analizzata prima degli incontri fissati
per il monitoraggio tecnico per evidenziare eventuali
problematiche. Finpiemonte potrà chiedere opportuni
chiarimenti ed informazioni, anche in occasione degli incontri
previsti dal monitoraggio tecnico
Contatti
� Per eventuali richieste di chiarimento, si prega di utilizzare i
seguenti riferimenti:
� per la predisposizione della Relazione Tecnica di monitoraggio, fare
riferimento alla casella di posta elettronica:
� per la predisposizione del Piano di Spesa, e chiarimenti relativi al
monitoraggio fisico, finanziario e procedurale così come definiti nel
Bando, fare riferimento alla casella di posta elettronica:
oppure chiamare l’URP Finpiemonte: 011 5717777
dal lunedì al venerdì dalle ore 9:00 alle ore 12:00
Q & A
www.smartdatanet.it
Top Related