Progettazione e Implementazione di API WebSocket per il Gateway Dog



Documenti analoghi
Progetto e sviluppo di un applicazione per il pilotaggio remoto di reti

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Lezione 1 Introduzione

P A D. Private A Distanza.

Il protocollo BitTorrent

Reti di Telecomunicazione Lezione 8

Realizzazione di interazioni sincrone e asincrone tra applicazioni Web 2.0

Gestione in qualità degli strumenti di misura

Introduzione alle applicazioni di rete

Progetto e sviluppo di unʼapplicazione iphone per lʼaccesso a reti di sensori senza fili."

Istituto comprensivo Statale D. Zuretti Mesenzana. Progetto ECDL. Certificare le competenze informatiche

Università Politecnica delle Marche. Progetto Didattico

Allegato 3 Sistema per l interscambio dei dati (SID)

Django - WebSocket. Web in real- 3me. Saverio Patruno ConoscereLinux - LUG Modena. #linuxdaymo15

Reti di Telecomunicazione Lezione 6

Siti web centrati sui dati (Data-centric web applications)

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI INFORMATICA E SISTEMISTICA. Presentazione

Si applica a: Windows Server 2008

tesi di laurea Anno Accademico 2004/2005 relatore Ing. Massimo Ficco candidato Pasquale Incarnato Matr. 534/938

2.1 Configurare il Firewall di Windows

Il modo più moderno per promuovere i tuoi prodotti

Applicazioni web centrati sui dati (Data-centric web applications)

Collegamento remoto vending machines by do-dots

Power-Studio è un semplice, veloce potente ed intuitivo applicativo software di monitoraggio e supervisione energetica che consente di realizzare:

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

Lo scenario: la definizione di Internet

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop

Lezione n.10 LPR- Informatica Applicata RMI CallBacks

Prenota On-line - Manuale Utente

Interfaccia KNX/IP - da guida DIN KXIPI. Manuale Tecnico

Programmazione dei socket con TCP #2

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Protocolli applicativi: FTP

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Introduzione ai Web Services Alberto Polzonetti

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon SNS

FLEET MONITORING SCHEMA DI FUNZIONAMENTO

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

NAS 322 Connessione del NAS ad un VPN

Un applicazione client per la localizzazione via Bluetooth e Wi-Fi di dispositivi Smartphone Anno Accademico 2005/2006

Firewall e Abilitazioni porte (Port Forwarding)

Tesi Di Laurea. Anno Accademico 2010/2011. relatore Ch.mo prof. Cinque Marcello. correlatore Ch.mo Ing. Catello Cacace

SERVICE MANAGER. Architettura Client-Server e Web based di Servizi Specializzati per la Gestione di Periferiche e Connettività

UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II

Generazione Automatica di Asserzioni da Modelli di Specifica

INDIRIZZI IP AUTORIZZATI

Gaia Corbetta Convegno 3E - ATI/ANIMP 11 luglio 2013, Milano

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

Canali e Core Banking

Progettazione Web Applicazioni client-server

Progettazione e Sviluppo dell Applicazione Web Share Mobile per Dispositivi Mobili Multipiattaforma. Elaborato di Laurea di: Marco Stanzani

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

SISTEMA DI MONITORAGGIO AMBIENTALE TRAMITE WSN

Documentazione API web v 1.0

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8

Creare una Rete Locale Lezione n. 1

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Il Protocollo HTTP e la programmazione di estensioni Web

Prodotto <ADAM DASHBOARD> Release <1.0> Gennaio 2015

Un sistema di identificazione basato su tecnologia RFID

LIGHTING DESIGNER Gianni Ronchetti Architetto Valmadrera, 10/06/2014

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

E.S.B. Enterprise Service Bus ALLEGATO C11

LE STAMPANTI PREINSTALLATE

Hackathon Developers User Guide

MANUALE D USO MANUALE D USO

Modelli e Sistemi di Elaborazione Peer-to-Peer

Protocollo di metadata harvesting OAI-PMH Lavoro pratico 2

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Soluzioni per la Building Automation

Università degli Studi di Pavia C.so Strada Nuova, 65 - Pavia FULLPRINT

