Websocket Notifier
Total Page:16
File Type:pdf, Size:1020Kb
Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica WebSocket Notifier: una RubyGem basata su WebSocket Tesi di laurea triennale Relatore Prof. Tullio Vardanega Laureando Federico Gobbo Anno Accademico 2015–2016 Federico Gobbo: WebSocket Notifier: una RubyGem basata su WebSocket, Tesi di laurea triennale, c Oct 2016. Sommario Il presente documento rappresenta la relazione finale dell’esperienza di stage condotta nell’azienda Si14 Spa. Esso è organizzato in quattro capitoli: 1. Descrizione dell’azienda: le origini, la natura, il mercato, i processi aziendali; 2. Le motivazioni alla base dell’esperienza di stage: i punti di vista dei portatori di interesse, ovvero l’azienda, l’università e il sottoscritto; 3. Presentazione del progetto di stage: processi e prodotti; 4. Valutazione retrospettiva sull’esperienza di stage. Convenzioni tipografiche Nel testo vengono utilizzate delle convenzioni tipografiche col seguente significato: • Corsivo: termine in lingua inglese; • Grassetto: termine rilevante; • Verbatim: nomi di file, codice; • Glossariojgj: termine presente nel glossario; • Riferimento1: termine associato a un riferimento bibliografico. iii “Make the best of the situation” — Eric Clapton Ringraziamenti Vorrei ringraziare il Prof. Tullio Vardanega, relatore della mia tesi, per l’aiuto, i buoni consigli e la disponibilità che ha dimostrato nei miei confronti. Ringrazio la mia famiglia, la mia ragazza e i miei amici per avermi permesso, col loro sostegno, di raggiungere questo traguardo. Padova, Oct 2016 Federico Gobbo v Indice 1 L’azienda: Si141 1.1 Storia . .1 1.2 Contesto aziendale . .1 1.2.1 I vantaggi dell’ecosistema M31 . .2 1.2.2 Tecnologia e innovazione . .2 1.2.3 Spin-off aziendali . .2 1.3 Struttura interna . .3 1.3.1 I reparti . .3 1.3.2 Coordinamento e comunicazione . .4 1.4 Processi aziendali . .5 1.4.1 Acquisizione e fornitura . .5 1.4.2 Gestione . .5 1.4.3 Sviluppo . .6 2 Le motivazioni 11 2.1 L’interesse dell’azienda . 11 2.1.1 Gli stage nella strategia aziendale . 11 2.1.2 Il progetto assegnato . 12 2.1.3 Valutazioni sulla tipologia di progetto . 13 2.2 La scelta personale . 13 2.2.1 L’azienda . 13 2.2.2 Il progetto . 13 2.3 Il fine dell’università . 14 3 Il progetto: WebSocket Notifier 15 3.1 Lo scopo . 15 3.2 Il dominio . 15 3.2.1 Applicazioni web e servizi cloud . 15 3.2.2 Le tecnologie utilizzate . 16 3.3 Le due fasi . 18 3.3.1 Fase 1: studio delle tecnologie . 18 3.3.2 Fase 2: sviluppo del modulo WebSocket . 22 3.4 Creazione della RubyGem . 23 vii viii INDICE 3.4.1 Presentazione delle specifiche . 23 3.4.2 Pianificazione . 23 3.4.3 Analisi dei requisiti . 26 3.4.4 Progettazione . 27 3.4.5 Sviluppo . 29 3.4.6 Documentazione . 32 3.4.7 Testing . 34 3.4.8 Validazione . 34 4 Valutazione retrospettiva 37 4.1 Bilancio dei risultati . 37 4.1.1 Difficoltà incontrate . 37 4.2 Bilancio formativo . 38 4.2.1 Conoscenze . 38 4.2.2 Abilità . 39 4.2.3 Competenze . 39 4.3 Il gap formativo . 39 Glossario 41 Acronimi 45 Bibliografia 47 Elenco delle figure 1.1 Logo dell’azienda Si14 e dell’incubatore M31 . .1 1.2 Organigramma aziendale di Si14 . .4 1.3 Ciclo di iterazione della metodologia Agile . .6 1.4 Workflow GitFlow . .8 3.1 Diagramma di Gantt per la Pianificazione . 25 3.2 Prima architettura della RubyGem . 33 Elenco delle tabelle 3.1 File e cartelle principali di una applicazione Ruby on Rails . 19 3.2 Requisiti obbligatori . 26 3.3 Requisiti desiderabili . 27 3.4 Requisiti opzionali . 27 3.5 Soddisfacimento dei requisiti obbligatori . 36 3.6 Soddisfacimento dei requisiti desiderabili . 36 3.7 Soddisfacimento dei requisiti opzionali . 36 Elenco dei codici 3.1 Esempio di migration . 20 3.2 File config.ru per web server Faye . 29 3.3 Invio messaggi dal Server . 30 3.4 Uso del metodo dispatch con le callback di ActiveRecord . 30 ix x ELENCO DEI CODICI 3.5 Iscrizione a un canale . 31 3.6 LoggerExtension . 32 Capitolo 1 L’azienda: Si14 1.1 Storia Si14 nasce nel 2008 dall’incubatore M31, acceleratore di imprese del territorio veneto. L’azienda ha le sue radici in ambiente universitario: da un professore e un gruppo di studenti di ingegneria ha avuto origine quella che sarebbe stata la prima forma di Si14: un’azienda di ingegneri che progettava e realizzava schede elettroniche per conto di aziende terze. Figura 1.1: Logo dell’azienda Si14 e dell’incubatore M31 Con il tempo Si14 è cresciuta ad abbracciare un universo tecnologico più ampio, andando ad allargare il suo organico ed espandendo le sue competenze. Sono nati così nuovi reparti dedicati all’hardware, al firmware e al software che collaborando rendono possibile la creazione di prodotti completi. 1.2 Contesto aziendale Questa è la forma attuale di Si14: un’azienda ad alto contenuto tecnologico ed innovativo, che partendo da una business idea fornisce soluzioni complete sotto forma di prodotti e servizi. Se M31 è definito acceleratore di impresa, Si14 può essere definita acceleratore di prodotto: mantenendo al suo interno tutte le competenze necessarie essa può infatti ridurre il tempo per arrivare a commercializzare un prodotto, ovvero il cosiddetto time to market. Quest’ultimo è un parametro essenziale in un mercato dominato non da chi ha l’idea migliore, ma da chi raggiunge un’ottima realizzazione grazie ad un inserimento precoce nel mercato stesso. A questo scopo si punta alla 1 2 CAPITOLO 1. L’AZIENDA: Si14 produzione di un MVPjgj (Minimum Viable Product) che consenta di raccogliere quanto prima feedback dagli utenti finali. Gli ambiti di applicazione sono i più disparati: dal biomedicale, sportivo, indu- striale, fino al militare. In otto anni di attività sono stati numerosi i progetti portati a termine, molti dei quali per aziende di rilevanza nazionale e internazionale. Di seguito ne sono elencati alcuni: • Luna Rossa: nel giugno del 2014 Si14 è stata Fornitore Ufficiale del team Luna Rossa per la Coppa America, progettando e realizzando un anemometro, fornen- do smartwatch Wearit per il monitoraggio delle performance e un’infrastruttura per la sincronizzazione e la fruizione delle riprese GoPro. • Sirio Panel (Gruppo Finmeccanica): Si14 ha realizzato un hard disk da elicotteri utilizzabile in ambito civile e militare, un Network Area Storage in grado di memorizzare informazioni sensibili e renderle disponibili agli altri apparati di bordo. Per Sirio Panel Si14 ha inoltre realizzato un tablet da coscia per utilizzo in ambito militare e un sistema ILS (Instrumental Landing System) per l’atterraggio strumentale automatico di un aeromobile. • Manfrotto: Si14 ha realizzato Digital Director, la prima stazione di regia per iPad nel mondo della fotografia, in grado di controllare da remoto l’intera attrezzatura fotografica. 1.2.1 I vantaggi dell’ecosistema M31 L’incubatore M31 non ha solo lo scopo di investire sulle aziende emergenti. Esso crea un ecosistema di aziende che possono sfruttare l’una le conoscenze e i servizi dell’altra. Lo stesso M31 si occupa di fornire personale o interi reparti per le aziende in formazione, in modo tale che possano concentrarsi completamente sugli aspetti core e raggiungere più velocemente uno stadio maturo. 1.2.2 Tecnologia e innovazione Per la natura dell’azienda l’innovazione è una componente essenziale: ricercarla mantenendo al contempo standard di qualità elevati è l’unico modo per essere competitivi sul mercato. Si14 trova nell’innovazione lo spirito che la contraddistingue, lo stesso che la spinge ad accettare sempre nuove sfide: questo per certi aspetti espone l’azienda a rischi non indifferenti, soprattuto quando il prodotto non è commissionato da altre aziende. Si14 mette quindi in atto tutte le misure precauzionali necessarie nell’analisi e nella gestione dei rischi. 1.2.3 Spin-off aziendali Non solo l’azienda accetta e porta a compimento sfide tecnologiche e di innovazione nei prodotti che realizza: in alcuni casi questi conducono alla nascita di vere e proprie 1.3. STRUTTURA INTERNA 3 aziende spin-off, nate a partire da singoli progetti e che diventano per certi aspetti realtà indipendenti. Questo è il caso delle aziende D·Eye e Wearit. D·Eye D·Eye nasce nel 2014 grazie all’idea dell’oftalmologo Andrea Russo, che ha saputo vedere nei moderni smartphone uno strumento sufficientemente potente e al tempo stesso versatile, per andare ad imitare e in alcuni casi sosituire il classico oftalmoscopio. D·Eye ha infatti sviluppato un dispositivo ottico in grado di effettuare esami della retina sfruttando la telecamera e il sistema di illuminazione di cui ogni smartphone è dotato. Wearit Wearit ha dato origine al primo “action watch” in grado di rilevare dati corporei qualitativi, oltre che quantitativi. Wearit rappresenta un sistema per tracciare, registrare ed analizzare ogni tipo di attività sportiva, fornendo un’unica metrica basata sull’aggregazione e l’analisi dei dati provenienti dai sensori dello smartwatch. 1.3 Struttura interna Come detto, la grande forza di Si14 sta nel poter contare su tutte le competenze di cui necessita direttamente al suo interno. L’organizzazione della azienda rispecchia questa specializzazione dividendo l’organico in reparti e team. 1.3.1 I reparti Di seguito elenco i reparti aziendali dei quali sono venuto a conoscenza durante l’esperienza di stage. Nella figura ?? è illustrato l’intero organigramma aziendale. Ricerca e sviluppo Il reparto di ricerca e sviluppo è il cuore di Si14, dove i team di sviluppo collaborano nel progettare e realizzare soluzioni innovative. • Hardware: il team dedicato all’hardware si occupa di progettare le schede elettroniche e in generale la parte fisica di un nuovo prodotto; • Firmware: le schede elettroniche di per sé non possono comunicare né essere sfruttate dal software: il team dedicato al firmware si occupa quindi di realizzare codice a basso livello che permetta di interpretare i segnali elettrici e fornire un’interfaccia al livello superiore; • Software: il team sviluppa il modello dei dati, la business logic, le interfacce grafiche che si integrano, sfruttano e governano il prodotto stesso.