Introduzione a Java 2 Micro Edition. Francesca Martelli Stanza: 382 DB Tel:

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione a Java 2 Micro Edition. Francesca Martelli Stanza: 382 DB Tel:"

Transcript

1 Introduzione a Java 2 Micro Edition Francesca Martelli f.martel@di.unipi.it Stanza: 382 DB Tel:

2 Cosa sappiamo e cosa faremo Conoscenza di java? Conoscenza di HTML? Java 2 MicroEdition Introduzione alla programmazione J2ME J2ME Wireless Toolkit Il linguaggio XHTML

3 Cosa Serve (1) Documentazione J2ME MIDP 2.0, CLDC Qualsiasi tutorial che trovate su internet Queste slide che troverete sulla mia home page Libri (opzionali): James Keogh, J2ME: The Complete Reference, McGraw-Hill Roger Riggs, Antero Taivalsaari, Jim Van Peursem, Jyri Huopaniemi, Mark Patel, Aleksi Uotila, Programming Wireless Devices with the Java 2 Platform, Micro Edition, Second Edition, Addison Wesley

4 L Architettura Java Compilatore Java: trasforma il linguaggio di programmazione Java in un insieme di bytecode Java Java Virtual Machine (JVM): interpreta il bytecodes Java per eseguire il programma Java Vantaggi di Java: Portabilità: write once, run anywhere Sicurezza: scaricando applicazioni da un ambiente potenzialmente inaffidabile, le chiamate di sistema vengono controllate dalla Java Native Interface (JNI) la possibilità di sfruttare le applicazioni in locale, residenti e funzionanti anche off-line l'interfacciamento con le piattaforme web che lavorano con JAVA (Servlet o JSP) è immediato

5 Le versioni di Java

6 Java 2 Java 1.2 diventa semplicemente Java 2, sebbene le versioni di JDK e JRE rimangono 1.2. La piattaforma Java viene divisa in 3 edizioni: Java 2 Standard Edition (J2SE): per lo sviluppo di applicazioni convenzionali da desktop Java 2 Enterprise Edition (J2EE): sovrainsieme di J2SE, rivolto alla programmazione di impresa, con particolare enfasi sullo sviluppo dal lato server, tramite l uso di Enterprise JavaBeans, applicazioni web (servlets e JavaServer Pages), CORBA, e XML Java 2 Micro Edition (J2ME): sottoinsieme di J2SE, orientato ai dispositivi portatili che non possono supportare un implementazione totale di J2SE Nonostante la sovrapposizione fra le tre versioni, questa divisione rende possibile l evolvere di Java in differenti direzioni per soddisfare differenti esigenze, mantenendo intatto lo spirito del linguaggio

7 Java 2 Micro Edition La mancanza di uniformità delle configurazioni hardware fra i vari piccoli dispositivi ha posto una grossa sfida per la comunità Java J2ME è nato proprio per superare questo limite, ed è uno standard che serve molti dispositivi a capacità limitate, come i telefoni cellulari, i personal digital assistant (PDA) e i dispositivi plug-in, che hanno diverse configurazioni hardware non standard La Java Community Process ha usato un duplice approccio: La definizione di due CONFIGURAZIONI: Una per i dispositivi portatili Una per i dispositivi plug-in La definizione di PROFILI, per ogni categoria di dispositivo

8 Configurazioni Una configurazione definisce l ambiente base di esecuzione: Limitata JVM Nucleo di classi derivate da J2SE Il punto chiave è che ogni configurazione è specifica per una famiglia di dispositivi con capacità simili Ad oggi, sono definite due configurazioni, entrambe che prevedono connettività alla rete, che sia fissa o wireless: Connected Device Configuration (CDC): box TV, sistemi di navigazione per auto,... Connected Limited Device Configuration (CLDC): cellulari, PDA Non c è una netta linea di confine fra le due configurazioni: CDC è un sovrainsieme del CLDC, con in più alcune classi di J2SE e altre nuove Noi ci concentreremo sul CLDC

9 Profili Un profilo estende una configurazione, aggiungendo classi per specifici usi dei dispositivi, omesse nella configurazione di base (per esempio, classi per l interfaccia utente) Il Mobile Information Device Profile (MIDP) è basato su CLDC Classi per la memorizzazione locale, una user interface, funzionalità per il networking

10 Altri profili sono: Profili (2) Personal Digital Assistant Profile (PDAP): estende CLDC per sfruttare le maggiori capacità dei PDA rispetto ai semplici dispositivi MIDP, come migliori display e maggiore memoria Foundation Profile: aggiunge classi J2SE al CDC, ma non quelle per l interfaccia utente; è la base (foundation) per costruire altri profili Personal Profile (con configurazione CDC): ridefinisce PersonalJava come profilo J2ME; estende il Foundation Profile per implementare una user interface sofisticata, capace di mostrare finestre multiple Personal Basis Profile: simile al Personal Profile (con configurazione CDC e Foundation Profile), ma implementa user interface più semplice Game Profile (con configurazione CDC): contiene le classi specifiche per sviluppare giochi RMI Profile (con configurazione CDC): aggiunge supporto RMI alle classi del Foundation Profile & J2ME è in evoluzione& In una stessa configurazione possono coesistere più profili

11 Connected Limited Device Configuration Per capire MIDP bisogna prima conoscere la configurazione CLDC 1.1, definita nel JSR-139 dalla JCP Per dispositivi things that you hold in your hand, caratterizzati da connettività wireless, banda ridotta, accesso discontinuo, batterie limitate e bassa potenza di calcolo e memoria Da 128KB a 512KB di memoria non-volatile (codice) 32KB di memoria volatile (runtime) Processori a 16-bit (o 32-bit) Possono non avere interfaccia utente I dispositivi CLDC usano la KJava Virtual Machine (KVM), versione molto ridotta della JVM

12 CLDC: Requisiti (1) No floating point: tipi e costanti floating-point, le classi di J2SE che trattano con valori floating-point non sono supportati (computazione pesante); i metodi che ritornano valori floatingpoint sono rimossi; con opportune librerie è possibile utilizzare il calcolo in virgola mobile No object finalization: il metodo finalize è rimosso da java.lang.object, per semplificare il compito del garbage collector, che semplicemente recupera tutti gli oggetti non referenziati (così si evita il risorgere degli oggetti); Errori a runtime: eccezioni sottoclassi di java.lang.error lanciate dalla virtual machine. Solo 3 classi di errori: java.lang.error, java.lang.outofmemoryerror, java.lang.virtualmachineerror Ogni altra situazione di errore è trattata in modo dipendente dall implementazione della KVM, tipicamente la terminazione

