UNIVERSITÀ DI PISA. Sperimentazione con il Framework SPINE per WSN e Android. Tesi di Laurea FACOLTÀ DI INGEGNERIA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DI PISA. Sperimentazione con il Framework SPINE per WSN e Android. Tesi di Laurea FACOLTÀ DI INGEGNERIA"

Transcript

1 UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA Corso di Laurea Triennale in Ingegneria Informatica Tesi di Laurea Sperimentazione con il Framework SPINE per WSN e Android RELATORI Prof. Marco Avvenuti CANDIDATO Francesco Piras Ing. Mario G.C.A. Cimino Ing. Daniel Cesarini ANNO ACCADEMICO

2 A mio padre e mia madre che mi hanno permesso di raggiungere questo importante traguardo.

3 Riassunto analitico L'obiettivo di questa tesi è stato quello di esplorare il framework SPINE (Signal Processing In Node Environment) e testarne il funzionamento per l'acquisizione e l'elaborazione di dati provenienti da WSN (Wireless Sensor Networks), mediante dispositivi mobili con sistema operativo Android, utilizzando il protocollo Bluetooth per la comunicazione. A tal proposito sono state realizzate due semplici applicazioni per testare eettivamente il funzionamento del framework. Una consente di visualizzare su un piano cartesiano XY i dati acquisiti, l'altra produce dei suoni, in base ai dati acquisiti, attraverso l'utilizzo di PureData. La prima parte della tesi consiste in una breve introduzione alle WSN seguita dalla seconda parte nella quale viene descritto il framework SPINE, il sistema operativo Android e l'integrazione dell'uno con l'altro. Questa tesi vuole essere infatti anche una guida alla congurazione e all'utilizzo del framework con il sistema operativo Android in quanto la documentazione a disposizione non tratta esplicitamente l'argomento. La parte nale riguarda la descrizione delle applicazioni delle quali viene illustrato il funzionamento, alcune scelte implementative e i problemi riscontrati durante la fase di realizzazione e di test. In appendice è fornito il codice e il diagramma delle classi dell'applicazione che visualizza su un piano cartesiano XY i dati acquisiti. I

4 Indice I. Le WSN 1 1. Wireless Sensor Networks 2 II. SPINE e Android 4 2. Introduzione al Framework SPINE Architettura di SPINE Lato Nodo Comunicazione Radio Controller Packet Manager Rilevamento Elaborazione Feature Engine Alarm Engine Altre Funzionalità Architettura di SPINE Lato Server API oerte da SPINE SPINEListener SPINEManager Android Architettura Componenti Applicativi Activity Services Content Provider Broadcast Receivers Attivazione dei componenti Intent Il le Manifest II

5 Indice 3.5. L'ambiente di sviluppo Struttura di un progetto realizzato con Eclipse Utilizzo di SPINE con Android Congurazione dell'applicazione Congurazione e attivazione della WSN Congurazione dei sensori Congurazione del Feature Engine Function Congurazione, aggiunta e attivazione delle Feature Avvio della WSN e gestione dei dati ricevuti III. Le Applicazioni Mobili Le Applicazioni Model-View-Controller AndroidSPINE Connessione Bluetooth Congurazione della WSN Acquisizione e stampa dei dati SPINESonier Test e considerazioni IV. Appendice 38 A. Codice 39 B. Diagramma delle classi 52 III

6 Parte I. Le WSN 1

7 1. Wireless Sensor Networks Le Wireless Sensor Networks (WSN) rappresentano una tecnologia che introduce una nuova classe di applicazioni e di sistemi per l'elaborazione delle informazioni attraverso reti di sensori. In particolare, le WSN applicate al corpo umano, conosciute come Wireless Body Sensor Networks (WBSN), rappresentano il sistema più adatto per il monitoraggio e il controllo i parametri sici e biomedici provenienti dal corpo umano, così da supportare applicazioni ad alto impatto per una grande varietà di contesti che vedono l'uomo protagonista (Figura 1.1). La caratteristica principale di questo di tipo di reti è l'architettura distribuita della rete stessa, la quale è realizzata mediante un insieme di dispositivi elettronici autonomi in grado di prelevare dati dall'ambiente circostante (o dal corpo umano se si parla di BSN) e di comunicare tra loro. Il progresso tecnologico nel campo dell'elettronica e delle comunicazioni wireless ha permesso lo sviluppo di dispositivi dai costi contenuti, multifunzionali e capaci di comunicare con tecnologia wireless a corto raggio e soprattutto a bassa potenza. Questi dispositivi, chiamati nodi sensore (sensor node o mote), costituiti da uno o più sensori, sono in grado di rilevare grandezze siche (accelerazione, temperatura, umidità ecc.) attraverso dei trasduttori che si trovano a diretto contatto con le grandezze da misurare, elaborare i dati e comunicare tra loro. I nodi sensore all'interno di una rete hanno la possibilità di collaborare tra loro dal momento che sono provvisti di un processore on-board. Grazie a quest'ultimo, ciascun nodo, anziché inviare dati grezzi ai nodi responsabili della raccolta dei dati, può eettuare delle semplici elaborazioni e trasmettere solo i dati richiesti e già elaborati. Esistono dei Sistemi Operativi sviluppati appositamente per le WSN, il più famoso dei quali è TinyOS. La comunicazione, realizzata tramite tecnologia wireless a corto raggio (Bluetooth, IEEE e ZigBee), è solitamente di tipo asimmetrico in quanto i nodi comuni inviano le informazioni raccolte ad uno o più nodi speciali della rete, detti nodi sink, i quali hanno lo scopo di raccogliere i dati e trasmetterli tipicamente ad un server o ad un calcolatore. Una comunicazione può avvenire autonomamente da parte del nodo quando si verica un dato evento, o può venire indotta dal nodo sink tramite l'invio di una richiesta verso i nodi interessati. Una delle problematiche principali sulla quale si lavora è il consumo energetico. Ogni 2

8 CAPITOLO 1. WIRELESS SENSOR NETWORKS sensore ha una riserva limitata di energia e questo implica che debba lavorare mantenendo bassi i consumi, in modo da avere un maggiore ciclo di vita. Una delle soluzioni che viene proposta per mediare questo problema, è quella di attivare la radio per la comunicazione solo quando si hanno dei dati da trasmettere anziché tenerla sempre accesa. Figura 1.1.: Wireless Body Sensor Network 3

9 Parte II. SPINE e Android 4

10 2. Introduzione al Framework SPINE SPINE (Signal Processing in Node Environment) è un framework per l'implementazione distribuita di algoritmi per l'elaborazione di segnali nelle reti di sensori wireless. Nato dalla collaborazione dell'università della Calabria con società come Telecom Italia, è distribuito con licenza LGPL. Questo framework fornisce un insieme di servizi direttamente eseguibili sui nodi che possono essere settati e attivati in base alle esigenze dell'applicazione che si intende sviluppare. Attualmente è disponibile la versione Il framework SPINE ha due componenti principali: Lato Nodo: sviluppato con l'ambiente TinyOS2.x, fornisce servizi direttamente sul nodo come il campionamento, la memorizzazione e l'elaborazione dei dati. Lato Server: sviluppato con Java SE, opera come coordinatore della rete di sensori. Gestisce la rete, congura e attiva i servizi sui nodi in base ai requisiti dell'applicazione Architettura di SPINE Lato Nodo Il framework SPINE si deve occupare della comunicazione tra i nodi all'interno della rete, della gestione dei sensori presenti sui nodi e delle funzionalità di elaborazione del segnali. Le funzionalità presenti sui nodi vengono suddivise in tre blocchi logici (Figura 2.1): Comunicazione: si occupa della comunicazione radio e del relativo duty cicle, della costruzione e dell'analisi dei pacchetti, degli schemi di accesso al canale; Rilevamento: Gestisce il campionamento dei dati provenienti dai sensori e del salvataggio in un buer condiviso; Elaborazione: si occupa dell'elaborazione dei dati acquisiti. 1 5