DISPOSIZIONI DELL AUTORITA PER L ENERGIA ELETTRICA E IL GAS IN TEMA DI STANDARD DI COMUNICAZIONE

Ambient-Aware LIfeStyle tutor, Aiming at a BETter Health

Registratori di Cassa

PROTOS GESTIONE DELLA CORRISPONDENZA AZIENDALE IN AMBIENTE INTRANET. Open System s.r.l.

Guida all utilizzo della web app per l utente finale

Dynamic DNS e Accesso Remoto

Le Reti Informatiche

La Skills Card relativa alle certificazioni Nuova ECDL è svincolata dalla singola certificazione.

Realtà Virtuali Prof. Raffaella Folgieri, aa 2013/2014

Master Quiz. Matteo Zignani. 18 agosto 2014

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Integrazione CRM- Remedy e CTI

GUIDA ALLA REGISTRAZIONE DI UN DVR SU

Real Time Control (RTC): modalità di invio dei dati

Transcript:

Corso di Laurea in Ingegneria Informatica Tesi di Laurea Magistrale Progettazione e Implementazione di API WebSocket per il Gateway Dog Relatori: Fulvio Corno Luigi De Russis Candidato: Teodoro Montanaro

Sommario 1. Introduzione Domotica Dog 2. Obiettivi 3. Progettazione 4. Implementazione 5. Test 2

Domotica È l integrazione nella vita domestica di diverse tecnologie quali l informatica, l'elettronica, l automazione con lo scopo di migliorare le condizioni di vita dell abitante offrendogli comfort, sicurezza e benessere. Temperature sensor 1 Client 1 1. INTRODUZIONE Power outlet 1 Power outlet 2 Gateway Internet Temperature sensor 2 Client 2 Client 3 Fig.1 Tipico sistema domotico 3

Il gateway Dog Dog (Domotic OSGi Gateway) è un gateway in grado di esporre differenti network domotici come un unica rappresentazione neutrale da un punto di vista tecnologico Temperature sensor 1 Gateway Client 1 1. INTRODUZIONE OSGi è un framework che implementa un modello a componenti per l'ambiente Java: bundle che si scambiano informazioni tramite servizi Power outlet 1 Power outlet 2 Temperature sensor 2 Gateway Gateway Fig.2 Tipico sistema domotico modificato tramite Dog Internet Client 3 Client 2 4

Obiettivi della tesi 2. OBIETTIVI Progettazione e implementazione di una Application Programming Interface (API) per il gateway Dog in grado di fornire una connessione asincrona e bidirezionale tra il gateway e gli end-user devices (tablet, smartphone, ) La comunicazione deve essere basata su un protocollo e/o una tecnologia standard per il web ampiamente diffusa in grado di fornire supporto a buona parte delle piattaforme software esistenti (per i più diffusi linguaggi di programmazione e/o dispositivi) 5

Scelta del protocollo Polling Facilmente integrabile in un ambiente OSGi 3. PROGETTAZIONE SSE WebSocket Fornisce una comunicazione full-duplex quindi permette al gateway di inviare informazioni non appena sono disponibili Nella maggior parte dei casi è più veloce delle tecnologie concorrenti È più supportato dai moderni browser Comet technologies 6

Architettura di Dog 3. PROGETTAZIONE Core Layer Drivers Layer Addons Metaprogrammazione: abilità di un programma di ispezionare codice esistente con l'obiettivo di invocare i suoi metodi e le sue funzioni 7

Struttura dei messaggi 3. PROGETTAZIONE Campo Significato clientid identifica univocamente l'utente (stabilito dal server) sequencenumber permette di capire a quale richiesta il server ha risposto messagetype tipo di messaggio. Possibili valori: ['request', 'response', 'info'] indica cosa contiene il messaggio. Utilizzato per i messaggi di tipo info e per la registrazione delle notifiche. Possibili valori: ['presentation', notification, type notificationregistration, notificationunregistration ] action endpoint parameters response notification indica l'azione da intraprendere. Corrisponde al verbo HTTP utilizzato nelle REST API. Possibili valori: [ GET, PUT, POST, DELETE ] indica a quale risorsa si vuole accedere. Corrisponde all'url utilizzato nelle REST API. possibili parametri contenuto della risposta (in formato JSON) contenuto delle notifiche (in formato JSON) { } esempio di RICHIESTA "clientid":"1f7170d4", "sequencenumber":"1", "messagetype":"request", "action":"get", "endpoint":"/api/devices/meteringpoweroutlet_3/status" 8