13 CLDC: Requisiti (2) Interfaccia Nativa Java (JNI) non supportata: non è possibile chiamare funzioni native del sistema operativo ospitante per effettuare operazioni No reflection: non si possono usare le classi Reflection per ottenere informazioni sulla JVM in esecuzione No object serialization No gruppi di thread: la VM non supporta la classe ThreadGroup quindi non si possono lanciare (o fermare) più thread in un solo colpo Le classi ereditate da J2SE devono essere un sottoinsieme delle classi di J2SE 1.3. I metodi possono essere omessi, ma nessun nuovo metodo public può essere aggiunto, per ovvie ragioni di compatibilità Le classi definite dal CLDC e i suoi profili stanno nel package o nei sottopackage di javax.microedition, per identificare facilmente le specifiche classi del CLDC Supporto minimo per internazionalizzazioni: il CLDC fornisce un supporto di base per convertire le codifiche dei caratteri da/per Unicode. Tuttavia, non ha capacità di localizzazione, per la visualizzazione di data, ora, valuta, ecc.

14 Connected Device Configuration Per dispositivi things that you plug into a wall, cioè collegati in rete, possibilmente always on, ad alta banda e con buona potenza di calcolo e memoria I dispositivi CDC usano un architettura a 32-bit, Hanno almeno 2MB di memoria disponibile Implementano la JVM di J2SE con tutte le sue funzionalità, incluso il debugging a basso livello e le interfacce native, o meglio, una nuova virtual machine chiamata Compact VM, sviluppata appositamente Dispositivi CDC: Box TV digitali Apparecchi per la domotica Sistemi di navigazione Terminali del pagamento fai-da-te &

15 Struttura a livelli dell Architettura J2ME OEM apps OEM classes MIDP J2ME APIs Configurazione Java Virtual Machine Sistema operativo Livello Configurazione: la JVM interagisce con il sistema operativo; lo strato configurazione gestisce le interazioni tra il profilo e la JVM

16 Struttura a livelli dell Architettura J2ME OEM apps OEM classes MIDP J2ME APIs Configurazione Java Virtual Machine Livello Profilo: insieme minimo di APIs Sistema operativo

17 Struttura a livelli dell Architettura J2ME OEM apps OEM classes MIDP J2ME APIs Configurazione Java Virtual Machine Sistema operativo Livello MIDP: APIs per le connessioni di rete, memorizzazione e interfaccia utente Interazione con l utente tramite la visualizzazione di comandi, sostanzialmente di tre tipi: Richiesta di elaborazione Richiesta di connessione alla rete Visualizzazione di un altra schermata

18 Struttura a livelli dell Architettura J2ME OEM apps OEM classes MIDP J2ME APIs Configurazione Java Virtual Machine Sistema operativo Applicazioni e classi original equipment manufacturer (OEM): Le classi sono usate da MIDP per usi specifici del dispositivo (spedire/ricevere un messaggio), o accedere a dati Le applicazioni sono programmi forniti dal produttore, come un address book

19 Le applicazioni per MIDP " Sono dette MIDlet e devo essere realizzate per funzionare su qualsiasi dispositivo senza alcuna modifica " Ciò è particolarmente difficile soprattutto per le interfacce utente " I dispositivi hanno schermi di varie dimensioni, a toni di grigio ed a colori " Inoltre i dispositivi di input sono molteplici: tastiere numeriche ed alfa-numeriche, soft key, mini joystick ed anche touch screen

20 Applicazioni multi-device " Data la grande varietà di dispositivi, ci sono due modi per creare applicazioni multi-device astrazione: specificare una UI astratta, relegando alla MIDP di crearla in concreto (ad esempio invece di dire visualizza la parola 'Avanti' sullo schermo sopra il soft key, si dice dammi il comando 'Avanti' da qualche parte in questa UI scoperta: l'applicazione scopre le caratteristiche del dispositivo a run-time e adatta la UI al volo (per esempio si scoprono le dimensioni dello schermo e si scala l'applicazione)

21 Applicazioni multi-device (2) " L'API MIDP supporta entrambi i sistemi l'astrazione è il metodo preferito poiché permette di scrivere meno codice e delega tutto alla MIDP in alcuni casi (ad esempio i videogame) è invece necessario un approccio di tipo scoperta per conoscere con certezza le caratteristiche del dispositivo ed adattare il comportamento in modo adeguato " L'API MIDP è progettata in modo tale da permettere facilmente anche il mix di queste due tecniche nella stessa applicazione

22 MIDlet e MIDlet Suite (1) Comunemente, MIDlets correlate sono raggruppate in una MIDlet suite (package), e verranno considerate come un gruppo unico in fase di installazione/disinstallazione Vantaggio: i membri di una MIDlet suite condividono Le risorse dell ambiente ospitante Le classi Java istanziate La VM Svantaggio: condividere espone ad errori causati da accessi concorrenti nella lettura/scrittura dei dati Rischio ridotto dalle primitive di sincronizzazione per l accesso ai dati volatili e persistenti Se la MIDlet usa multi-threading, è responsabile per il coordinamento degli accessi ai dati

23 MIDlet e MIDlet Suite (2) I dati non possono essere condivisi tra MIDlets che non appartengono alla stessa MIDlet suite, perché il nome della MIDlet suite è usato per identificare i dati associati alla suite. Una MIDlet di una diversa MIDlet suite è considerata una sorgente non attendibile Una MIDlet suite è installata, eseguita e rimossa dall Application Manager (AM) che gira sul dispositivo, fornito dal produttore. L AM è responsabile degli accessi alle classi della JVM e CLDC da parte delle MIDlets. L AM inoltre mette il file Java ARchive (JAR) e il file Java Application Descriptor (JAD) a disposizione dei membri della MIDlet suite

24 JAD & JAR " Le MIDlet Suite sono distribuite dalla coppia di file JAD & JAR: JAD, Java Application Description: contiene tutte le informazioni che descrivono le applicazioni, i requisiti per l'installazione, le proprietà e gli eventuali parametri per l'esecuzione, permessi richiesti sulle API JAR, Java ARchive: contiene le classi dell'applicazione, le eventuali librerie di terze parti, risorse (file di testo, immagini, suoni, dati binari) necessari all'esecuzione dell'applicazione " La coppia è generata automaticamente dal tool di sviluppo

25 JAR File " Svolge lo stesso ruolo che ha in J2SE, con alcune differenze: deve contenere l'indispensabile per l'esecuzione dell'applicazione: il dispositivo potrebbe non essere in grado di salvare l'archivio e il costo di trasferimento potrebbe essere troppo oneroso non è possibile caricare classi e risorse da JAR file diverso da quello di avvio " Specificità dei dispositivi: i terminali possono avere una limitazione sulla dimensione massima del JAR (ad esempio: 64K) alcuni terminali richiedono esplicitamente che il file JAR sia compresso