11 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE Figura 2.1.: Architettura Lato Nodo Il ciclo di vita del Framework SPINE Lato Nodo è gestito dal componente SPINEApp. SPINEApp agisce come tramite fra i moduli sopracitati e in particolare fornisce i seguenti servizi: Non appena viene ricevuto il messaggio di Service Discovery, vengono richieste informazioni riguardo i sensori supportati dal Sensor Board Controller e le funzionalità del Function Manager e in seguito viene restituito al coordinatore il pacchetto Service Advertisement; Vengono smistati i pacchetti in arrivo in base al loro tipo: Messaggi di SetUpSensor ai moduli di rilevamento (Sensor Board Controller); Messaggi di SetUpFunction e ActivateFunction ai moduli di elaborazione (Function Manager) Gestione dei messaggi di start e reset. 6

12 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE Comunicazione Lato nodo, la comunicazione è gestita principalmente da due componenti: il Radio Controller e il Packet Manager(Figura 2.2). Figura 2.2.: Modulo per la comunicazione Lato Nodo Radio Controller Il Radio Controller si occupa dell'accesso alla radio e, quando sono attivi, della gestione della modalità low power e dell'accesso al canale tramite lo schema TDMA (Time Division Multiple Access). Quando viene ricevuto il messaggio di start, il nodo viene avviato con la congurazione impostata precedentemente. Nel payload del messaggio di start, l'applicazione Lato Server può settare due dierenti ag: radioalwayson: quando questo parametro è impostato su FALSE, la radio viene spenta se non bisogna inviare nessun messaggio e viene accesa ogniqualvolta il nodo ha un messaggio da inviare. Tuttavia la comunicazione bidirezionale deve essere ancora garantita quindi il Radio Controller implementa la logica per ricevere eventuali messaggi. Dopo l'invio di un messaggio la radio viene tenuta accesa per un certo periodo di tempo in attesa di eventuali messaggi in arrivo (Figura 2.3). Lato Server, se la rete è stata avviata con l'opzione radioalwayson=false e lo SPINEManager ha un messaggio da inviare ad un nodo, memorizza il messaggio nché non riceve un messaggio da quel nodo. Inoltre, il coordinatore aspetta un riscontro da parte del nodo prima di eliminare il messaggio dalla coda, altrimenti prova a ritrasmetterlo (Figura 2.4). 7

13 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE Figura 2.3.: Comportamento della radio con radioalwayson=false Figura 2.4.: Diagramma di usso del RadioController con radioalwayson=false enabletdma: quando questo parametro è impostato su TRUE, il Radio Controller applicherà lo schema TDMA a tutte le trasmissioni (Figura 2.5). Dunque, ogni volta che dovrà inviare un pacchetto attenderà il prossimo slot di tempo che gli è stato assegnato. Questo potrebbe essere necessario in scenari dove deve es- 8

14 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE sere inviata una grande quantità di dati al coordinatore da diversi nodi e uno schema CSMA-CD puro potrebbe non essere abbastanza per ottenere una comunicazione adabile. Il messaggio di start fornirà anche il numero totale di nodi presenti nella rete in quel momento. Questa è la ragione per la quale bisogna programmare i nodi con ID sequenziali (1,2,...) e, se necessario, cambiare il TD- MA_FRAME_PERIOD all'interno del Makele, che ha come impostazione predenita 600ms. C'è da notate che nché il coordinatore non sarà assegnato ad un particolare slot, proverà a inviare pacchetti appena possibile, basandosi sullo schema di accesso predenito della base-station (tipicamente CSMA-CA). Figura 2.5.: Esempio di schema TDMA Packet Manager Il Packet Manager si occupa della costruzione e dell'analisi del payload e degli header dei pacchetti SPINE. Inoltre, se necessario, si occupa della frammentazione dei pacchetti prima di inviarli alla radio. In questo modo, ogniqualvolta il Function Manager deve inviare un pacchetto, non si deve preoccupare della lunghezza e chiamare semplicemente PacketManager.build. In seguito il Packet Manager, se necessario, analizza il pacchetto e invia pacchetti multipli. Lato Server, SPINE Manager ricostruirà il pacchetto opportunamente. Da notare che, a questo stadio, il meccanismo non è implementato nell'altra direzione: conseguentemente il Lato Server non potrà mai inviare frammenti dello stesso pacchetto ma dovrà costruire il pacchetto in accordo con la massima dimensione con- 9

15 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE sentita. Il Packet Manager può occuparsi di dierenti tipi di pacchetti in ingresso e in uscita per quanto concerne le interfacce denite (InPacket con il comando di analisi e OutPacket con il comando di costruzione). SPINE denisce un protocollo bidirezionale per la comunicazione tra il nodo coordinatore e i nodi sensore. Tutti i messaggi hanno lo stesso header il quale viene mostrato di seguito: In particolare, supporta la gestione dei messaggi dal nodo coordinatore agli altri nodi come: Network Discovery: è un pacchetto vuoto mandato in broadcast in modo che possa essere ricevuto da tutti i nodi della rete. Set Up Sensor: contiene le impostazioni per il campionamento necessarie per congurare il sensore. Set Up Function: contiene le impostazioni generali delle quale una funzione necessita. La lista dei parametri è generalmente una lista di byte in modo da essere generica e possa essere utilizzata per diverse funzioni. Active/Deactive Function: contiene i dettagli delle funzionalità che devono essere attivate. La lista dei parametri è una lista generica di array. Start Network: è un pacchetto inviato in broadcast che funziona come interruttore per avviare il campionamento e l'elaborazione sui nodi. Contiene il numero totale dei nodi presenti nella rete (utilizzato sei il TDMA è abilitato) e i ag RadioAlwaysON e enabletdma. 10

16 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE Dall'altra parte, i nodi sensore possono inviare al coordinatore i seguenti messaggi: Service Advertisement: riporta le informazioni riguardo i sensori e le funzioni supportate dal nodo. Il campo functions è riempito da una specica Function e contiene codici utili per identicare la funzione stessa e altre sotto funzioni se presenti. Data Packet: contiene il tipo di funzione e una lista di byte con i dati specici. È stato pensato per essere generico e per poter essere facilmente utilizzato per qualsiasi tipo di funzionalità. Service Message Packet: usato dai nodi per noticare avvertimenti ed errori che si possono vericare e per altri messaggi informativi di sistema Rilevamento Il modulo di Rilevamento è composto da tre componenti principali: il Sensor Registry, il Sensor Board Controller e il Buer Pool (Figura 2.6). 11

17 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE Figura 2.6.: Modulo di Rilevamento Il Sensor Board Controller gestisce tutti i sensori che sono registrati a SPINE grazie al Sensor Registry,. La sue funzioni principali sono quelle di impostare i parametri dei sensori e acquisire i dati da essi. I dati vengono poi memorizzati in una serie di buer, Buer Pool, in modalità FIFO. Il Buer Pool è impostato dal Makele tramite i parametri BUFFER_POOL_SIZE e BUFFER_LENGTH per allocare un buer per ogni canale di ogni sensore registrato. Per convenienza BUFFER_POOL_SIZE è impostato automaticamente durante l'utilizzo della sensorboard predenita. La parte di rilevamento può essere estesa aggiungendo nuovi sensori per essere supportati da SPINE Elaborazione Il modulo di elaborazione è composto da un Function Manager che si occupa della gestione di tutte le funzioni supportate dal nodo(figura 2.7). 12

