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

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

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

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

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

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

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. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

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

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

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

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

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

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

1 2 Fase di autenticazione utente

1 2 Fase di autenticazione utente DInG my Dates di Andrea Dignani DinG my Dates è una applicazione di tipo Reminder, ovvero una app in grado di segnalare in un determinato istante di tempo all' utente un certo avvenimento/evento accaduto

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

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

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

STELLA SUITE Manuale d'uso

STELLA SUITE Manuale d'uso STELLA SUITE Manuale d'uso Stella Suite Manuale d'uso v. 1.2014 INDICE Sezione Pagina 1. Introduzione a Stella Suite Componenti Requisiti sistema Panorama della schermata iniziale 2. Installazione di Stella

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

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

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

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

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

License Service Manuale Tecnico

License Service Manuale Tecnico Manuale Tecnico Sommario 1. BIM Services Console...3 1.1. BIM Services Console: Menu e pulsanti di configurazione...3 1.2. Menù Azioni...4 1.3. Configurazione...4 1.4. Toolbar pulsanti...5 2. Installazione

Dettagli

2. I THREAD. 2.1 Introduzione

2. I THREAD. 2.1 Introduzione 2. I THREAD 2.1 Introduzione Il tipo di parallelismo che è opportuno avere a disposizione nelle applicazioni varia in base al grado di cooperazione necessaria tra le diverse attività svolte in parallelo:

Dettagli

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012 Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici

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

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

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

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Pagina 1 di 10 Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Nel corso della lezione precedente abbiamo analizzato le caratteristiche dell'architettura CGI.

Dettagli

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

Getting started. Creare una applicazione con supporto Web Server

Getting started. Creare una applicazione con supporto Web Server Getting started Creare una applicazione con supporto Web Server Revisioni del documento Data Edizione Commenti 10/03/2010 1.0 - Sielco Sistemi srl via Roma, 24 I-22070 Guanzate (CO) http://www.sielcosistemi.com

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

Manuale EacqCE. Versione manuale 3.0.2. Copyright 2011 MMS Srl. Manuale EacqCE Pagina 1

Manuale EacqCE. Versione manuale 3.0.2. Copyright 2011 MMS Srl. Manuale EacqCE Pagina 1 Manuale EacqCE Versione manuale 3.0.2 Copyright 2011 MMS Srl Manuale EacqCE Pagina 1 Sommario Sommario... 2 Informazioni generali... 3 Introduzione... 3 Installazione del programma... 4 Primo avvio del

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

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

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

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

Aggiornamento, backup e ripristino del software

Aggiornamento, backup e ripristino del software Aggiornamento, backup e ripristino del software Guida per l utente Copyright 2007 Hewlett-Packard Development Company, L.P. Windows è un marchio registrato negli Stati Uniti di Microsoft Corporation. Le

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

Si precisa in ogni caso che questa guida rapida non esime dalla lettura del Manuale utente presente nell ambiente del Servizio Telematico Doganale.

Si precisa in ogni caso che questa guida rapida non esime dalla lettura del Manuale utente presente nell ambiente del Servizio Telematico Doganale. GUIDA RAPIDA versione 25 febbraio 2010 SERVIIZIIO TELEMATIICO DOGANALE Avvertenze: Questa guida vuole costituire un piccolo aiuto per gli operatori che hanno già presentato richiesta di adesione al servizio

Dettagli

USER GUIDE. Manuale operativo per l utilizzo dell applicativo per il monitoraggio remoto Aditech Life REV 1

USER GUIDE. Manuale operativo per l utilizzo dell applicativo per il monitoraggio remoto Aditech Life REV 1 USER GUIDE Manuale operativo per l utilizzo dell applicativo per il monitoraggio remoto Aditech Life REV 1 SOMMARIO Introduzione... 3 Sensore BioHarness... 3 OVERVIEW BIOHARNESS 3.0 BT/ECHO... 4 OVERVIEW

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

Installazione del Software. per lo Sviluppo di Applicazioni Java

Installazione del Software. per lo Sviluppo di Applicazioni Java Installazione del Software per lo Sviluppo di Applicazioni Java Ing. Luca Ferrari ferrari.luca@unimore.it Tel. 0592056142 Installazione del Software per lo Sviluppo di Applicazioni Java 1 Il Compilatore

Dettagli

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438 tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438 Obbiettivi del progetto: Sviluppo di un applicazione Flex in AdobeFlashBuilder

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

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java La Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno Accedemico 2008-2009 Relazione finale su progetto interno Realizzazione di un applicazione per la visualizzazione

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

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

Installazione di IBM SPSS Modeler 14.2 Client (utente singolo)