26 JAR File Tutti i file necessari per implementare una MIDlet suite devono essere contenuti nell archivio JAR, e sono: Classi delle MIDlet Immagini grafiche (se richieste) Il file Manifesto Il Manifest file contiene una lista degli attributi e relative definizioni usate dall AMS per installare i file contenuti nel JAR nel dispositivo Gli attributi sono nove, di cui tre opzionali; non includere i sei obbligatori nel manifest file induce l application manager a interrompere l installazione del JAR file. Il manifest file è un semplice documento di testo con estensione.mf

27 Attributi del Manifest File Attributo MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-n MicroEdition-Profile MicroEdition-Configuration MIDlet-Icon MIDlet-Description MIDlet-Info-URL Descrizione Nome della MIDlet suite Numero di versione della MIDlet Nome del venditore della MIDlet Attributo per la MIDlet. I valori sono: nome della MIDlet, icona opzionale, e nome della classe MIDlet Identifica il profilo J2ME necessario per eseguire la MIDlet Identifica la configurazione J2ME necessaria per eseguire la MIDlet (Opzionale) Icona associata con la MIDlet, deve essere in formato PNG (Opzionale) Descrizione della MIDlet URL per maggiori informazioni sulla MIDlet

28 Esempio di Manifest File MIDlet-Name: Mia MIDlet MIDlet-Version: 2.0 MIDlet-Vendor: MiaSocietà MIDlet-1: MiaMIDlet, /images/miamidlet.png, Mia.MiaMIDlet MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.0 L ordine di comparsa degli attributi non è importante Ogni coppia deve terminare con un ritorno carrello

29 JAD File Contiene le informazioni sull'applicazione, mostrate all'utente prima che si proceda con il download e l'installazione del software Il JAD file fornisce all application manager maggiori informazioni sul contenuto del JAR file, per decidere se la MIDlet suite può essere implementata sul dispositivo (configurazione, profilo...) e se il bytecode proviene da un dominio autorizzato ad utilizzare certe funzionalità Può essere un modo per passare parametri a una MIDlet senza modificare il JAR file (il web service, ad esempio, potrebbe inserire dinamicamente delle informazioni nel JAD) Il JAD file è simile al manifest file come coppie attributo-valore Cinque attributi sono obbligatori: MIDlet-Name, MIDlet-Version, MIDlet-Vendor, MIDlet-n e MIDlet-Jar-URL

30 Attributi del JAD File Attributo MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-n MIDlet-Jar-URL MIDlet-Jar-Size MIDlet-Data-Size MIDlet-Description MIDlet-Delete-Confirm MIDlet-Install-Notify Descrizione Nome della MIDlet suite Numero di versione della MIDlet Nome del venditore della MIDlet Attributo per la MIDlet. I valori sono: nome della MIDlet, icona opzionale, e nome della classe MIDlet Locazione del JAR file (Opzionale) Dimensione del JAR file in bytes (Opzionale) Dimensione minima (in byte) per la memorizzazione dei dati persistenti (Opzionale) Descrizione della MIDlet (Opzionale) Richiesta di conferma di rimozione della MIDlet suite (Opzionale) Invia lo stato dell installazione a un dato URL

31 MIDlet-Version: Esempio file JAD MIDlet-Vendor: Francesca Martelli MIDlet-Jar-URL: MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 MIDlet-1: Demo1, /image/img1.png, it.unipi.di.fmartel.labjavame.helloworld MIDlet-Jar-Size: MIDlet-Name: HelloWorld " Attenzione! i valori degli attributi MIDlet-Name, MIDlet-Version e MIDlet-Vendor nel JAD file devono essere identici a quelli nel manifest. Se così non è, il JAR file non viene installato. Gli altri attributi, se diversi, verranno sovrascritti con i valori del descrittore l'indicazione della dimensione del file JAR deve essere esatta, altrimenti alcuni dispositivi non caricano l'archivio " E' consigliabile che l'url del JAR sia assoluto

32 Rilascio delle MIDlet suite " Il rilascio dell'applicazione per l'installazione su dispositivo può avvenire in tre modalità principali: Over-The-Air: l'applicazione è resa disponibile su un server WAP o WEB pubblico, attraverso il quale il terminale J2ME può scaricarla e procedere con l'installazione PC-based: si procede all'installazione attraverso software dedicato fornito dal produttore del dispositivo OBEX: il terminale J2ME riceve il file jar attraverso trasferimento OBEX (Push o FTP a seconda delle funzionalità del terminale e del PC di appoggio) e provvedere all'installazione in maniera autonoma

33 Processo di sviluppo di un MIDlet java sources compiler java bytecode library JAD preverifier JAR packaging tool Preverified java bytecode

34 MIDlet Scrivere una MIDlet è simile a creare un applicazione J2SE (applet), solo che è meno robusta Il nome deve essere conforme alla convenzione di nominazione delle classi Java Deve estendere la classe javax.microedition.midlet.midlet È un interfaccia tra i comandi dell applicazione e l ambiente run-time, controllato dall application manager

35 Struttura del MIDlet " L AM gestisce il ciclo di vita della MIDlet chiamando i metodi startapp(), pauseapp(), and destroyapp(), dichiarati abstract nella classe MIDlet: startapp(): comandi per l inizio dell esecuzione pauseapp(): comandi per la sospensione dell applicazione; per ripartire si richiama il metodo startapp destroyapp(): comandi per la terminazione " I metodi startapp() e pauseapp() sono public e non hanno né valore di ritorno, né parametri " Il metodo destroyapp() è pubblico e non ritorna valore, ma ha un parametro booleano settato a true se la terminazione della MIDlet è incondizionata, e false se la MIDlet può lanciare una MIDletStateChangeException, per dire all AM che non vuole essere distrutta in quel momento

36 Ciclo di vita di una MIDlet destroyapp() startapp() destroyapp() Paused Active Destroyed pauseapp() caricamento