18 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE Figura 2.7.: Modulo di Elaborazione Lato Nodo, una generica funzione deve implementare l'interfaccia Function per poter essere gestita dal Funciton Manager. L'interfaccia è stata denita in maniera molto generica, in modo tale che la logica si possa implementare all'interno della funzione. Il Lato Server invia due comandi dierenti al Function Manager (setupfunction e activatefunction) indirizzando delle speciche funzioni e inviando un array generico di parametri che saranno in seguito decodicati dalla funzione implementata. Il pacchetto dati inviato indietro al Lato Server con i valori computati è composto anche esso da un array generico di byte. L'elaborazione delle funzioni potrà ora iniziare dopo la ricezione del messaggio di start proveniente dal Lato Server Feature Engine I dati raccolti dai sensori presenti sui nodi potrebbero essere inviati al coordinatore senza nessuna elaborazione (raw data) per essere analizzati in seguito Lato Server. Questa non è la procedura migliore in termini di consumo energetico e utilizzo del canale di trasmissione. In alternativa, i dati possono essere elaborati sul nodo e solo il risultato dell'elaborazione viene inviato al coordinatore. Feature Engine di SPINE fornisce calcoli periodici di semplici caratteristiche dei dati acquisiti. L'applicazione Lato Server può richiedere una caratteristica utilizzando due messaggi di setup: un messaggio di congurazione della funzione (SetUpFunction) con i valori della nestra di lavoro e di shift di un dato sensore, e un messaggio di attivazione della funzione con le caratteristiche desiderate per quel sensore. Le caratteristiche includono: AMPLITUDE (Ampiezza), MAX (valore massimo), MEAN 13

19 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE (valor medio), MIN(valore minimo), MODE (moda), RAW DATA (dati grezzi), STAN- DARD DEVIATION (deviazione standard), TOTAL ENERGY (energia totale) ecc. Le caratteristiche possono essere calcolate sia sui singoli canali che su canali multipli Alarm Engine Un'altra interessante caratteristica di SPINE è l'alarm Engine. I dati campionati dai sensori presenti sui nodi possono servire al coordinatore solo se rispettano certe condizioni. Tali condizioni possono essere vericate dal nodo stesso e i dati vengono inviati al coordinatore solo quando necessari: questo è lo scopo dell'alarm Engine. Alarm Engine di SPINE fornisce degli eventi generati sul nodo ogni volta che i valori delle funzioni superano le soglie precedentemente impostate. Gli allarmi possono essere impostati su tutte le caratteristiche supportate, inclusi i dati grezzi, specicando la dimensione della nestra e dello shift oltre i parametri specici per l'allarme. Alarm Engine fornisce notiche per quattro tipi diversi di allarmi su tutte le caratteristiche disponibili sul nodo(figura 2.8). Figura 2.8.: Tipi di allarme Altre Funzionalità SPINE ore delle altre funzionalità come Step Counter. Step Counter è una funzione predenita che, utilizzando i dati provenienti da un accelerometro contenuto dentro un nodo che viene posizionato sulla vita di una persona, conta i passi durante una camminata. Una volta attivato, viene inviata una notica al coordinatore ogni volta che viene rilevato un passo. 14

20 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE 2.2. Architettura di SPINE Lato Server Il Lato Server ha una struttura tale da permettere di separare la logica del framework dal tipo di rete con la quale deve comunicare cioè il core di SPINE non utilizza alcuna API specica e può essere utilizzato in maniera indipendente dallo stack protocollare sottostante (Figura 2.9). Il framework supporta diversi tipi di nodi quali Telosb, Tmote, Micaz, Shimmer e permettere inoltre l'emulazione dei nodi grazie all'applicazione SPINE Node Emulator. Sempre per quanto riguarda il Lato Server, il framework fornisce delle semplici API Java per lo sviluppo delle applicazioni. Pertanto il punto di forza del framework SPINE è il fatto di consentire al programmatore Lato Server di sviluppare applicazioni per le reti di sensori senza doversi preoccupare della programmazione Lato Nodo. Ciò che è richiesto lato Java allo sviluppatore è di implementare l'interfaccia SPINEListener utilizzando le API fornite dalla classe SPINEManager che verranno trattate in seguito nello specico. Figura 2.9.: Architettura Lato Server Il codice Lato Server è organizzanto nel seguente modo: spine: contiene il core logico di SPINE; spine.datamodel: package che contiene i modelli di dati utilizzati dal Framework; spine.datamodel.functions: sub-package che denisce le strutture delle funzioni; 15

21 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE spine.datamodel.servicemessages: sub-package che denisce i messaggi di servizio; spine.exceptions: SPINE. sub-package contenente la classe di eccezioni lanciate da Il Lato Server di SPINE fornisce un'implementazione per le reti TinyOS2.x, per le reti Virtual Sersor Network e per la comunicazione via Bluetooth. Inoltre fornisce il supporto per la comunicazione a basso livello con TinyOS: spine.communication.tinyos: contiene la logica e le procedure per la comunicazione a basso livello speciche per TinyOS (chiamando le API da tinyos.jar); spine.payload.codec.tinyos: sub-package contenente i codec dei messaggi a basso livello per la piattaforma TinyOS; per la comunicazione a basso livello con SPINE Node Emulator: spine.communication.emu: contiene la logica e le procedure per la comunicazione a basso livello per Virtual Sensor Node; spine.payload.codec.emu: sub-package contenente i codec dei messaggi a basso livello per Virtual Sensor Node; e per la comunicazione via Bluetooth: spine.communication.bt: contiene la logica e le procedure per la comunicazione a basso livello tramite il protocollo Bluetooth. Grazie a questo package è possibile implementare la comunicazione via Bluetooth utilizzando librerie diverse in base alle esigenze del programmatore e in base alla piattaforma utilizzata (es. Android); spine.payload.codec.bt: sub-package contenente i codec dei messaggi a basso livello per il protocollo Bluetooth API oerte da SPINE Come già accennato, quello che deve fare lo sviluppatore Lato Server, è di implementare l'interfaccia SPINEListener utilizzando le API fornite da SPINEManager SPINEListener L'interfaccia SPINEListener fornisce i seguenti metodi: void received(data data) 16

22 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE È invocato dallo SPINEManager per i suoi listener registrati quando riceve dei dati da un nodo specico. L'oggetto Node che ha generato l'oggetto Data è contenuto all'interno dell'oggetto Data stesso. void discoverycompleted(java.util.vector activenodes) È invocato dallo SPINEManager per i suoi listener registrati quando il timer della procedura di discovery si esaurisce. void newnodediscovered(node newnode) È invocato dallo SPINEManager per i suoi listener registrati quando riceve un messaggio di ServiceAdvertisement da un nodo della WSN. void received(servicemessage msg) È invocato dallo SPINEManager per i suoi listener registrati quando riceve un ServiceMessage da un nodo specico. L'oggetto Node che ha generato l'oggetto ServiceMessage è contenuto all'interno dell'oggetto ServiceMessage stesso SPINEManager La classe SPINEManager fornisce i seguenti metodi: void activate(node node, SpineFunctionReq functionreq) Attiva una funzione (o una sotto-funzione) su un determinato sensore. void addlistener(spinelistener listener) Registra uno SPINEListenerRegisters all'istanza di SPINEManager. void bootupwsn() Non fa niente. void deactivate(node node, SpineFunctionReq functionreq) Disattiva una funzione (o una sotto-funzione) su un determinato sensore. void discoverywsn() Ordina allo SPINEManager di eettuare un discovery dei nodi della WSN. void discoverywsn(long timeout) Ordina allo SPINEManager di eettuare un discovery dei nodi della WSN con un determinato timeout. 17

23 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE java.util.vector getactivenodes() Restituisce la lista dei nodi attivi come un Vector di spine.datamodel.node. spine.datamodel.node getbasestation() Restituisce il nodo che rappresenta la BaseStation. Jade.util.Logger static getlogger() Restituisce il Logger statico del Framework SPINE. Il Logger può essere utilizzato per impostare il livello di logging e la gestione personalizzata (ad esempio scrivere i log su un le). spine.datamodel.node getnodebylogicalid(spine.datamodel.address id) Restituisce un nodo con un determinato indirizzo logico. spine.datamodel.node getnodebyphysicalid(spine.datamodel.address id) Restituisce un nodo con un determinato indirizzo sico. void getoneshotdata(node node, byte sensorcode) Impone ad un determinato nodo il campionamento immediato al primo colpo su un dato sensore. boolean isstarted() Restituisce TRUE se allo SPINEManger è stato richiesto di iniziare l'elaborazione nella WSN. void removelistener(spinelistener listener) Rimuove uno SPINEListener dall'istanza dello SPINEManager. void resetwsn() Impone un reset software dell'intera WSN. void setdiscoveryproceduretimeout(long discoverytimeout) Imposta il timeout per la procedura di discovery. void setup(node node, SpineSetupFunction setupfunction) Imposta una specica funzione su un dato nodo. void setup(node node, SpineSetupSensor setupsensor) Imposta uno specico sensore su un dato nodo. 18