Installazione di IBM SPSS Modeler 14.2 Client (utente singolo) Installazione di IBM SPSS Modeler 14.2 Client (utente singolo) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Client versione 14.2 con licenza per utente singolo. Una licenza

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

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

Progetto di Domotica

Progetto di Domotica Progetto di Domotica Titolo dell esercitazione: Progetto di Domotica Descrizione sommaria dell esperienza: Realizzazione di un circuito che permette il controllo di vari sensori all interno di un edificio.

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

Progetto Febbraio 2013 - Appello 1: Diffusione di tweets sul grafo di Twitter

Progetto Febbraio 2013 - Appello 1: Diffusione di tweets sul grafo di Twitter UNIVERSITÀ DEGLI STUDI DI MILANO, DIPARTIMENTO DI INFORMATICA LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE CORSO DI RETI DI CALCOLATORI ANNO ACCADEMICO 2011/2012 Progetto Febbraio 2013 - Appello 1: Diffusione

Dettagli

Blue s One CTI Enterpris Blue s Attendant Pro/Enterprise SDK - plugin creating tools

Blue s One CTI Enterpris Blue s Attendant Pro/Enterprise SDK - plugin creating tools Blue s One CTI Enterpris Blue s Attendant Pro/Enterprise SDK - plugin creating tools rel. 1.2 ITA 01-06-2012 Introduzione alla creazione del plug-in Questo documento ha lo scopo di illustrare come creare

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni, persistenza, distribuzione oggetti (location

Dettagli

APP SECURKEYPAD ANDROID. ----------------------- Manuale Edizione 1.0

APP SECURKEYPAD ANDROID. ----------------------- Manuale Edizione 1.0 APP SECURKEYPAD ANDROID ----------------------- Manuale Edizione 1.0 Securforce Srl email : info@securforce.com web : www.securforce.com Rev. 1.0 del 01/06/2014 Ver. firmware 6.XX Manuale installatore

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Display. Guida all Uso

Display. Guida all Uso Display Installazione Guida all Uso Scaricare l ospite (Insegnante) DisplayNote richiede un piccolo programma in esecuzione sul computer che ospita le connessioni per i dispositivi partecipanti, scaricarlo

Dettagli

Relazione Progetto. Restaurant Manager. Corso: Programmazione ad oggetti Anno scolastico 2014/2015. Sara Sintoni Matteo Venditto

Relazione Progetto. Restaurant Manager. Corso: Programmazione ad oggetti Anno scolastico 2014/2015. Sara Sintoni Matteo Venditto Relazione Progetto Restaurant Manager Corso: Programmazione ad oggetti Anno scolastico 2014/2015 Autori: Daniele Rosetti Sara Sintoni Matteo Venditto Indice 1. Analisi 3 1.1 Requisiti... 3 1.2 Problema...

Dettagli

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

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

Guida all Utilizzo del Posto Operatore su PC

Guida all Utilizzo del Posto Operatore su PC Guida all Utilizzo del Posto Operatore su PC 1 Introduzione Indice Accesso all applicazione 3 Installazione di Vodafone Applicazione Centralino 3 Utilizzo dell Applicazione Centralino con accessi ad internet

Dettagli

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind() Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

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

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: srotabul@dais.unive.it Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html

Dettagli

Guida introduttiva di F-Secure PSB

Guida introduttiva di F-Secure PSB Guida introduttiva di F-Secure PSB Guida introduttiva di F-Secure PSB Indice generale 3 Sommario Capitolo 1: Introduzione...5 Capitolo 2: Guida introduttiva...7 Creazione di un nuovo account...8 Come

Dettagli

Junos Pulse per BlackBerry

Junos Pulse per BlackBerry Junos Pulse per BlackBerry Guida utente Versione 4.0 Giugno 2012 R1 Copyright 2012, Juniper Networks, Inc. Juniper Networks, Junos, Steel-Belted Radius, NetScreen e ScreenOS sono marchi registrati di Juniper

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

MANUALE UTENTE STXM READER

MANUALE UTENTE STXM READER MANUALE UTENTE STXM READER Software di comunicazione con Concentratori per Telelettura di contatori M-Bus. Manuale Utente STxM Rev.0 Pag. 1 /18 SOMMARIO PRESENTAZIONE... 3 REQUISITI MINIMI DEL SISTEMA...

Dettagli

Guida Utente PS Contact Manager GUIDA UTENTE

Guida Utente PS Contact Manager GUIDA UTENTE GUIDA UTENTE Installazione...2 Prima esecuzione...5 Login...7 Registrazione del programma...8 Inserimento clienti...9 Gestione contatti...11 Agenti...15 Archivi di base...16 Installazione in rete...16

Dettagli