37 MIDlet skeleton import javax.microedition.midlet.*; public class MyMIDlet extends MIDlet { //costruttore public MyMIDlet() { } //metodi base: public void startapp() { } public void pauseapp() { } public void destroyapp(boolean unconditional) { } }

38 Inizializzazione e avvio " Una MIDlet è un applicazione event-based. Tutte le routine eseguite nella MIDlet sono invocate in risposta a un evento riportato dall AM. L evento iniziale occorre quando la MIDlet è lanciata e l AM invoca il metodo startapp() " L'inizializzazione della MIDlet deve avvenire nel costruttore: creazione dell'interfaccia grafica allocazione delle strutture dati principali lettura parametri di piattaforma " Il metodo startapp() può essere invocato più volte: esso, dunque, non inizializza alcun oggetto ma si occupa di: visualizzare l'interfaccia grafica: tipicamente schermata di dati e invito all utente a scegliere fra una o più opzioni avviare eventuali Thread

39 Sospensione " Il metodo pauseapp() è invocato al sopraggiungere di una chiamata o altro evento per il quale è richiesto di sospendere l'applicazione " Sospendere non significa andare in background! L'applicazione deve congelare il proprio stato (così da riprendere l'esecuzione alla successiva invocazione di startapp()), fermare i thread e chiudere eventuali connessioni di rete. Per sicurezza meglio salvare qualche dato sulla flash del dispositivo! :-(

40 Interazione con l'application Manager " L'applicazione notifica all'application Manager eventuali variazioni nel suo stato, attraverso i metodi definiti nella classe MIDlet: notifypaused(): l'applicazione ha rilasciato le risorse ed è in stand-by resumerequest(): l'applicazione chiede all'application Manager di essere riavviata

41 Chiusura di una applicazione " Il ciclo di vita di una MIDlet è gestito dall'application Manager: per questo motivo, l'applicazione non conclude la sua esecuzione con il classico System.exit(EXIT_CODE) bensì notificando all'application Manager che tutte le risorse sono state deallocate e l'applicazione è pronta per essere terminata: notifydestroyed()

42 J2ME Software Development Kits Gratis: Sun Java Wireless Toolkit ( Third-party Borland JBuilder Mobile Set, Sun One Studio 4 (ex Forte for Java) WebGain VisualCafe Enterprise Suite. Bisogna scaricare 3 software da java.sun.com: Java Development Kit (1.3 o successivo) Connected Limited Device Configuration (CLDC) Mobile Information Device Profile (MIDP) Gli ultimi due software sono già inclusi nel WTK

43 Creare un MIDlet con J2ME Wireless Toolkit " Aprire la Ktoolbar " Cliccare su New Project e specificare: Nome del progetto Nome del MIDlet iniziale " Nella schermata successiva, specificare le metainformazioni sul JAR file: Da notare il tab MIDlets per aggiungere ulteriori MIDlet nello stesso JAR

44 Creazione del progetto (2) " Nella cartella apps, apriamo la cartella HelloWorldProject bin: contiene il file JAR e il relativo descrittore res: cartella generica di risorse, tipo le immagini src: cartella di lavoro project.properties è il descrittore Alla prima compilazione verrà creata la cartella classes

45 Contenitori " Il contenitore principale è il Display Manager implementato nella classe javax.microedition.lcdui.display " Ad un Display è associato un oggetto Displayable che è un contenitore di oggetti grafici

46 HelloWorld.java import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloWorld extends MIDlet{ Display display; Form form; public void startapp(){ display = Display.getDisplay(this); //ottengo il display form = new Form("Hello World Program"); //creo il contenitore StringItem sitem = new StringItem(null,"Hello World!"); //creo il componente form.append(sitem); //aggiungo il componente al contenitore display.setcurrent(form); //imposto come displayable corrente } public void pauseapp(){} } public void destroyapp(boolean unconditional){ notifydestroyed(); }

47 Lanciamo il nostro primo progetto! " Torniamo su Ktoolbar e clicchiamo su Build " Se non ci sono errori, clicchiamo su Run che caricherà l'applicazione sull'emulatore selezionato " La prima schermata sull'emulatore, è la lista delle MIDlet presenti nel progetto " Selezionando la MIDlet e premendo il tasto Launch vediamo l'esecuzione vera e propria della MIDlet HelloWorld

48 Qualche consiglio pratico Sviluppare applicazioni per piccoli dispositivi è una bella sfida Molti metodi tradizionali non sono appropriati per costruire applicazioni che devono girare su dispositivi con limitate capacità computazionali: bisogna rivedere l approccio, con qualche accorgimento per fronteggiare il problema delle risorse Differenze tra i dispositivi tradizionali e piccoli dispositivi: Alimentazione: i primi sono continuamente alimentati, i secondi si affidano a batterie Connessione di rete: i piccoli dispositivi mobili sono connessi via radio o infrarossi, la cui qualità varia a seconda della distanza col ricevitore e la potenza del segnale generato dal dispositivo Inconsistenza nella connessione di rete, tipicamente richiede all utente di sincronizzare spesso dati e applicazioni con un computer o un server Programmi e dati sono memorizzati nella memoria del dispositivo e vengono persi se cade l alimentazione, quindi devono essere ricaricati nel dispositivo: dati memorizzati offline, piuttosto che sulla memoria primaria del dispositivo

49 Qualche consiglio pratico (2) Mantenere l applicazione semplice: Pianificare l applicazione dividendola in oggetti con dati e metodi associati Esempio: un form di un ordine è un oggetto che ha un nome, un numero, un prodotto associato e altri dati; le funzionalità associate sono l inserzione di un nuovo ordine, la modifica di uno esistente, la cancellazione Pianificare l applicazione dividendola in piccoli pezzi Esempio: piuttosto che un oggetto menu, associare una MIDlet ad ogni opzione di menu, per ridurre le risorse di processamento Limitare l applicazione alle minime funzionalità richieste, mettendo ogni componente funzionale in una MIDlet (se possibile), e impacchettare le varie MIDlet nella stessa MIDlet suite. Questo facilita l application manager del dispositivo nel gestire meglio le MIDlets e le risorse che usano Mantenere l applicazione piccola La dimensione di un applicazione J2ME è un punto critico per svilupparla efficientemente. Rimuovere tutte le componenti non necessarie (tipo i suoni)

50 Qualche consiglio pratico (3) Limitare l uso della memoria Gestione globale della memoria: riduce la memoria totale necessaria all applicazione. Per ridurre il fabbisogno evitare di usare i tipi oggetto; meglio i tipi scalari. In ogni caso, usare sempre il tipo di dato minimo per memorizzare un certo dato (per i flag, meglio i boolean che gli int& ) Gestione della memoria in un picco temporale: minimizza la quantità di memoria usata negli istanti di maggior uso del dispositivo. Dipende dal garbage collector, per facilitarlo Allocare un oggetto subito prima di usarlo Settare tutte le referenze agli oggetti a null quando non servono più all applicazione Riusare gli oggetti piuttosto che crearne di nuovi Ridurre la probabilità di eccezione, rilasciando tutte le risorse subito dopo il loro uso

51 Qualche consiglio pratico (4) Computazioni pesanti sui Server L applicazione deve fare il minimo calcolo possibile, ma se è necessaria una computazione pesante l alternativa è costruire l applicazione di tipo client-server: il calcolo pesante lo fa il server che poi invia i risultati al client web-services: tre livelli Livello client (presentazione): è dove l utente interagisce facendo la richiesta Livello della logica del servizio: è dove viene chiamato il software appropriato Livello del processamento Esempio: corriere insicuro di un indirizzo, interroga il database della sua azienda

52 Qualche consiglio pratico (5) Gestire l uso della connessione alla rete Fare trasmissioni brevi, trasferendo il minimo indispensabile per completare un compito Esempio: , invece di scaricare i messaggi, visualizzare prima i campi Da, Oggetto, Data per poi decidere quale leggere, quale cancellare& Considerare l uso della tecnologia store-forwarding e un server-side agent che gira su un server che raccoglie la richiesta dal dispositivo mobile, va a prendere l informazione da una data sorgente, la tiene memorizzata finché il dispositivo mobile non ne fa richiesta, e quindi viene forwardata Esempio: corriere che non sa la strada per raggiungere un indirizzo, e vuole interrogare il sistema di tracking Prevedere sempre un meccanismo per ripristinare una connessione caduta Per esempio, tenere a disposizione le informazioni chiave sulla richiesta, in modo da ritrasmetterle automaticamente

53 Qualche consiglio pratico (6) Fare un interfaccia utente semplice Grande varietà di forme e configurazioni hardware fra i piccoli dispositivi, impossibile fare un interfaccia standard per tutti. Nel realizzare la propria user interface: Dove possibile, sfruttare l interfaccia utente fornita dal dispositivo, piuttosto che disegnarla ex-novo Se creata, considerare i meccanismi di input disponibili (icone vs testo) Controllare le disponibilità dei caratteri della tastiera Limitare la quantità di input da parte dell utente, in modo da semplificare la selezione dal menu (regola del pollice) Usare Variabili locali Evitare le routine che aumentano l overhead di processamento Memorizzazione dei dati: assegnare i dati ai membri di una classe aderisce perfettamente alla filosofia java, ma l accesso a questi dati è più oneroso in termini di processamento rispetto all uso di variabili locali Valutare se i benefici dell uso delle variabili locali rispetto ai benefici dell incapsulazione

54 Qualche consiglio pratico (7) Non concatenare le stringhe Concatenare le stringhe è un processo oneroso Eliminare o limitare le concatenazioni per quanto è possibile La concatenazione aumenta anche l uso della memoria Un alternativa è concatenare le stringhe prima che siano caricate nel dispositivo Se è necessario concatenare delle stringhe, usare l oggetto StringBuffer, che fa un uso efficiente della memoria, sebbene ci sia più overhead Evitare le sincronizzazioni È molto comune invocare più thread all interno di un operazione Meglio invocare un thread che un metodo Limitare le sincronizzazioni, per evitare istruzioni inutili quando la sincronizzazione è disattivata Regola generale: evitare la sincronizzazione a meno che non ci sia alta probabilità di conflitto fra le operazioni

Introduzione a Java 2 Micro Edition. Dr. Francesca Martelli f.martel@di.unipi.it http://www.di.unipi.it/~f.martel/ Stanza: 382 DB Tel: 050 2212 754

Introduzione a Java 2 Micro Edition. Dr. Francesca Martelli f.martel@di.unipi.it http://www.di.unipi.it/~f.martel/ Stanza: 382 DB Tel: 050 2212 754 Introduzione a Java 2 Micro Edition Dr. Francesca Martelli f.martel@di.unipi.it http://www.di.unipi.it/~f.martel/ Stanza: 382 DB Tel: 050 2212 754 1 Cosa sappiamo e cosa faremo Conoscenza di java? Conoscenza

Dettagli

Introduzione a Java 2 Micro Edition Francesca Martelli

Introduzione a Java 2 Micro Edition Francesca Martelli Introduzione a Java 2 Micro Edition Francesca Martelli f.martel@di.unipi.it http://www.di.unipi.it/~f.martel/ Stanza: 382 DB Tel: 050 2212 754 Prima qualche domanda logistica Per poter andare in laboratorio,

Dettagli

Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded

Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded tesi di laurea Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded Anno Accademico 2007-2008 relatore Ch.mo prof. Porfirio Tramontana correlatore Dott. Antonio

Dettagli

Prof. Pagani corrado JAVA

Prof. Pagani corrado JAVA Prof. Pagani corrado JAVA NASCITA DI JAVA Java è stato creato, a partire da ricerche effettuate alla Stanford University agli inizi degli anni Novanta, da un gruppo di esperti sviluppatori capitanati da

Dettagli

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico NetBeans Dott. Ing. Rossella Rubino rossella.rubino@unibo.it A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico Software necessario J2SE(TM) Development Kit (JDK) http://java.sun.com/javase/downloads/index.jsp

Dettagli

Telemetria. Autore: Marco Mazzucchi

Telemetria. Autore: Marco Mazzucchi Autore: Marco Mazzucchi Telemetria è un'applicazione J2ME basata sul rilevamento satellitare GPS che permette di calcolare la posizione e la velocità istantanea per ogni giro compiuto dall'utente in un

Dettagli

Programmazione J2ME. Lezione 1. Le MIDlet. Di Blasi Gianpiero - D.M.I. - Università di Catania

Programmazione J2ME. Lezione 1. Le MIDlet. Di Blasi Gianpiero - D.M.I. - Università di Catania Di Blasi Gianpiero - D.M.I. - Università di Catania Programmazione J2ME Lezione 1 Le MIDlet Cosa impareremo oggi? Cosa è J2ME I profili MIDP ed i livelli di configurazione Il sistema di sicurezza di J2ME

Dettagli

Struttura dei Sistemi Operativi

Struttura dei Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Java SE 7. Introduzione.

Java SE 7. Introduzione. Java SE 7 Introduzione diegozabot@yahoo.it ursula.castaldo@gmail.com Java Java è un linguaggio di programmazione. Inizialmente usato per creare semplici programmi nelle pagine web (chiamati applets), Java

Dettagli

Java: un linguaggio per applicazioni di rete

Java: un linguaggio per applicazioni di rete Java: un linguaggio per applicazioni di rete Moreno Falaschi Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena March 3, 2014 1 Caratteristiche di Java (SUN) Linguaggio

Dettagli

Java: vantaggi e applicazioni di un linguaggio moderno in contesti aziendali e produttivi. Presentazione a cura di: Andrea Bertolini

Java: vantaggi e applicazioni di un linguaggio moderno in contesti aziendali e produttivi. Presentazione a cura di: Andrea Bertolini Java: vantaggi e applicazioni di un linguaggio moderno in contesti aziendali e produttivi Presentazione a cura di: Andrea Bertolini Obiettivi seminario Overview Java, origini Vantaggi e svantaggi Applicazioni

Dettagli

J2ME Platform. Symbian OS. Nokia property platform: Series 60. Microsoft Windows CE.NET Microsoft Windows Mobile Mobile client-server communication

J2ME Platform. Symbian OS. Nokia property platform: Series 60. Microsoft Windows CE.NET Microsoft Windows Mobile Mobile client-server communication Dott. Giovanni Perbellini giovanni.perbellini@univr.it J2ME Platform J2ME Wireless Toolkit (WTK 2.2) Symbian OS Symbian SDK Nokia property platform: Series 60 Nokia Developer s Suite SDK Microsoft Windows

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

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli

2. Cenni di sistemi operativi

2. Cenni di sistemi operativi 2. Cenni di sistemi operativi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides dal corso «Sistemi Operativi» dei prof. Gherardi/Scandurra dell Università degli studi di Bergamo

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

Fondamenti di Informatica T2 Modulo 2

Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Integrated Development Environment (IDE)

Dettagli

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009 Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Integrated Development Environment (IDE)

Dettagli

Sistemi Operativi. Processi e thread

Sistemi Operativi. Processi e thread Sistemi Operativi Processi e thread A.A. 2018-2019 Processi (e thread) Modello concettuale Creazione di processi 1. System initialization 2. Execution of a process-creation system call by a running process

Dettagli

Introduzione alla programmazione Android. Emanuel Di Nardo

Introduzione alla programmazione Android. Emanuel Di Nardo Introduzione alla programmazione Android 1 Emanuel Di Nardo emanuel.dinardo@gmail.com Architettura di base Insieme software composto da: Sistema operativo Middleware Applicazioni di base Utilizzo del linguaggio

Dettagli

Antonio d Acierno 13/01/2006

Antonio d Acierno 13/01/2006 Introduzione alle Servlet Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Servlet Alternativa Java ai CGI-BIN Classi java che estendono le funzionalità di un server Web generando dinamicamente

Dettagli

Componenti di un sistema operativo

Componenti di un sistema operativo Componenti di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Componenti di un S.O. Gestione dei processi Gestione della memoria primaria Gestione della memoria secondaria

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

Java per Sistemi Ubiqui

Java per Sistemi Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Java per Sistemi Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Java per Ubiquitous Computing Java Micro Edition Real-time Java KVM Waba J9 JavaPhone Java

Dettagli

Ambienti di Sviluppo. Linguaggi compilati

Ambienti di Sviluppo. Linguaggi compilati Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Compilatori e/o interpreti; Editor; Ambienti di Sviluppo Strumenti di debug e/o test; 1 Linguaggi compilati Codice sorgente convertito

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

Dettagli

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli Strumenti Java Fondamenti di informatica L-B A.A. 2006-2007 Alessandra Toninelli atoninelli@deis.unibo.it Cosa installare? J2SE SDK Software Development Kit (JDK): Contiene: tutte le classi con relativo

Dettagli

Lezione 2 Introduzione a Java (2)

Lezione 2 Introduzione a Java (2) Lezione 2 Introduzione a Java (2) Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Una review sulle caratteristiche

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA0 0 Linguaggio Java 1 Prerequisiti Utilizzo elementare di un pc Utilizzo di Internet per il downloading di file 2 1 Introduzione In questa lezione si descrivono gli

Dettagli

De Gaetano Andrea JAVA 4 EMBEDDED

De Gaetano Andrea JAVA 4 EMBEDDED De Gaetano Andrea JAVA 4 EMBEDDED Cosa e' J2ME? J2me e' la versione per dispositivi portatili di java. Permette di poter programmare midlet, piccoli programmi nell'ordine delle decine di kb, in grado di

Dettagli

JUG Sardegna Java Summer Meeting 16 Luglio 2005 1

JUG Sardegna Java Summer Meeting 16 Luglio 2005 1 JUG Sardegna Java Summer Meeting 16 Luglio 2005 1 J2ME Introduzione allo sviluppo di applicazioni per dispositivi mobili Stefano Sanna gerdavax@tiscali.it gerda@crs4.it JUG Sardegna Java Summer Meeting

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo L6 (JAVA9) 1 Introduzione alle applet 1 Prerequisiti Architettura client/server Elementi di base HTML Programmazione Java Utilizzo package awt di Java 2 1 Introduzione

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

Java per Sistemi Mobili e Ubiqui

Java per Sistemi Mobili e Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Java per Sistemi Mobili e Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Java per Ubiquitous Computing Java Micro Edition Real-time Java KVM Waba J9 JavaPhone

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni 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 Corso

Dettagli

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

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

Dettagli

Guida pratica all attivazione della componente applet per la firma digitale interna al portale VestaNET

Guida pratica all attivazione della componente applet per la firma digitale interna al portale VestaNET Guida pratica all attivazione della componente applet per la firma digitale interna al portale Aggiornamento al 09/02/2017 È stato introdotto il paragrafo di appendice, realizzato con la preziosa collaborazione

Dettagli

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo? Gestione della configurazione Input/Output PLC Cosa c'è di nuovo? Indice I. Avviare il Configuration Manager... 3 II. Nuova interfaccia dell'utente... 3 III. Importazione di nuovi formati di configurazione...

Dettagli

F2J. Documentazione d uso

F2J. Documentazione d uso F2J documentazione d uso pag 1/27 F2J Nome F2J Data 24/06/2005 Versione: 1.0.2 Abstract Documentazione d uso F2J è una applicazione scritta in Java (J2ME) che può essere eseguita su un telefono cellulare

Dettagli

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Basi di Dati e Web Credits to: Prof. M. Di Felice UniBO " Molti sistemi software prevedono la presenza di un database gestito da un

Dettagli

ADaMSoft. Procedure per l installazione del software in ambiente Microsoft Windows 3/6/2008. Powered by:

ADaMSoft. Procedure per l installazione del software in ambiente Microsoft Windows 3/6/2008. Powered by: ADaMSoft Procedure per l installazione del software in ambiente Microsoft Windows 3/6/2008 Powered by: Introduzione L installazione e, più in generale, il funzionamento di ADaMSoft richiede che nel computer

Dettagli

Principi di OOP con JAVA

Principi di OOP con JAVA Principi di OOP con JAVA lezioni 08 - gen - 2004 15 - gen - 2004 Tommaso Di Noia t.dinoia@poliba.it OOP (elementi) Programmazione Procedurale e Orientata agli Oggetti. FUNZIONI OGGETTI STRUTTURE DATI METODI

Dettagli

Corso Programmazione Java Standard

Corso Programmazione Java Standard Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate

Dettagli

Sistemi Operativi: Concetti Introduttivi

Sistemi Operativi: Concetti Introduttivi Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione

Dettagli

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp Installazione di EasyPhp Scaricare la versione più recente di EasyPhp dal sito ufficiale (http://www.easyphp.org/). Scegliere la versione di sviluppo (DEVELOPMENT SERVER) più adatta al proprio sistema

Dettagli

Horizone Server IN00B02WEB. Horizone PDK

Horizone Server IN00B02WEB. Horizone PDK Horizone Server IN00B02WEB Horizone PDK Prodotto: -- Descrizione: Horizone PDK - Manuale Utente Data: 10/07/2017 Eelectron Spa IN00B02WEBFI00080102_PDK_MANUAL.DOCX 1/12 Qualsiasi informazione all interno

Dettagli

istruzioni per l'installazione

istruzioni per l'installazione istruzioni per l'installazione vers.11/11 INDICE 1 Cos è Magister Pag. 3 1a Requisiti di sistema Pag. 3 2 Installazione di Magister Pag. 3 3 Dopo l installazione di Magister Pag. 6 3a Aggiornamento da

Dettagli

Una breve presentazione. Basati sulla specifica EJB Sun Microsystems. Consentono di costruire applicazioni ad oggetti distribuite, utilizzando Java

Una breve presentazione. Basati sulla specifica EJB Sun Microsystems. Consentono di costruire applicazioni ad oggetti distribuite, utilizzando Java Enterprise JavaBeans Approfondimento per il corso di Sistemi Distribuiti A.A. 2002/2003 Una breve presentazione Basati sulla specifica EJB Sun Microsystems Consentono di costruire applicazioni ad oggetti

Dettagli

Architetture Applicative Altri Esempi

Architetture Applicative Altri Esempi Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni

Dettagli

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione

Dettagli

Multithreading in Java I parte. Lorenzo Gallucci

Multithreading in Java I parte. Lorenzo Gallucci Multithreading in Java I parte Lorenzo Gallucci Java: un linguaggio ed un sistema predisposti per il multitasking È possibile creare e gestire Thread nativamente (senza dover ricorrere a librerie esterne)

Dettagli

correttezza e precisione; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; riservatezza dei dati; interoperabilità fra

correttezza e precisione; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; riservatezza dei dati; interoperabilità fra Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precisione; anywhere, anytime; affidabilità,

Dettagli

Java per Sistemi Mobili e Ubiqui

Java per Sistemi Mobili e Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Java per Sistemi Mobili e Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Java per Ubiquitous Computing Java Micro Edition Real-time Java KVM Waba J9 JavaPhone

Dettagli

QRss. Aggregatore di feed RSS per smartphone con QR code e Bluetooth. Marco Avvenuti Alessio Vecchio. Generoso Pagano

QRss. Aggregatore di feed RSS per smartphone con QR code e Bluetooth. Marco Avvenuti Alessio Vecchio. Generoso Pagano QRss Aggregatore di feed RSS per smartphone con QR code e Bluetooth Progetto svolto per il corso di Sistemi Mobili e Pervasivi a.a. 2009/2010 studente: Generoso Pagano docenti: Marco Avvenuti Alessio Vecchio

Dettagli

VPN e FortiClient (Windows)

VPN e FortiClient (Windows) Sistema Bibliotecario di Ateneo VPN e FortiClient (Windows) Accedere alle risorse elettroniche da fuori rete Unimore Contenuti di questa guida Le 3 modalità di accesso al VPN con Windows Interfaccia VPN

Dettagli

Avvio SITIPu Manuale Utente

Avvio SITIPu Manuale Utente Avvio SITIPu Manuale Utente Software di proprietà SIN s.r.l. Data Revisione: 29/03/2011 Versione Manuale: 1.0 1 Indice Generale Avvio SITIPu... 3 Installazione SITIIndexSFA... 3 Aggiornamento SITIPu...

Dettagli

Close To Me manuale d'uso. 1. Introduzione.

Close To Me manuale d'uso. 1. Introduzione. Close To Me manuale d'uso 1. Introduzione. Close To Me è un'applicazione per Android l'obiettivo di trovare nuovi amici su Facebook utilizzando il Bluetooth. Si può usare per allargare il vostro "Graph".

Dettagli

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi 1 JSP (Java Server Pages) È la tecnologia Java per lo sviluppo di applicazioni

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

GUIDA UTENTE BILLIARDS COUNTER (Vers )

GUIDA UTENTE BILLIARDS COUNTER (Vers ) GUIDA UTENTE BILLIARDS COUNTER (Vers. 3.0.0) Installazione Billiards Counter... 2 Primo avvio e configurazione di Billiards Counter... 7 Registrazione del programma... 9 Utilizzo di Billiards Counter...

Dettagli

Il Sistema Operativo. Informatica Sistema Operativo 1

Il Sistema Operativo. Informatica Sistema Operativo 1 Il Sistema Operativo Informatica Sistema Operativo 1 O.S.:.: un intermediario SW Applicativo Sistema Operativo HW Informatica Sistema Operativo 2 O.S. vs applicativi Applicativi accesso a un insieme ridotto

Dettagli

Modulo o Form in Html

Modulo o Form in Html Pagina dinamica E un documento contenente oggetti, dati e informazioni che possono variare anche in base all iterazione dell utente con il documento stesso. Un esempio classico è quello di una persona

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni

Dettagli

Esportazione dei dati dei prodotti Google (Gmail, Drive, ecc)

Esportazione dei dati dei prodotti Google (Gmail, Drive, ecc) Esportazione dei dati dei prodotti Google (Gmail, Drive, ecc) Sommario 1. Google Takeout (Scarica i tuoi dati)... 2 a. Procedura di Google Takeout... 2 b. Come leggere i file scaricati tramite Google Takeout

Dettagli

Stellar Extractor for Windows Backup 5.0. Guida d'installazione

Stellar Extractor for Windows Backup 5.0. Guida d'installazione Stellar Extractor for Windows Backup 5.0 Guida d'installazione Sommario Stellar Extractor for Windows Backup recupera i dati dai file di backup Windows corrotti. I file di backup possono corrompersi per

Dettagli

Eclipse e SDK. Capiamo che sistema operativo abbiamo

Eclipse e SDK. Capiamo che sistema operativo abbiamo Eclipse e SDK Capiamo che sistema operativo abbiamo 1 2 Cliccare su impostazioni 3 Cliccare su Sistema 1 Cliccare 4 Cliccare su Informazioni su 2 Eclipse ECLIPSE: http://www.eclipse.org/ Esistono versioni

Dettagli

Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1

Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1 Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1 Release NOTE 1.1 Prima Versione del Manuale INDICE 1-INTRODUZIONE... 4 2- GESTIONE DEL CATALOGO PIXMANIA-PRO SU IMAIO... 5 3-Configurazione

Dettagli

Architettura Client-Server. In a nutshell

Architettura Client-Server. In a nutshell Architettura Client-Server In a nutshell Architettura Client-Server Modello di interazione tra processi software processo CLIENT richiede servizi può interagire con più processi server tipicamente dedicato

Dettagli

L'applicazione integrata con il servizio My Fattura

L'applicazione integrata con il servizio My Fattura L'applicazione integrata con il servizio My Fattura Come funziona einvoicemanger (eim) 2 Per il CICLO ATTIVO 2 Per il CICLO PASSIVO 2 Come può essere utilizzato 2 Installazione di eim 2 Installazione del

Dettagli

UNIVERSITA CA FOSCARI VENEZIA - CT0090 INGEGNERIA DEL SOFTWARE 2016/2017 ARRIFORNISCETE. Documento di Analisi e Specifica 1.

UNIVERSITA CA FOSCARI VENEZIA - CT0090 INGEGNERIA DEL SOFTWARE 2016/2017 ARRIFORNISCETE. Documento di Analisi e Specifica 1. UNIVERSITA CA FOSCARI VENEZIA - CT0090 INGEGNERIA DEL SOFTWARE 2016/2017 ARRIFORNISCETE Documento di Analisi e Specifica 1.1 TEAM CODROT 853540 BONOTTO MIRKO 854763 CERVELLIN GIULIO 853780 ROSSETTO MOSE

Dettagli

Esonero di Informatica I. Ingegneria Medica

Esonero di Informatica I. Ingegneria Medica Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l

Dettagli

Università degli Studi di Padova

Università degli Studi di Padova Università degli Studi di Padova SCUOLA DI INGEGNERIA Corso di Laurea in INGEGNERIA DELL INFORMAZIONE Laboratorio di Fondamenti di Informatica A.A. 2017/2018 SOMMARIO 1) (Java Development Kit) Cos è Struttura

Dettagli

File ad accesso diretto funzioni Hash Parte1. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

File ad accesso diretto funzioni Hash Parte1. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni File ad accesso diretto funzioni Hash Parte1 Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Esercitazione: Si vuole sviluppare una applicazione come quella mostrata nella figura in cui

Dettagli

Collaboratori 2009 1 Collaboratori 2009 Introduzione Da inizio ottobre è stato messo in produzione un nuovo portale per la ricezione dei materiali digitali prodotti da inviati e collaboratori esterni.

Dettagli

Traduzione e interpretazione

Traduzione e interpretazione Traduzione e interpretazione Parte dei lucidi sono stati gentilmente forniti dal Prof. Salza VII.1 Linguaggi di programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore

Dettagli

Java e i Tipi di dati primitivi. Parte 3

Java e i Tipi di dati primitivi. Parte 3 Java e i Tipi di dati primitivi Parte 3 La nozione di tipo di dato Il tipo del dato consente di esprimere la natura del dato Indica il modo con cui verrà interpretata la sequenza di bit che rappresenta

Dettagli

L IDE NETBEANS. (slide: A. Baratè) Programmazione per la Musica Adriano Baratè

L IDE NETBEANS. (slide: A. Baratè) Programmazione per la Musica Adriano Baratè L IDE NETBEANS (slide: A. Baratè) Programmazione per la Musica Adriano Baratè NETBEANS: UN PO DI STORIA Lo sviluppo inizia nel 1996 alla Facoltà di Matematica e Fisica di Praga come IDE Java Nel 1999 il

Dettagli

WebDisk. TeamPortal - WebDisk

WebDisk. TeamPortal - WebDisk - INDICE Introduzione... 3 1.1 Funzioni disponibili... 4 1.2 Gestione e Consultazione... 4 1.3 Ricerca... 8 1.4 Amministrazione, direttori esterni... 10 2 Introduzione L'applicazione permette di gestire

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine

Dettagli

NOTE DI INSTALLAZIONE

NOTE DI INSTALLAZIONE NOTE DI INSTALLAZIONE Sommario 1. GUIDA AI VARI TIPI DI INSTALLAZIONE... 2 2. INSTALLAZIONE MONOUTENZA (LOCALE)... 3 2.1 Installazione Repository e Application Server... 3 2.2 Installazione DataBase...

Dettagli

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l

Dettagli

La memoria cache. Informatica generale

La memoria cache. Informatica generale La memoria cache Nello schema di funzionamento di un calcolatore il processore continuamente preleva informazioni ed istruzioni dalla memoria centrale e scrive in essa informazioni La memoria centrale,

Dettagli

GUIDA UTENTE PRIMA NOTA SEMPLICE

GUIDA UTENTE PRIMA NOTA SEMPLICE GUIDA UTENTE PRIMA NOTA SEMPLICE (Vers. 2.3.0) Installazione... 2 Prima esecuzione... 5 Login... 6 Funzionalità... 7 Prima Nota... 8 Registrazione nuovo movimento... 10 Associazione di file all operazione...

Dettagli

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Informatica Generale 06 - Introduzione ai Sistemi Operativi Informatica Generale 06 - Introduzione ai Sistemi Operativi Cosa vedremo: Funzionalità dei sistemi operativi Bootstrap Stato utente e stato supervisore Componenti di un Sistema Operativo Cos è un sistema

Dettagli

Airone Gestione Rifiuti

Airone Gestione Rifiuti Airone Gestione Rifiuti Manuale d'installazione Il documento fornisce le istruzioni di base per poter installare autonomamente il programma Airone sul proprio pc. Prima di procedere con l'installazione

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

Scrigno Client Forms12 Setup

Scrigno Client Forms12 Setup Scrigno Client Forms12 Setup Indice Introduzione e requisiti...pag. 2 1...Installazione di SCRIGNO...Pag. 3 1.1...SCRIGNO HOSTING Installation...Pag. 6 1.1.1...Note Tecniche su Installazione SCRIGNO Hosting...Pag.

Dettagli

Aggiornamenti del software Guida per l utente

Aggiornamenti del software Guida per l utente Aggiornamenti del software Guida per l utente Copyright 2009 Hewlett-Packard Development Company, L.P. Windows è un marchio registrato negli Stati Uniti di Microsoft Corporation. Le informazioni contenute

Dettagli

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito SOFTWARE MODULO 3 SOFTWARE Programmi e dati che indicano al computer come svolgere un determinato compito Programma: sequenza di istruzioni, scritte in un determinato linguaggio, con le quali si fa eseguire

Dettagli

Riuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili

Riuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili Riuso di classi Spesso si ha bisogno di classi simili Si vuole cioè riusare classi esistenti per implementare attributi e metodi leggermente diversi Non è pratico copiare la classe originaria e modificarne

Dettagli

A.A. 2018/2019. Introduzione ad AlgoBuild FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. Introduzione ad AlgoBuild FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante A.A. 2018/2019 Introduzione ad AlgoBuild Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE : OUTLINE Caratteristiche Come si presenta Primo diagramma di flusso ed utilizzo del

Dettagli

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project Database and data mining group, SQL Server 2005 Integration Services SQL Server 2005: ETL - 1 Database and data mining group, Integration Services Project Permette di gestire tutti i processi di ETL Basato

Dettagli

Laboratorio di Informatica. Il Sistema Operativo. Il Sistema Operativo 1

Laboratorio di Informatica. Il Sistema Operativo. Il Sistema Operativo 1 Corso di Laboratorio di Informatica 1 Contenuti L architettura a strati di un calcolatore I compiti del sistema operativo L esecuzione delle applicazioni Cos è il Sistema Operativo? Un programma che gestisce

Dettagli

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1 Incapsulamento Paradigmi della PO Ereditarietà Polimorfismo Software per TLC - AA 2008/2009 1 Incapsulamento Una classe contiene dati e metodi Filosofia Ai dati si accede solo attraverso i metodi I metodi

Dettagli