24 CAPITOLO 2. INTRODUZIONE AL FRAMEWORK SPINE void startwsn(boolean radioalwayson) Avvia la WSN ed elabora le precedenti richieste di impostazione delle funzioni. void startwsn(boolean radioalwayson, boolean enabletdma) Avvia la WSN e elabora le precedenti richieste di impostazione delle funzioni. void syncwsn() Ordina una sincronizzazione software della WSN basata sul clock locale dei nodi. L'istanza dello SPINEManager può essere recuperata solo attraverso SPINEFactory: SPINEManager createspinemanager(string apppropertiesfile) Inizializza lo SPINEManager. I parametri di inizializzazione vengono ottenuti attraverso il le app.properties. 19

25 3. Android Android è un sistema operativo per dispositivi mobili, basato su kernel Linux, che comprende un sistema operativo di base, dei middleware e le applicazioni di base. Creato da Google in collaborazione con l'open Handset Alliance, un gruppo di 79 aziende che lavorano per lo sviluppo e l'innovazione nel settore mobile, Android è la prima piattaforma completa e Open Source per lo sviluppo di applicazioni mobili. Il progetto nasce nel 2005, viene proposto agli sviluppatori nel 2007 e inizia ad aermarsi a partire dal 2009 dopo la prima versione rilasciata il 23 settembre Google ha allestito un sito di E-Commerce che funge da punto di incontro tra gli sviluppatori e gli utilizzatori dei dispositivi mobili. Inizialmente diuso con il nome di Android Market, dal 6 marzo 2012 è stato rinominato in Google Play. Su tutti i dispositivi è preinstallata l'applicazione che permette l'accesso a questo servizio attraverso il quale gli utenti possono cercare e scaricare software e altro materiale (gratuitamente o a pagamento) Architettura Android è, insieme, un sistema operativo, una piattaforma di sviluppo e una collezione di software di base per l'utilizzo di dispositivi mobili. È un sistema operativo di ultima generazione e quindi abbastanza complesso la cui architettura (Figura 3.1) non ha niente da invidiare ai comuni sistemi operativi presenti su computer desktop e laptop. 20

26 CAPITOLO 3. ANDROID Figura 3.1.: Architettura di Android Android è bastato sul kernel Linux versione 2.6 (versione 3.x da Android 4.0 in poi). All'interno dello strato del kernel sono presenti i driver per il controllo dei componenti hardware del dispositivo come tastiera, schermo, touch screen, Bluetooth, WiFi, audio ecc. Sopra il kernel si trova lo strato dell'architettura che contiene le librerie fondamentali ereditate dal mondo Open Source come le OpenGL, SQLite e WebKit. Android fa uso di una macchina virtuale (Dalvik Virtual Machine) per l'esecuzione delle applicazioni che insieme ad una libreria fondamentale costituiscono la piattaforma di sviluppo. Durante il processo di compilazione il programma che costituisce l'applicazione viene trasformato in un codice intermedio chiamato bytecode (come avviene con Java) che verrà poi eseguito sulla Dalvik Virtual Machine. Essendo tale macchina virtuale uguale per tutti i dispositivi Android, le applicazioni potranno essere seguite su qualsiasi dispositivo indipendentemente dall'hardware. Nel penultimo strato dell'architettura è possibile individuare i gestori e le applicazioni di base del sistema. Nello strato più in alto dell'architettura sono presenti gli applicativi utilizzabili dall'utente. 21

27 CAPITOLO 3. ANDROID 3.2. Componenti Applicativi I componenti applicativi sono i blocchi costruttivi essenziali per lo sviluppo di un'appliazione Android. Ci sono quattro tipi di compenenti applicativi fondamentali ognuno dei quali svolge un ruolo diverso per il funzionamento dell'applicazione, ha un proprio ciclo di vita e può essere attivato individualmente Activity Una Activity rappresenta una singola schermata con un'interfaccia utente. Tramite essa l'utente può interagire con l'applicazione per compiere operazioni come scattare una foto, leggere un' , o visualizzare una mappa. Solitamente un'applicazione è costituita da più Activity una delle quali è nominata come main e viene mostrata all'utente quando viene lanciata l'applicazione. Ogni Activity può avviare altre Activity per compiere diverse operazioni. Quando una Activity viene avviata, quella precedente viene sospesa e viene conservata dal sistema in una pila (Black Stack). Quando questo avviene, l'activity che sta per essere sospesa può invocare dei metodi, che fanno parte del suo ciclo di vita, per noticare il cambiamento di stato e per svolgere delle operazioni come ad esempio il rilascio di alcuni oggetti non più necessari. Il sistema operativo stesso può decidere di terminare una Activity che era stata sospesa, se ad esempio la memoria è insuciente. Non appena una Activity viene creata, viene inserita nella pila e viene mostrata all'utente. Essendo la pila una struttura dati che adotta la losoa last in, rst out, quando viene premuto il tasto Indietro, viene mostrata l'ultima Activity che era stata sospesa. Le Activity si realizzano estendendo la classe Activity Services Un Service è un componente applicativo che svolge operazioni in background e non fornisce un'interfaccia utente. Un altro componente applicativo può avviare un Service che continua ad essere eseguito in background anche quando l'utente utilizza un'altra applicazione. Un Service può assumere essenzialmente due forme: Started: un Service assume questa forma quando un'applicazione lo avvia chiamando il metodo startservice(). Una volta avviato viene eseguito in background no a quando non viene distrutto, svolge le operazioni richieste e solitamente non restituisce niente al chiamante. Bound: un Service assume questa forma quando un'applicazione lo avvia chiamando il metodo bindservice(). Quando un Service è avviato in questo modo ore 22

28 CAPITOLO 3. ANDROID un'interfaccia client-server ai componenti che voglio interagire esso ed è eseguito solo nché viene eseguito il componente applicativo al quale è associato I Service si realizzano estendendo la classe Service Content Provider I Content Provider gestiscono l'accesso a insieme di dati strutturati. Orono l'incapsulamento dei dati e meccanismi per denire la sicurezza. I Content Provider sono l'interfaccia standard per la condivisione dei dati tra le applicazioni altrimenti inaccessibili per motivi di sicurezza. Un processo può segnalare al sistema di essere un Content Provider di alcune informazioni: grazie a delle speciche API di Android sarà possibile accedere a queste informazioni secondo le modalità specicate (sola lettura, lettura e scrittura). Un esempio di Content Provider è l'elenco dei contatti presenti sul telefono. Un'applicazione, con i permessi necessari, può accedere all'elenco dei contatti per leggere e scrivere informazioni Broadcast Receivers Un Braodcast Receiver è un componente che risponde a degli annunci broadcast di sistema. La maggior parte dei broadcast sono generati dal sistema come ad esempio l'avviso che il livello di carica della batteria è basso oppure che lo schermo è stato spento. Anche le applicazioni possono generare dei broadcast per informare le altre applicazioni su qualcosa. Sebbene non dispongano di un'interfaccia graca, essi possono generare una notica che apparirà nella barra di stato per informare l'utente su un evento che si è vericato. Più comunemente, i Broadcast Receiver sono utilizzati come punti di passaggio fra i componenti applicativi Attivazione dei componenti Intent Tre dei quattro componenti applicativi - Activity, Service e Broadcast Receiver - vengono attivati da un messaggio asincrono chiamato Intent. L'Intent associa i vari componenti l'uno con l'altro a tempo di esecuzione sia che essi appartengano alla stessa applicazione o ad un'altra. Grazie all'intent, Android diventa un sistema interconnesso composto da componenti indipendenti in grado di comunicare l'uno con l'altro. L'Intent permette di lanciare Activity o Service, trasmettere informazioni riguardo eventi che si sono vericati, supportare l'interazione tra le applicazioni installate sul dispositivo. 23