Implementazione Obiettivo Implementare un bundle OSGi integrabile in Dog in grado di: fornire supporto agli sviluppatori tramite API WebSocket 4. IMPLEMENTAZIONE accettare messaggi strutturati come precedentemente progettato onopen" onclose onmessage sendmessage 9

Gestione dei messaggi Abbiamo 2 tipologie diverse di messaggi da gestire: Messaggi relativi a informazioni da acquisire tramite REST API (metaprogrammazione) Messaggi relativi alle comunicazioni asincrone, ovvero le notifiche 4. IMPLEMENTAZIONE Core Layer Communication Layer 10

Gestione dei messaggi Messaggi da acquisire tramite REST API Utilizzo delle annotazioni JAX-RS (Java API for RESTful Services) 4. IMPLEMENTAZIONE @Path("/api") public class WidgetResource { @GET @Path("/greetings") public String getgreetings() { return Hello ; } } esempio di metodo esposto tramite annotazione JAX-RS 11

Gestione dei messaggi 4. IMPLEMENTAZIONE 1. Notifiche contenenti: deviceuri notificationtopic 2. Registrazione delle notifiche: { } sottoscrivere TUTTE le notifiche per TUTTI o ALCUNI dispositivi sottoscrivere ALCUNE notifiche per TUTTI o ALCUNI dispositivi "clientid":"1f7170d4", "sequencenumber":"1", "messagetype":"request", "type":"notificationregistration", "action":"put", "endpoint":"/api/devices/notifications" Registrazione di tutte le notifiche per tutti i dispositivi Messaggi relativi alle notifiche { "clientid" : "3cabdc0f", "messagetype" : "info", "type" : "notification", "notification" : { "notificationtopic" : "SinglePhaseActivePower MeasurementNotification", "notificationname" : "newactivepowervalue", "deviceuri" : "MeteringPowerOutlet_3", "powervalue" : "0.0 W" } } Esempio di notifica 12

Applicazione d'esempio Creazione di una libreria lato Client: implementa i metodi che gli sviluppatori dovranno utilizzare per generare automaticamente i messaggi da inviare al server Creazione dell'applicazione d'esempio con JavaFX 5. TEST 13

Test prestazionali Abbiamo effettuato dei test per valutare le prestazioni delle API implementate effettuando anche un confronto con le API REST esistenti. Nell'ottica di verificare che le API WebSocket fossero più veloci delle API REST abbiamo effettuato i test in 2 diverse condizioni: Test locali: end-user device e gateway erano nella stessa rete locale Test remoti: end-user device e gateway comunicavano attraverso Internet 5. TEST Richiesta Richieste LOCALI Tempi medi REST Tempi medi WebSocket GET /api/v1/devices 33.38 ms 22.88 ms PUT /api/v1/devices/mainspoweroutlet_2/location 32.88 ms 14.25 ms GET /api/v1/environment 83.13 ms 7.25 ms POST /api/v1/environment/flats 30.38 ms 15.00 ms 14

Test prestazionali Richiesta Richieste REMOTE Tempi medi REST Tempi medi WebSocket GET /api/v1/devices 274.28 ms 82.25 ms PUT /api/v1/devices/mainspoweroutlet_2/description 93.17 ms 34.00 ms 5. TEST GET /api/v1/environment 128.66 ms 31.88 ms POST /api/v1/environment/flats 161.04 ms 34.50 ms Nei test remoti è molto più evidente che le REST API sono più lente ed il motivo principale è che per ogni richiesta viene effettuata una nuova connessione, mentre in WebSocket una volta stabilita essa viene mantenuta aperta per tutte le richieste. 15

GRAZIE per la cortese attenzione! 16