29 CAPITOLO 3. ANDROID 3.4. Il le Manifest Prima che il sistema Android possa avviare un componente applicativo, il sistema deve sapere che il componente esiste leggendo il le AndroidManifest.xml dell'applicazione. Tutti i componenti presenti nell'applicazione devono essere dichiarati in questo le, il quale si deve trovare della cartella principale del progetto. Inoltre il le ha il compito di: Identicare tutti i permessi utente che l'applicazione richiede Dichiarare il minino API Level richiesto dall'applicazione Dichiarare le caratteristiche software e hardware richieste Librerie API che l'applicazione necessita per essere collegate opportunamente 3.5. L'ambiente di sviluppo Le applicazioni Android sono sviluppate utilizzando un framework che fornisce un'opportuna struttura di supporto sulla quale le applicazioni possono essere organizzate e progettate. Le applicazioni possono essere facilmente progettare e realizzate grazie all'ausilio di un IDE (Integrated Development Environment) come ad esempio Eclipse 1, con integrato il plug-in ADT (Android Developer Tools) che fornisce tra le tante cose gli strumenti di sviluppo per Android (SDK) 2. Le applicazioni Android sono caratterizzate da una parte dinamica rappresentata dai le scritti in linguaggio Java e da una parte statica rappresentata dai le scritti in XML utilizzati per denire il layout. Le applicazioni vengono generalmente distribuite sotto forma di le.apk che permettono l'installazione delle stesse sul dispositivo (sulla memoria interna o scheda SD). Per lo sviluppo delle applicazioni è disponibile una documentazione completa Struttura di un progetto realizzato con Eclipse La struttura di un progetto realizzato con l'ide Eclipse è rappresentata nella Figura

30 CAPITOLO 3. ANDROID Figura 3.2.: Struttura di un progetto realizzato con Eclipse La cartella src/ contiene il codice sorgente dell'applicazione; La cartella gen/ vine generata durante la compilazione del progetto e contiene alcuni le generati automaticamente da Eclipse; Le Android Dependencies/ contengono ulteriori librerie esterne necessarie per l'applicazione; La cartella assets/ contiene altri le statici che saranno impacchettati nell'applicazione; La cartella bin/ contiene l'applicazione una volta compilata; La cartella libs/ contiene i le jar di terze parti di cui l'applicazione necessita; 25

31 CAPITOLO 3. ANDROID La cartella res/ contiene le risorse dell'applicazione, come ad esempio il layout dell'interfaccia graca, il le delle stringhe e quello delle preferenze; Il le AndroidManifest.xml descrive come l'applicazione deve essere costruita e quali componenti, Activity e Service sono forniti dall'applicazione; 26

32 4. Utilizzo di SPINE con Android Come già visto, il framework SPINE fornisce, Lato Server, delle semplici API Java per lo sviluppo di applicazioni con il ruolo di coordinatore. Grazie a questa caratteristica, è stato possibile eettuare il porting del framework sulla piattaforma Android modicando solo le parti relative alla comunicazione via Bluetooth, all'accesso al le system e poche altre cose utilizzando le API speciche per Android, lasciando inalterato il core del Framework Congurazione dell'applicazione Per la corretta esecuzione delle applicazioni che utilizzano SPINE su dispositivi Android, è necessario congurare opportunamente alcuni le e cartelle durante la fase di sviluppo: Aggiungere il le app.properties alla cartella assets. All'interno del le occorre settare i parametri PLATFORM=bt e BT_NETWORK_SIZE=1 per l'utilizzo del Bluetooth. Modicare il le AndroidManifest.xml inserendo le seguenti righe per settare i permessi per l'utilizzo del Bluetooth e per il riconoscimento di SPINE da parte dell'applicazione: <m a n i f e s t... <uses p e r m i s s i o n android : name="android. p e r m i s s i o n.bluetooth_admin"/> <uses p e r m i s s i o n android : name="android. p e r m i s s i o n.bluetooth" />... <a p p l i c a t i o n... android : name="s p i n e. u t i l s. ResourceManagerApplication " >... </ a p p l i c a t i o n > </manifest > Se non esiste, creare la cartella libs dentro il progetto, all'interno della quale andranno messe le librerie esterne (contenute in dei le.jar) le quali dovranno essere aggiunte al Build Path. In particolare occorre che il le spineandroid.jar 1 si trovi all'interno di questa cartella e sia aggiunto al Build Path

33 CAPITOLO 4. UTILIZZO DI SPINE CON ANDROID 4.2. Congurazione e attivazione della WSN Una volta ottenuta l'istanza della classe SPINEManager tramite SPINEFactory manager = SPINEFactory.createSPINEManager(appPropertiesFile); che viene salvata all'interno dell'istanza della classe che implementa l'interfaccia SPINEListener, la quale a sua volta andrà registrata all'istanza della classe SPINEManager appena ottenuta manager.addlistener(this); si può procedere alla congurazione e all'attivazione della WSN. Bisogna inviare un messaggio di Network Discovery in broadcast per ottenere la lista dei nodi che compongono la rete e i relativi servizi oerti manager.discoverywsn(); Quando la procedura di discovery è stata completata, viene richiamata la funzione discoverycompleted(vector activenodes). A questo punto bisogna congurare i nodi, i sensori e le relative funzioni opportunamente Congurazione dei sensori Supponendo di voler congurare il sensore accelerometro con un determinato SAMPLE_TIME espresso in millisecondi, si procede nel seguente modo: SpineSetupSensor sss = new SpineSetupSensor(); sss.setsensor(spinesensorconstants.acc_sensor); sss.settimescale(spinesensorconstants.millisec); sss.setsamplingtime(sample_time); manager.setup(node, sss); Congurazione del Feature Engine Function Supponendo di voler settare una determinata WINDOW_SIZE e SHIFT_SIZE per il sensore accelerometro, si procede nel seguente modo: FeatureSpineSetupFunction ssf = new FeatureSpineSetupFunction(); ssf.setsensor(spinesensorconstants.acc_sensor); ssf.setwindowsize(window_size); 28

34 CAPITOLO 4. UTILIZZO DI SPINE CON ANDROID ssf.setshiftsize(shift_size); manager.setup(node, ssf); Congurazione, aggiunta e attivazione delle Feature Supponendo di voler aggiungere la funzione che calcola il modulo dell'accelerazione (AMPLITUDE) per i dati provenienti dal sensore accelerometro (su tre assi) si procede nel seguente modo: FeatureSpineFunctionReq sfr = new FeatureSpineFunctionReq(); sfr.setsensor(spinesensorconstants.acc_sensor); sfr.add(new Feature(SPINEFunctionConstants.AMPLITUDE, ((Sensor) curr.getsensorslist().elementat(0)).getchannelbitmask())); manager.activate(node, sfr); 4.3. Avvio della WSN e gestione dei dati ricevuti Dopo aver congurato tutti i nodi e i sensori presenti sui nodi si può avviare la WSN con le impostazioni desiderate per i parametri radioalwayson e enabletdma: manager.startwsn(true, true); Una volta avviata la WSN, viene invocata la funzione received(data data) ogniqualvolta viene ricevuto un dato proveniente da un nodo della rete. Sui dati ricevuti, già elaborati sul nodo, si possono compiere ulteriori elaborazioni oppure si possono utilizzare direttamente ai ni dell'applicazione. Il seguente esempio mostra come estrarre dati utili contenuti nell'oggetto Data. public void received ( Data data ) { switch ( data. getfunctioncode () ) { case SPINEFunctionConstants. FEATURE : { Node source = data. getnode () ; Feature [] feats = (( FeatureData ) data ). getfeatures () ; Feature firsfeat = feats [0]; byte sensor = firsfeat. getsensorcode () ; byte featcode = firsfeat. getfeaturecode () ; int ch1value = firsfeat. getch1value () ; break ; default : break ; 29

35 Parte III. Le Applicazioni Mobili 30

36 5. Le Applicazioni Sono state realizzate due semplici applicazioni, Lato Server, per testare il funzionamento del framework SPINE. Queste possono essere considerate la base per applicazioni future più sosticate e consistenti, grazie alle numerose funzionalità messe a disposizione dal framework SPINE e dal SDK di Android. Lato Nodo non è stato necessario realizzare alcuna applicazione poiché è stata utilizzata l'applicazione SPINEApp, realizzata dal team che ha sviluppato il framework, la quale può essere caricata su tutti i nodi compatibili e le cui funzionalità oerte da essa possono essere congurate e attivate direttamente Lato Server. I nodi sensore utilizzati sono gli Shimmer2R con accelerometro (Figura 5.1). La piattaforma Shimmer è stata introdotta in SPINE grazie al contributo di Pering Trevor del laboratorio di ricerca della Intel. Attualmente è supportato il sensore accelerometro su tre assi. Figura 5.1.: Nodo sensore Shimmer2R 31

37 CAPITOLO 5. LE APPLICAZIONI 5.1. Model-View-Controller Le applicazioni sono state progettate utilizzando il pattern Model-View-Controller (Figura 5.2). Figura 5.2.: Model-View-Controller L'architettura del MVC è stata pensata per permettere la separazione tra i moduli che gestiscono il modo di presentare i dati e i moduli che gestiscono i dati stessi. Infatti grazie a questo pattern è stato possibile separare l'interfaccia graca (in generale il modulo di output dei dati) dal modulo per l'acquisizione e l'elaborazione dei dati. In questo modo è risultato abbastanza facile sostituire l'output di tipo graco con l'output di tipo sonoro. I moduli del MVC hanno le seguenti caratteristiche: MODEL Denisce i dati e le operazioni che possono essere eseguite su di essi. Denisce quindi le regole per l'interazione con i dati da parte della View e del Controller, rispettivamente per l'accesso e l'aggiornamento. Inne il Model può avere la responsabilità di noticare alla View eventuali aggiornamenti sui dati, magari in seguito a richieste del Controller, in modo da fornire all'utente dati sempre aggiornati. 32

38 CAPITOLO 5. LE APPLICAZIONI VIEW Denisce la logica di presentazione dei dati. Si occupa quindi della costruzione dell'interfaccia graca attraverso la quale l'utente visualizza i dati e interagisce con l'applicazione. I dati vengono aggiornati attraverso delle notiche da parte del Model (Push Model). La View delega al Controller l'esecuzione dei comandi richiesti dall'utente. CONTROLLER Ha il compito di trasformare le interazione dell'utente con la View in azioni eseguite dal Model. Il Controller non rappresenta solo un ponte tra Model e View ma implementa la logica di controllo dell'applicazione. Tuttavia il pattern è stato modicato per adattarlo alle esigenze delle applicazioni che verranno esposte in seguito AndroidSPINE L'applicazione AndroidSPINE (Figura 5.3) ore le seguenti funzionalità: Connessione Bluetooth con i nodi sensore Congurazione (statica) della WSN Acquisizione dei dati e stampa su graco cartesiano utilizzando le librerie AndroidPlot 1 1 Figura 5.3.: AndroidSPINE 33

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

Dettagli

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it ANDROID Domenico Talia Università della Calabria talia@dimes.unical.it Sistemi Operativi per Mobile! I sistemi operativi per sistemi mobili seguono i principi dei SO classici ma devono gestire risorse

Dettagli

Tecniche di progettazione e sviluppo di applicazioni mobile

Tecniche di progettazione e sviluppo di applicazioni mobile Slide del corso FSE Tecniche di progettazione e sviluppo di applicazioni mobile svolto presso AREA Science Park Padriciano - Trieste - Italy diegozabot@yahoo.it Android Introduzione diegozabot@yahoo.it

Dettagli

Programmazione in ambiente

Programmazione in ambiente Università Politecnica delle Marche Dipartimento di Ingegneria dell Informazione Programmazione in ambiente Android Laura Montanini - laura.montanini@univpm.it Corso di Tecnologie per le TLC 2013-2014

Dettagli

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. http://alessandrazullo.altervista.org Alessandra Zullo

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. http://alessandrazullo.altervista.org Alessandra Zullo 14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1 http://alessandrazullo.altervista.org Alessandra Zullo Indice Provvisorio INTRODUZIONE... 3 COMPONENTI PRINCIPALI... 3 PROCESSI...

Dettagli

L ambiente di sviluppo Android Studio

L ambiente di sviluppo Android Studio L ambiente di sviluppo Android Studio Android Studio è un ambiente di sviluppo integrato (IDE, Integrated Development Environment) per la programmazione di app con Android. È un alternativa all utilizzo

Dettagli

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google Android development Sviluppo di Mobile Apps sul sistema operativo di Google Agenda Giorni: Gio 14/04/2011 Ven 15/04/2011 Gio 21/04/2011 Ven 22/04/2011 Suddivisione: Mattina: teoria Pomeriggio: pratica

Dettagli

Sistemi Mobili e Wireless Android Primi passi

Sistemi Mobili e Wireless Android Primi passi Sistemi Mobili e Wireless Android Primi passi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Ambiente di sviluppo L'ambiente

Dettagli

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari Android Android A. Ferrari Android è un sistema opera8vo per disposi8vi mobili. Inizialmente sviluppato da Startup Android Inc. acquisita poi nel 2005 da Google Inc. Il cuore di Android è un kernel Linux.

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Android. Anatomia di una applicazione

Android. Anatomia di una applicazione Android Anatomia di una applicazione Elementi di base Gli elementi di base per costruire una applicazione Android sono cinque: Activity Intent Broadcast Receiver Service Content Provider 2 Activity (1/3)

Dettagli

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...)

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...) Android world Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...) Contiene un Sistema Operativo, software middleware e applicazioni varie Sviluppato da Open Handset Alliance,

Dettagli

Un Sistema Location-based per la mappatura degli Access Point

Un Sistema Location-based per la mappatura degli Access Point 1 Un Sistema Location-based per la mappatura degli Access Point Pasquale Cautela pasquale.cautela@studio.unibo.it Marco Peca marco.peca@studio.unibo.it Rosario Salpietro rosario.salpietro@studio.unibo.it

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Sviluppo Software Autore: Sergio Gandola Revisione: 2 Data: 07/06/13 Titolo: Documentazione Tecnica Diario File:Documentazione Tecnica.pdf Sito: http://inno-school.netsons.org/

Dettagli

Un applicazione per il trasferimento file in ambiente Symbian

Un applicazione per il trasferimento file in ambiente Symbian tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Paolo Ascione candidato Barbara Migliaccio Matr. 534/1026 Scenario Applicativo File Transfer via Bluetooth

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

LUCA VACCARO. Politecnico di Milano. S2MS Guida di Riferimento

LUCA VACCARO. Politecnico di Milano. S2MS Guida di Riferimento LUCA VACCARO Politecnico di Milano S2MS Guida di Riferimento L U C A V A C C A R O S2MS Guida di Riferimento Software sviluppato da Luca Vaccaro luck87@gmail.com Progetto del corso Internetworking TCP/IP

Dettagli

INTRODUZIONE ALLE PIATTAFORME

INTRODUZIONE ALLE PIATTAFORME INTRODUZIONE ALLE PIATTAFORME Android ios Windows Phone 8 Android 2 Cos è Android? Un moderno open-source sistema operativo Componenti: Linux kernel Java Core applications 3 Perché è stato un successo

Dettagli

A.1 Congurazione dell'ambiente di sviluppo

A.1 Congurazione dell'ambiente di sviluppo Appendice A Hardware e Software A.1 Congurazione dell'ambiente di sviluppo Per ottenere una piattaforma di sviluppo che funzioni in maniera adeguata è necessario eseguire l'installazione di diversi tool

Dettagli

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY 1 Sommario 1. INTRODUZIONE... 3 2. GET METAIO... 4 2.1. PREREQUISITI... 4 2.2. INTALLAZIONE... 4 2.3. PROGETTI ESEMPLIFICATIVI... 4 3. USARE

Dettagli

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente INTRODUZIONE Per sviluppare applicazioni in grado di girare su sistemi Android servono tre cose: il Java JDK (Java Development Kit), che contiene tutti gli strumenti necessari a sviluppare nel linguaggio

Dettagli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Corsi ANDROID 2013/2014 Benvenuti nel mondo dinamico dello sviluppo di applicazioni per smartphone e tablet Android Corsi ANDROID 2013/2014 L

Dettagli

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy.

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. 10 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com

Dettagli

Il linguaggio C# Eventi ed eccezioni

Il linguaggio C# Eventi ed eccezioni Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

Dettagli

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android Università degli Studi di Napoli Federico II FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM Progetto di un applicazione Android Briscola bluetooth Candidati: Giuliano Formato Daniele

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica Corso di Laurea in Matematica Seminario C/C++ Costa Università degli Studi di Milano Dipartimento di Matematica 19 Ottobre 2011 Cos'é un'ide IDE = Integrated Development Environment Consiste in: Editor

Dettagli

Programmazione Android

Programmazione Android Programmazione Android Giovanni Perbellini, Stefano Cordibella Università di Verona EDALab S.r.l. Agenda Introduzione Android Overview Ambiente di sviluppo Esempi Helloworld Weather 2 1 Cos è Android?

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Guida all'amministrazione. BlackBerry Professional Software per Microsoft Exchange. Versione: 4.1 Service Pack: 4

Guida all'amministrazione. BlackBerry Professional Software per Microsoft Exchange. Versione: 4.1 Service Pack: 4 BlackBerry Professional Software per Microsoft Exchange Versione: 4.1 Service Pack: 4 SWD-313211-0911044452-004 Indice 1 Gestione degli account utente... 7 Aggiunta di un account utente... 7 Aggiunta manuale

Dettagli

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010 Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012 Introduzione a Visual Studio 2005/2008/2010 1 Outline Solution e Project Visual Studio e linguaggio C Visual Studio schermata principale

Dettagli

Progetto per un Sistema di Video/Audio Sorveglianza Remota RemoteGuard

Progetto per un Sistema di Video/Audio Sorveglianza Remota RemoteGuard La Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno Accedemico 2008-2009 Corso di Progetto di Reti di Calcolatori e Sistemi Informatici Prof. Stefano Millozzi

Dettagli

Concurrent and Distributed Programming - Assigned Project - Document Version 1.3

Concurrent and Distributed Programming - Assigned Project - Document Version 1.3 Concurrent and Distributed Programming - Assigned Project - Document Version 1.3 Lecturer: Mauro Conti, PhD - conti@math.unipd.it Teaching Assistant: Eyüp Serdar Canlar - canlar@math.unipd.it Academic

Dettagli

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software Draft versione 1.1 Categorie di Progetti di Ingegneria del Software Tutti i temi Progettuali proposti rientrano in una delle seguenti categorie. 1. Temi sull'elaborazione di Dati Multimediali Temi su Audio,

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

Dettagli

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da:

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da: Un thread (o processo leggero) è una attività, descritta da una sequenza di istruzioni, che esegue all'interno del contesto di esecuzione di un programma. Un thread procede nella sua esecuzione per portare

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2. Basi Android 1 Android Cosa è Android? Android è un insieme di strumen8 e librerie per sviluppare applicazioni mobili è più di un SO Android si definisce open Con8ene tecnologie open source Linux Il codice

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.0911 Pag.1 di 8 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Manuale Utente CryptoClient

Manuale Utente CryptoClient Codice Documento: CERTMOB1.TT.DPMU12005.01 Firma Sicura Mobile Telecom Italia Trust Technologies S.r.l. - Documento Pubblico Tutti i diritti riservati Indice degli argomenti... 1 Firma Sicura Mobile...

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Intel Server Management Pack per Windows

Intel Server Management Pack per Windows Intel Server Management Pack per Windows Manuale dell'utente Revisione 1.0 Dichiarazioni legali LE INFORMAZIONI CONTENUTE IN QUESTO DOCUMENTO SONO FORNITE IN ABBINAMENTO AI PRODOTTI INTEL ALLO SCOPO DI

Dettagli

Corso di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28

Corso di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28 Corso di Elettronica dei Sistemi Programmabili Sistemi Operativi Real Time Introduzione Aprile 2014 Stefano Salvatori 1/28 Sommario Definizioni livelli di astrazione processi di tipo batch e processi interattivi

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4 Introduzione Salve a tuttiù Mi presento mi chiamo Vincenzo Acinapura e studio ingegneria informatica,

Dettagli

GEODROP APPLICATIONS. Developer. Public. Private. Reseller

GEODROP APPLICATIONS. Developer. Public. Private. Reseller GEODROP APPLICATIONS Public Developer Reseller Private Le Applicazioni di Geodrop Guida per Developer alle Applicazioni Guida alle applicazioni v1.1-it, 21 Dicembre 2012 Indice Indice...2 Cronologia delle

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

maildocpro Manuale Installazione

maildocpro Manuale Installazione maildocpro Manuale Installazione versione 3.4 maildocpro Manuale Installazione - Versione 3.4 1 Indice Indice... 2 Creazione database... 3 Database: MAILDOCPRO... 3 Database: SILOGONWEB... 5 Configurazione

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.1009 Pag.1 di 10 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Sviluppo su Android. Linux Day Torino 2010

Sviluppo su Android. Linux Day Torino 2010 Sviluppo su Android Linux Day Torino 2010 Francesco Ronchi francesco.ronchi@gmail.com - www.synesthesia.it Cos'è Android Sistema operativo dedicato ai device mobili: cellulari, palmari, tablet, navigatori...

Dettagli

Sommario della lezione

Sommario della lezione Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 2 LEZIONE STRUTTURE DEI SISTEMI OPERATIVI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

Dettagli

DeeControl Manuale dell'utente

DeeControl Manuale dell'utente Impostazione, manutenzione e funzionalità del software di taglio DeeControl DeeControl Manuale dell'utente Versione 1.1 - 2 - Contenuto Introduzione... - 4 - Requisiti minimi... - 4 - Installazione...

Dettagli

SISTEMA DI MONITORAGGIO AMBIENTALE TRAMITE WSN

SISTEMA DI MONITORAGGIO AMBIENTALE TRAMITE WSN Università degli Studi di Pavia Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SISTEMA DI MONITORAGGIO AMBIENTALE TRAMITE WSN Relatore: Prof. Paolo Ettore Gamba Correlatore:

Dettagli

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

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Sistema informativo per la gestione dei processi

Dettagli

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009 Sistemi Operativi Processi in Linux Igino Corona igino.corona@diee.unica.it 20 Ottobre 2009 Contenuti della lezione Come funzionano i programmi in Linux? Schema base di esecuzione di un programma Modalità

Dettagli

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione UNIVERSITA DEGLI STUDI DI FERRARA Corso di Laurea in informatica Anno Accademico 2011-2012 Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione Relatore:

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo tesi di laurea Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Catello di

Dettagli

Getting started. Creare una semplice applicazione in protocollo Siemens MPI

Getting started. Creare una semplice applicazione in protocollo Siemens MPI Getting started Creare una semplice applicazione in protocollo Siemens MPI Revisioni del documento Data Edizione Commenti 24/11/2009 1.0-28/10/2010 2.0 - Sielco Sistemi srl via Roma, 24 I-22070 Guanzate

Dettagli

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO PROGRAMMA algoritmi, linguaggi di programmazione, traduttori, sistemi operativi e reti. Sistemi operativi

Dettagli

Introduzione a Visual Studio 2005

Introduzione a Visual Studio 2005 Fondamenti di Informatica e Laboratorio T-AB Ingengeria Elettronica e Telecomunicazioni a.a. 2008/2009 Introduzione a Visual Studio 2005 Outline Solutions e Projects Visual Studio e il linguaggio C Visual

Dettagli

Informatica di base. Lucio Bianchi. 2 aprile 2011. Lezione 3

Informatica di base. Lucio Bianchi. 2 aprile 2011. Lezione 3 Informatica di base Lezione 3 Lucio Bianchi 2 aprile 2011 1 Sommario Indice 1 Primi passi con Ubuntu 1 1.1 Il LiveCD............................... 1 1.2 Esplorare il desktop......................... 3

Dettagli

Telematica II 5. Esercitazione/Laboratorio 1

Telematica II 5. Esercitazione/Laboratorio 1 IDE Ambiente di sviluppo IDE - Integrated Development Environment Telematica II 5. Esercitazione/Laboratorio 1 e un Ambiente di Sviluppo Integrato che consente di creare in modo semplice progetti composti

Dettagli

Strumenti per il testing di applicazioni in ambiente Android

Strumenti per il testing di applicazioni in ambiente Android tesi di laurea Strumenti per il testing di applicazioni in ambiente Android Anno Accademico 2010\2011 relatore Ch.mo prof. Marcello Cinque candidato Nome Domenico Paone Matr. 534\003571 Android Testing

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Titolo: È gradita una competenza base in Matlab. Conoscenze linguistiche: padronanza della lingua inglese

Titolo: È gradita una competenza base in Matlab. Conoscenze linguistiche: padronanza della lingua inglese Titolo: Studio e sviluppo di applicazioni innovative basate su tecnologia di sensori indossabili Descrizione: Le body sensor networks (BSN) sono costituite da piccoli dispositivi che posti sul corpo umano

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Getting started. Creare una semplice applicazione in protocollo Omron SYSMAC

Getting started. Creare una semplice applicazione in protocollo Omron SYSMAC Getting started Creare una semplice applicazione in protocollo Omron SYSMAC Revisioni del documento Data Edizione Commenti 24/04/2006 1.0 - Sielco Sistemi srl via Roma, 24 I-22070 Guanzate (CO) http://www.sielcosistemi.com

Dettagli

Silence Please! Gestore di profili audio per smartphone Android utilizzante geolocalizzazione GPS. Carmine Benedetto Luca Laudadio

Silence Please! Gestore di profili audio per smartphone Android utilizzante geolocalizzazione GPS. Carmine Benedetto Luca Laudadio Silence Please! Gestore di profili audio per smartphone Android utilizzante geolocalizzazione GPS Carmine Benedetto Luca Laudadio Silence Please! - Descrizione Generale Silence Please! è un'applicazione

Dettagli

APPLICAZIONE COMPACTRIO DI RIFERIMENTO PER UN DATALOGGER A BORDO VEICOLO BASATO SU TIPS & TECHNIQUES

APPLICAZIONE COMPACTRIO DI RIFERIMENTO PER UN DATALOGGER A BORDO VEICOLO BASATO SU TIPS & TECHNIQUES APPLICAZIONE DI RIFERIMENTO PER UN DATALOGGER A BORDO VEICOLO BASATO SU COMPACTRIO Ryan King Q uesta applicazione presenta una soluzione software per un datalogger embedded stand-alone basato su hardware

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE IDROID 86 LAB pagg 12-13 23-04-2007 14:57 Pagina 12 I-D01 LAB UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE PROGRAMMAZIONE Alcuni comportamenti predefiniti attivabili su I-Droid01 sono facilmente riproducibili

Dettagli

Symantec Backup Exec 12.5 for Windows Servers. Guida rapida all'installazione

Symantec Backup Exec 12.5 for Windows Servers. Guida rapida all'installazione Symantec Backup Exec 12.5 for Windows Servers Guida rapida all'installazione 13897290 Installazione di Backup Exec Il documento contiene i seguenti argomenti: Requisiti di sistema Prima dell'installazione

Dettagli

Corso di programmazione di sistemi mobile 1. Android. Google Cloud Messaging

Corso di programmazione di sistemi mobile 1. Android. Google Cloud Messaging Corso di programmazione di sistemi mobile 1 Android Google Cloud Messaging Corso di programmazione di sistemi mobile 2 Cos è Il Google Cloud Messaging o GCM è un servizio di Google che permette di inviare

Dettagli

Lezione 1 Primi passi con Android

Lezione 1 Primi passi con Android A cura di Carlo Pelliccia Meno di tre anni fa Google ha rilasciato una versione preliminare del kit di sviluppo di Android, il suo nuovo sistema operativo dedicato agli smartphone. Futurologi e semplici

Dettagli

Applicazione: Piattaforma di Comunicazione Unificata

Applicazione: Piattaforma di Comunicazione Unificata Riusabilità del software - Catalogo delle applicazioni: Amministrativi/Contabile Applicazione: Piattaforma di Comunicazione Unificata Amministrazione: Regione Piemonte - Direzione Innovazione, Ricerca

Dettagli

Sistemi Mobili e Wireless Android - Servizi

Sistemi Mobili e Wireless Android - Servizi Sistemi Mobili e Wireless Android - Servizi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Servizi Un servizio è un componente

Dettagli

Backup Exec 2012. Guida rapida all'installazione

Backup Exec 2012. Guida rapida all'installazione Backup Exec 2012 Guida rapida all'installazione Installazione Il documento contiene i seguenti argomenti: Requisiti di sistema Elenco di controllo pre-installazione di Backup Exec Esecuzione di un'installazione

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Realizzazione di un sistema di logging prototipale per la piattaforma

Realizzazione di un sistema di logging prototipale per la piattaforma tesi di laurea Realizzazione di un sistema di logging prototipale per la piattaforma Android Anno Accademico 2011 / 2012 relatore Ch.mo prof. Marcello Cinque candidato Dario De Meis Matr. 528 / 741 Smartphone

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Progetto e sviluppo di una Applicazione Android per l accesso a reti di sensori senza filo

Progetto e sviluppo di una Applicazione Android per l accesso a reti di sensori senza filo tesi di laurea Progetto e sviluppo di una Applicazione Android per l accesso a reti di sensori Anno Accademico 2009 2010 relatore Ch.mo prof. Marcello Cinque candidato Nicola Lubrano Matr. 534/1397 Contesto

Dettagli

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java APPENDICE Appendice Strumenti per lo sviluppo dei programmi Java Per imparare a programmare non è sufficiente leggere gli esempi del testo, ma è necessario scrivere ed eseguire realmente i programmi. Tutti

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

GUIDA DI INSTALLAZIONE DEL SOFTWARE... 3 SISTEMA MULTIFUNZIONALE DIGITALE INFORMAZIONI SUL SOFTWARE... 2 PRIMA DELL'INSTALLAZIONE...

GUIDA DI INSTALLAZIONE DEL SOFTWARE... 3 SISTEMA MULTIFUNZIONALE DIGITALE INFORMAZIONI SUL SOFTWARE... 2 PRIMA DELL'INSTALLAZIONE... GUIDA DI INSTALLAZIONE DEL SOFTWARE SISTEMA MULTIFUNZIONALE DIGITALE Pagina INTRODUZIONE... Copertina interna INFORMAZIONI SUL SOFTWARE... PRIMA DELL'INSTALLAZIONE... INSTALLAZIONE DEL SOFTWARE... COLLEGAMENTO

Dettagli

MODULO TECNOALARM MANUALE UTENTE COD. KNX-TALM VERSIONE 2.0.6 PER LA GESTIONE INTEGRATA DI CENTRALI ANTIFURTO IN KONNEXION

MODULO TECNOALARM MANUALE UTENTE COD. KNX-TALM VERSIONE 2.0.6 PER LA GESTIONE INTEGRATA DI CENTRALI ANTIFURTO IN KONNEXION MODULO TECNOALARM PER LA GESTIONE INTEGRATA DI CENTRALI ANTIFURTO IN KONNEXION MANUALE UTENTE COD. KNX-TALM VERSIONE 2.0.6 1 INSTALLAZIONE 1.1 REQUISITI Il modulo abilita il controller di supervisione

Dettagli