UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea ANALISI E VALUTAZIONE DI MACCHINE VIRTUALI JAVA PER DISPOSITIVI MOBILI RELATORE Ch.mo Prof. Ing. Stefano Russo CANDIDATO Francesco Esposito Matricola 41/19 CORRELATORE Ing. Domenico Cotroneo ANNO ACCADEMICO i

2 A mio padre, che ha lasciato un vuoto incolmabile dentro di me. A mia madre. ii

3 Ringraziamenti Ancora non riesco a credere di essere giunto alla fine di un percorso così tortuoso e travagliato. Sono stati molti i momenti di sconforto e più di una volta ho creduto di non farcela. Presto molte delle mie ansie e angosce saranno rimosse e resterà solo la gioia di aver reso fieri di me, le persone che mi vogliono bene e hanno avuto fiducia in me. Ringrazio Dio, la cui benevolenza nei miei confronti è palese, per essere comunque presente nella mia vita e per aver detto che gli ultimi saranno i primi. Ringrazio mio padre che anche quando non stava affatto bene si preoccupava del fatto che io non studiassi per stare vicino a lui, perdonami per aver perso tanto tempo da non poterti dare la gioia che sto donando a me stesso e agli altri. Spero tu sia fiero di me, soprattutto per il modo in cui sto cercando di condurre avanti la nostra famiglia. Ringrazio mia madre per non avermi fatto mai pressioni, per aver gioito oltremodo ad ogni esame, per aver sempre lavorato e lottato per i suoi figli, per le parole di lode e ammirazione che ha proferito nei miei riguardi. Spero che la gioia di questo momento possa alleviare le tue tristezze e malinconie latenti. Ringrazio le mie sorelle: Anna, Lina e Pina per il loro amore e per le preghiere. Ringrazio i miei nipotini e i membri della famiglia tutta. Ringrazio Rossella per avermi costretto a sostenere esami che avrei altrimenti rimandato, per il suo ottimismo contagioso, per il suo affetto. Ringrazio Gaetano, amico sincero con il quale mi appresto a concludere la tormentata epopea. Grazie per aver sopportato i miei costanti ritardi e per aver ascoltato i miei guai con benevola comprensione. Grazie al prof. Stefano Russo, mio relatore, e all ing. Domenico Cotroneo, mio correlatore e amico, per la preziosa assistenza. Ringrazio: Paolo o purton; Giancarlo o prucion; Ciro o polemic; Laura anche detta Maritton, anche detta Michel Jecksòn; Marco o nano; Pepino tozzetto; Carmine o tupòn; o Macciocc; e Milòn; Riccardin; o Nunziat; i Grassi (che non sono miei parenti); o Iaccarin; o Lerro; o Rosell; o Scellòn; Michele o sapunar; Frenco; Ale detto Jesus; Barbara wanna be good; Annabella a crostatin; Tina Robert; Gianni o suggetton; Alex il cane solatore; Bruno ex playboy; Foffy o diggei; Linda; Valentina; Lell o rull; il braccio e il braccio; Laura a barist; Nicola o ginecologo; le pitone; Paolo o pucuron; Pierluigi o frevon; Pippo a pall; Rosaria donna del procione anche detto a svedes; Rosario o cloaca; Austin Funèl; Tore Marino, per il soprannome parola senza di voi non ce l avrei mai fatta a invecchiare sui libri! Grazie a tutte le donne che ho avuto, finalmente avrò i soldi per pagare ancora; grazie a telecapri, per i cattivi pensieri; grazie ai miei pochi capelli rimasti. Grazie ai cari ingegneri del laboratorio: Carletto, chi s assumigl s pigl ; Vincenzo forza Barra, Cristiano; Generoso, Armando, Carmine e Marcello. Un grazie agli amici: Carmine; Imma, anche detta Concetta; Paolo, better known as Muppet; Stanislao e Gianluca SuperWaba. Grazie a tutti Addà venì baffon! iii

4 Introduzione 1 Cenni preliminari 3 Capitolo 1 Le piattaforme Java per dispositivi mobili Cenni storici Architettura Java Virtual Machine Configurazioni Profili CLDC e CDC Confronto tra le configurazioni Dettagli di CLDC Differenze di linguaggio Differenze nelle Virtual Machine Dettagli di CDC Differenze di linguaggio I Profili nel dettaglio Il profilo MIDP Sviluppo di applicazioni J2ME 27 Capitolo 2 Le Virtual Machine CDC Jeode Disponibilità Caratteristiche Ciclo di Sviluppo Le API di Jeode CrEme Disponibilità Caratteristiche Ciclo di Sviluppo Le API di CreMe SuperWaba Disponibilità Caratteristiche Ciclo di Sviluppo 44 iv

5 2.3.4 Le API di SuperWaba Ewe Disponibilità Caratteristiche Ciclo di Sviluppo Le API di Ewe Considerazioni comparative 54 Capitolo 3 Definizione ed implementazione dei test sperimentali Il modello di qualità Gli attributi e le entità Le metriche I test sperimentali: definizione e implementazione Il multithreading Considerazioni preliminari Livello di multithreading Prestazioni di uno stesso algoritmo multithread Il tempo di chiamata ai metodi Operazioni di Input/Output su file Operazioni di Input/Output su rete 66 Capitolo 4 Analisi e valutazione dei risultati sperimentali Metriche quantitative: risultati Impronta di memoria Multithreading Livello di Multithreading Prestazioni di un algoritmo multithread Tempo di chiamata a metodi Overhead delle macchine virtuali Operazioni di I/O su file Operazioni di I/O su rete Metriche quantitative: confronto Impronta di memoria Multithreading Livello di multithread 79 v

6 Prestazioni di un algoritmo multithread Tempo di chiamata a metodi Overhead delle macchine virtuali Operazioni di I/O su file Scrittura Lettura Operazioni I/O su rete Metriche quantitative: valutazioni e confronto Disponibilità Ciclo di sviluppo Classi supportate Interfaccia utente Compatibilità con Java 94 Conclusioni 95 Appendice A 96 A.1 Istallazione di SuperWaba su PC Desktop (Windows 98 e superiori) 96 A.2 Installazione di SuperWaba sul palmare (Compaq ipaq 3970) 97 A.3 L applicazione 98 A.4 Compilazione e generazione degli eseguibili 99 A.5 Esecuzione 100 Appendice B 102 B.1 Istallazione di Ewe su PC Desktop (Windows version) 102 B.2 Installazione di Ewe sul palmare (Compaq ipaq 3970) 103 B.3 L applicazione 103 B.4 Compilazione e generazione degli eseguibili 104 B.5 Esecuzione 106 Bibliografia 107 vi

7 Introduzione Scopo del seguente lavoro di tesi è il confronto tra differenti macchine virtuali, destinate ai cosiddetti small connected devices, cioè ai piccoli dispositivi dotati di proprietà di connettività. L attenzione è focalizzata in particolare sui palmari con sistema operativo basato su WindowsCE. Al fine di conseguire l obiettivo si valuteranno le diverse macchine virtuali mediante la definizione di un modello di qualità [Pressman]. La qualità si caratterizza attraverso un insieme finito e definito di attributi, quindi un modello di qualità è composto da attributi, ciascuno considerato con un suo peso, aventi la finalità di rappresentare la qualità posseduta dal prodotto software considerato. Nel definire il modello consideriamo il fatto che i palmari attuali hanno raggiunto un evoluzione tale, da avvalersi dell appellativo di piccoli dispositivi principalmente in termini relativi, cioè se rapportati agli odierni computer desktop. Per cui il numero di applicazioni client-based realizzate per tali dispositivi è cresciuto enormemente. In tabella 1 è mostrato l insieme di attributi scelto per la caratterizzazione del modello proposto e, per ciascun attributo, l insieme delle entità che, a loro volta, caratterizzano gli attributi. Attributo Efficienza Interoperabiltà Usabilità Portabilità Entità Multithreading; Chiamate a metodi; Overhead; Operazioni di Input-Output su file e su rete; Compatibilità con Java Ciclo di sviluppo, Interfaccia grafica, Classi supportate Disponibilità su differenti piattaforme hardware-software. Tabella 1 Modello di qualità per la valutazione delle macchine virtuali. Definito il modello, è possibile introdurre le metriche software. Esse rappresentano lo strumento attraverso il quale è possibile misurare le entità che caratterizzano gli attributi del modello considerato. Le metriche definite, sono sia qualitative sia quantitative. Esse sono descritte nella tabella 2. 1

8 Metrica qualitativa Portabilità Il numero di piattaforme hardware-software che supportano le VM. Usabilità Il ciclo di sviluppo per la realizzazione delle applicazioni. La tipologia di classi supportate da ciascun ambiente. La tipologia del supporto alle Graphical User Interface. Interoperabilità Compatibilità con java. Metrica quantitativa Efficienza L impronta di memoria (footprint memory); Il multithreading, in termini di: Livello di multithreading; Tempo di esecuzione di uno stesso algoritmo multithread, senza politiche di sincronizzazione. Le chiamate a metodi, in termini di: Tempo medio di chiamata senza parametri; Tempo medio di chiamata con parametro elementare; Tempo medio di chiamata con parametro strutturato; L overhead, in termini di: Quantità media di memoria occupata, per l esecuzione della macchina virtuale. Interoperabilità Le operazioni di Input/Output su file, in termini di: Tempo medio di scrittura al variare delle dimensioni del file; Tempo medio di lettura al variare delle dimensioni del file Le operazioni di Input/Output su rete, in termini di delay. Tabella 2 Metriche qualitative e quantitative. Il processo di misurazione passa attraverso la realizzazione di varie applicazioni concernenti le aree di interesse menzionate in precedenza. Il dispositivo su cui saranno eseguite le applicazioni è il palmare Compaq ipaq 3970, con sistema operativo PocketPC2002. Le virtual machine, oggetto della valutazione, sono le seguenti: Jeode, della Insigna [Jeode]; CreMe, della NSICom [CrEme]; Superwaba [SWaba]; Ewe [Ewe]. 2

9 Cenni preliminari Considerato il recente e quanto mai crescente interesse riguardo l uso di Java su piccoli connected devices può sorprendere pensare che le origini di Java derivino dal progetto e lo sviluppo di un limitato dispositivo wireless di nome *7 [HaOCon]. Quest ultimo è stato realizzato dalla Sun alle metà degli anni 90. Il sistema operativo di tale macchina, denominato Dubbed, ha contribuito alla formalizzazione di base del linguaggio Java. Quindi impiantare Java sui piccoli device può considerarsi, seppur modestamente, una sorta d onorificenza nei riguardi delle origini di Java. Cominciamo ad esaminare le limitazioni che caratterizzano i piccoli dispositivi poiché tali si traducono in altrettante sfide per l utilizzo di Java in tale ambito. L attenzione è rivolta a quei dispositivi mobili, quali telefoni cellulari e PDA ( Personal Digital Assistent ), caratterizzati da consistenti limitazioni in termini di funzionalità e risorse se confrontati ai desktop computer. Come accennato il linguaggio Java era stato inizialmente concepito come tecnologia di interconnessione per piccoli dispositivi, ma col tempo si è sviluppato fino a supportare programmi per computer desktop e applicazioni mission critical server based. Di conseguenza, al progetto iniziale, sono state aggiunte un numero considerevole di API (Application Program Interface), incrementando significativamente le funzionalità offerte da Java. E facile intuire che le numerose API messe a disposizione da Java non possono essere integrate in quei dispositivi caratterizzati dai vincoli di cui sopra. Nel 1999 alla JavaOne Conference fu presentata KVM (Kilobyte Virtual Machine) per il Palm OS, successivamente con l arrivo di J2ME, Java è ritornato ad essere destinato ai piccoli dispositivi. Ci si può porre la questione se Java abbia la caratteristica di essere suitable per i piccoli dispositivi. Ebbene il recente sviluppo di Java come vero e proprio linguaggio di programmazione accompagnato dallo sviluppo del mercato dei piccoli device risponde a tale interrogativo in maniera inequivocabilmente affermativa, ma molte caratteristiche del linguaggio e le API devono essere adattate per rispondere ai requisiti di tali piccoli dispositivi. 3

10 Gli aspetti che maggiormente sono da tenersi in considerazione riguardano le seguenti aree chiave: capacità di elaborazione in termini di CPU e memoria; alimentazione; connettività; interfaccia utente. Analizziamo con ordine ciascuna delle aree summenzionate. Capacità di elaborazione La computing capability è in diretta correlazione con il modo in cui un dispositivo elabora le informazioni per l utilizzatore finale. Essa è da ritenersi un attributo composto le cui parti fondamentali sono: la velocità della CPU, la memoria totale, la capacità delle unità di memorizzazione di massa e gli altri fattori concernenti l hardware. Purtroppo la capacità di elaborazione varia notevolmente nell ambito dei piccoli dispositivi e l unico denominatore comune è il fatto di essere molto limitati se confrontati con i desktop computer. La limitata natura dei piccoli dispositivi vincola pesantemente il Java Environment, data la vastità delle librerie standard di Java è impossibile infatti pensare di portare interamente le API standard su di un piccolo dispositivo. Pertanto impiantare API che abbiano la caratteristica di essere usabili, in un piccolo dispositivo, necessita di un oculato adattamento, d altra parte la limitazione nelle API porta ad una limitazione nella portabilità dei relativi programmi. Gli sviluppatori Java hanno infatti imparato a produrre codice indipendentemente dalla specifica piattaforma a cui una applicazione può essere destinata e questo ha incrementato, dal punto di vista dello programmatore, la gradevolezza (appeal) nei confronti dell ambiente Java. L approccio di ridimensionamento del Java Environment è tuttavia inevitabile ed influisce sull appeal dell intero ambiente poiché costringe gli sviluppatori a conoscere le nuove API, ma risulta essere l unico approccio possibile al fine di conciliare le esigenze di tutte le parti in causa. 4

11 Fortunatamente, come in ogni altro campo dell industria dei computer, anche per i piccoli dispositivi c è una rapida crescita della capacità di elaborazione, basti pensare che il Palm1000 presentato nel 1996 era equipaggiato con una memoria RAM di appena 128kb e che dopo circa quattro anni le versioni del PalmOS includevano una memoria RAM di 8Mb. Oggigiorno siamo ad una dimensione della memoria di 64Mb. Anche la velocità della CPU aumenta vertiginosamente con gli anni: i PalmOS del 2000 avevano un clock intorno ai 25MHz mentre attualmente si hanno handheld che lavorano anche a frequenze di 400MHz. Al miglioramento della capacità di elaborazione concorrono diversi fattori, tra i quali l integrazione dei componenti elettronici e il miglioramento delle architetture dovuto alla crescita del mercato dei piccoli dispositivi, tale crescita è stata favorita anche dal diffondersi delle tecnologie wireless network tra cui è in forte ascesa Bluetooth. Alimentazione Diversamente dai computer desktop i piccoli dispositivi hanno, per loro natura, la caratteristica di dover essere self-sufficient dal punto di vista dell alimentazione. Cioè si assume che essi possano operare senza l ausilio diretto di una fornitura di energia elettrica e sono dotati di una batteria ricaricabile che ha una limitata autonomia e che rappresenta una risorsa da ottimizzare con cura, dato che la natura mobile dei device conduce all assunzione che essi operino lungo tempo senza poter essere ricaricati. La necessità di conservazione della batteria influenza in maniera indiretta il processo di acquisizione di Java sui piccoli dispositivi: chip che lavorano a frequenza più basse richiedono meno potenza e quindi prolungano la vita della batteria e il loro uso, ciò si riflette nella necessità di avere API ottimizzate per avere tempi di risposta accettabili dal punto di vista dell utilizzatore. 5

12 Connettività Dato il crescente espandersi dei piccoli dispositivi, la banda delle reti wireless non è più da considerarsi limitata. Nel 2000 la maggior parte delle applicazioni wireless based potevano contare su di una banda di 9600 Kbps o anche meno, questo perché l impiego di Java era maggiormente rivolto ai telefoni cellulari, oggi siamo intorno a Mbps. Comunque per i piccoli dispositivi che supportano Java, reti lente e inconsistenti, in termini di disponibilità, possono ostacolare funzionalità che si affidano ad un connessione a larga banda. Le applicazioni sui piccoli dispositivi wireless devono quindi portare in conto le diverse reti e le difficoltà di comunicazione che si incontrano su di una rete lenta e limitatamente affidabile. Interfaccia utente Una delle aree in cui è più difficile standardizzare, passando attraverso varie piattaforme, è l interfaccia utente. La storia di Java, del resto, ci illustra quale lento processo abbia alla fine portato ad una matura GUI ( Graphical User Interface ). I piccoli dispositivi presentano altrettante difficoltà in questa area chiave, data la molteplicità e la diversità dei metodi di input output. Si pensi ad esempio alle differenti dimensioni degli schermi di un telefonino cellulare e di un palmare o alle diverse modalità di immissione dati di questi ultimi. Per tale motivo non è consigliabile portare su di un piccolo dispositivo le API Swing o AWT integralmente, anche perché queste sono state pensate per computer aventi dimensioni degli schermi ben delineate. Sarebbe preferibile quindi pensare ad una GUI che fosse in grado di aderire alle caratteristiche look and feel dei singoli dispositivi in questione. D altra parte, in particolar modo per gli handheld, è possibile alleggerire le API del Java Environment, per esempio le API AWT, lasciando al programmatore il compito di adattare la propria applicazione alle dimensioni del device cui è destinata l applicazione stessa. 6

13 Capitolo 1 Le piattaforme Java per dispositivi mobili Il primo sforzo concreto, finalizzato alla realizzazione di piattaforme Java per i piccoli dispositivi, è stato compiuto dalla Sun attraverso il progetto della tecnologia J2ME (Java 2 Micro Edition) [J2ME], [HaOCon]. J2ME nasce come strumento in grado di fornire funzionalità multi-piattaforma su piccoli dispositivi orientati alla connessione. Le stesse che hanno caratterizzato l infrastruttura Java standard e che ne hanno decretato il successo. In poche parole la mission era portare Java su tali device, per cui l obiettivo principe si può identificare nella portabilità delle applicazioni. Abbiamo già discusso dell impossibilità di portare integralmente le API standard sulle svariate tipologie di dispositivi, per cui si è dovuto affrontare un attento processo di riduzione delle core API attraverso semplice soppressione e ottimizzazione. Quest ultima realizzata, però, lasciando inalterate le specifiche dei metodi (bisognava cambiare il come, non il cosa ). I dispositivi in questione non hanno tutti le stesse caratteristiche, per cui, al fine di fornire compatibilità con una platea tanto eterogenea, si è deciso di progettare l infrastruttura J2ME in maniera modulare. Ciascun modulo fornisce una serie si servizi (attraverso le API), cosicché una applicazione è in grado di essere eseguita su diverse piattaforme a patto che esse supportino gli stessi moduli dell infrastruttura. 1.1 Cenni storici J2ME fu presentata al mondo per la prima volta nel 1999 durante i lavori della JavaOne conference. Era l epoca in cui la Sun annunciò la realizzazione della prima Virtual Machine per il PalmOS: si trattava di Kilobyte Virtual Machine (KVM). Nel corso del 2000 prese corpo l intento di modularizzare l infrastruttura J2ME con l introduzione, per la prima volta, di un architettura basta su configurazioni e profili. In tal modo, partendo da una realizzazione basata su KVM, il J2ME environment è stato 7

14 esteso fino ad includere numerose famiglie di dispositivi. La cosa che rende profondamente diverso J2ME dai suoi predecessori, tra cui Personal Java e Embedded Java, è proprio il fatto di rendere possibile la personalizzazione di J2ME per specifici dispositivi in un modo rigorosamente standardizzato, prevenendo così il proliferare di differenti e ridondanti versioni e garantendo un elevata flessibilità. 1.2 Architettura Le specifiche di J2ME hanno imposto, fin dal concepimento, la strutturazione delle API in due livelli, in grado di fornire comunione e flessibilità. Essi sono definiti, rispettivamente, configurazioni e profili e formano, unitamente ad una Java Virtual Machine (JVM) un completo Java Runtime Environment per una determinata tipologia di dispositivi. Applicazione J2ME Applicazione J2ME Profilo Configurazione Profilo opzionale Java API specifiche Applicazione Nativa Java Virtual Machine Sistema Operativo Nativo Figura Architettura J2ME In figura 1.1 è mostrata la stratificazione dei livelli software di un dispositivo che supporta l ambiente J2ME: Il sistema operativo fornisce i servizi di base per accedere all hardware del dispositivo, consente l accesso alla memoria e gestisce l archiviazione delle 8

15 informazioni sulla memoria di massa. Inoltre esso supporta le applicazioni native; La Java virtual machine fornisce l ambiente di esecuzione necessario ad interpretare il bytecode Java e può eventualmente supportare le Java API specifiche del costruttore; Al di sopra della macchina virtuale si trovano le API appartenenti alla particolare famiglia di dispositivi e le API specifiche del singolo dispositivo, realizzate dal costruttore. Le prime sono contenute nella configurazione e nel profilo, mentre le seconde consentono di accedere alle funzionalità proprie di quel dispositivo e non della famiglia; infine troviamo l applicazione J2ME realizzata mediante l utilizzo delle API fornite ai livelli sottostanti Java Virtual Machine Come già accennato la macchina virtuale Java fornisce un ambiente di esecuzione per l esecuzione dei programmi Java. Essa si pone al disopra del sistema operativo fornendo un interprete nativo per il bytecode. Le JVM per i piccoli dispositivi hanno a disposizione solo una quantità molto limitata di memoria per svolgere il loro compito, inoltre necessitano di essere ottimizzate per fornire un accettabile livello di prestazioni, in quanto la velocità di elaborazione dei piccoli dispositivi è altrettanto ridotta quanto la memoria. I requisiti di una siffatta macchina virtuale sono definiti da un lato dalla limitata natura del dispositivo in questione e dall altro dalla definizione della particolare configurazione, la quale definisce una serie di funzionalità che la JVM deve implementare. La Kilobyte Virtual Machine, progettata per lavorare sui PalmOS, deve il suo nome alla ridotta quantità di memoria di cui necessita per essere installata su di un piccolo dispositivo. E sufficiente una quantità di memoria di 160kb e lavora su processori CISC o RISC a 16 e 32 bit. Simile alla precedente è la HVM, Hotspot Virtual Machine, la quale rappresenta una specializzazione della KVM per i processori ARM. Essa consente un cospicuo aumento di prestazioni dovuto all adattabilità della compilazione a scapito di un ridotto aumento del fabbisogno di memoria. Infine possiamo citare la CVM, C Virtual Machine, 9

16 progettata per supportare tutte le caratteristiche di J2SE e destinata, per tale ragione, ai dispositivi con consistenti risorse hardware Configurazioni Le configurazioni definiscono un insieme di API base che accomunano una serie di dispositivi simili dal punto di vista hardware. Tali dispositivi possono essere, in realtà, abbastanza differenti tra loro, ma sono tutti caratterizzati dall avere alcune peculiarità molto simili. Ad esempio la memoria disponibile, il tipo di processore e le network capability, possono essere le stesse malgrado i differenti fattori di forma o gli ambiti applicativi più disparati. Quindi le configurazioni hanno ragion d essere nell intento di stabilire comunione tra diverse famiglie di dispositivi equipollenti, mediante la realizzazione di un core API invariante da dispositivo a dispositivo. Poiché il livello di configurazione poggia direttamente sulla JVM, può essere necessario contemplare alcune dipendenze di basso livello, ad esempio una configurazione potrebbe richiedere operazioni floating-point che alcune JVM, tra cui KVM, non supportano. Ogni macchina virtuale coerente con una siffatta configurazione deve quindi supportare gli oggetti float e double. Quindi la configurazione oltre ad escludere API fortemente dipendenti dalla specifica piattaforma, definisce i requisiti della macchina virtuale su cui poggia. Il concetto non deve destare ambiguità: anche se configurazione e macchina virtuale sono strettamente accoppiate, esse restano ben distinte. Nonostante una configurazione sia generalmente distribuita assieme ad una macchina virtuale, la prima non è necessariamente legata alla seconda e può funzionare con qualsiasi JVM che sposa i suoi bisogni. La tabella 1.1 mostra le configurazioni correnti di J2ME. In essa è indicata la versione e il numero della Java Specification Request (JSR) definito dalla Java Community Process (JCP) [JCP]. Tecnologia Descrizione Release CLDC v. 1.1 JSR-139 Connected Limited Device Configuration, Marzo 2003 per dispositivi quali telefoni cellulari. CDC v. 1.0a JSR-36 Connected Device Configuration, fornisce un Agosto 2002 ambiente più esteso per dispositivi più complessi. Tabella Le principali configurazioni J2ME attualmente disponibili 10

17 1.2.3 Profili I profili differiscono dalle configurazioni poiché focalizzano l attenzione su specifici gruppi di dispositivi il cui denominatore comune è l adesione completa ad una data configurazione. Ad esempio il profilo MIDP (Mobile Information Device Profile), specifico per i telefoni cellulari, differisce dal profilo PDA dedicato ai primi palmari, ma entrambi poggiano sulla stessa configurazione (CLDC). Le configurazioni, quindi, forniscono le funzionalità di base, mentre i profili supportano funzionalità molto specifiche della particolare famiglia di dispositivi per cui sono stati concepiti. Con tale approccio modulare è possibile includere specificità in un programma preservando la genericità delle funzionalità di base. Ciò favorisce un processo di portabilità che, anche se non è immediato, è altamente flessibile: la migrazione di un programma da una famiglia di dispositivi ad un'altra, consente il riuso del codice prodotto usando una configurazione comune e impone la riscrittura del solo codice specifico per il dispositivo, mediante l utilizzo di un opportuno profilo. Inoltre è possibile utilizzare profili opzionali per aggiungere funzionalità non disponibili in quello standard. Ad esempio il profilo RMI aggiunge la funzionalità di Remote Method Invocation alle funzionalità di base del profilo a cui si affianca. La tabella 1.2 mostra alcuni profili correnti e quelli futuri. Tecnologia Descrizione Release MIDP v. 2.0 JSR-118 Estende la configurazione CLDC con classi Novembre abstract per le UI e per il Networking Foundation Profile v. 1.0JSR-46 Personal Profile v. 1.0 JSR-62 RMI Profile v.1.0 JSR- 66 PDA Profile JSR-75 Game Profile JSR-134 Estende CDC, richiede almeno un profile Marzo 2001 addizionale per essere completo. Profilo per piccoli devices che sostiuisce Settembre 2002 Personal Java 1.1.x e 1.2.x. Fornisce il supporto opzionale RMI. Giugno 2002 Profilo più completo rispetto a MIPD, si poggia su CLDC ed è destinato ai PDA. Pensato per lo sviluppo di giochi sul J2ME environment Tabella 1.2 Alcuni profili disponibili e altri in corso d opera (ICDO). ICDO ICDO 11

18 Le informazioni presenti nelle tabelle 1.1 e 1.2, sono aggiornate al marzo Ulteriori informazioni sullo stato dei lavori e la descrizione delle specifiche, sono reperibili al sito CLDC e CDC Ci sono soltanto due configurazioni che coprono un largo range di famiglie di dispositivi. Un numero così esiguo evita confusione, ma soprattutto limita fortemente la ridondanza. La prima è la Connected Limited Device Configuration (CLDC), essa è rivolta a dispositivi piuttosto limitati, piccoli e di solito wireless, quali, ad esempio, telefoni cellulari e PDA con limitate caratteristiche hardware. La seconda configurazione è la Connected Device Configuration (CDC), che si rivolge ai dispositivi aventi risorse tali da poter essere in grado di supportare un ambiente Java quasi completo. La CDC rappresenta, quindi, una alternativa per quei dispositivi, come navigatori satellitari o PDA di ultima generazione, che hanno maggiore capacità in termini di memoria e velocità di elaborazione. I dispositivi che utilizzano la CDC hanno inoltre la caratteristica di non dover essere necessariamente limitati dal punto di vista dell alimentazione ed hanno, in genere, una larghezza di banda consistente Confronto tra le configurazioni La CDC è stata implementata mediante la realizzazione di API che formassero un insieme più ampio che include l insieme delle API della configurazione CLDC. Tale scelta favorisce la portabilità delle applicazioni CLDC-based, infatti se si intende portare un programma da CLDC a CDC, non è necessario modificare il codice dipendente dalla configurazione. CDC nasce, a sua volta, come un sottoinsieme dell intero J2SE environment, differendo da esso principalmente per l assenza di vere e proprie API client-specific (AWT). In aggiunta vi sono però classi addizionali, nel package javax.microedition, allo scopo di fornire codice specifico per i client mobili. La figura 1.2 mostra le relazioni di inclusione e di non appartenenza discusse, mediante approccio insiemistico. 12

19 J2SE CDC CLDC Figura 1.2 Relazione tra gli environment CLDC, CDC, J2SE: da intendersi in senso lato. CDC offre, come già detto, un ambiente Java quasi completo. Di seguito sono riportati alcuni package di J2SE 1.3 non presenti nella configurazione CDC: java.applet java.awt.* java.rmi.* java.sql javax.sound.* javax.swing.* Alcuni package non presenti nelle configurazioni sono forniti con i profili, mentre le funzionalità tipo AWT sono incapsulate in profili specifici di interfaccia. Uno degli equivoci più comuni è affermare che nella configurazione CDC sono presenti tutte e sole le funzionalità di base che si trovano in J2SE. Niente di più falso: molti package della configurazione CDC sono stati ridotti in numero di classi e in complessità di queste ultime, l environment CDC è più completo rispetto a quello offerto da CLDC, ma resta sempre ottimizzato per poter afferire ad un ambito limitato Dettagli di CLDC Le API appartenenti alla configurazione CLDC, sono state prodotte, come già accennato, mediante un processo di riduzione delle API standard di J2SE, basato sull eliminazione e sulla ottimizzazione in termini di complessità. Nessuna classe e nessun metodo sono stati aggiunti alle API base che la configurazione condivide con 13

20 J2SE, mentre il codice specifico, per CLDC, è stato inserito nel package javax.microedition, proprio di J2ME. CLDC ha due obiettivi supplementari, specifici per le famiglie di dispositivi cui è destinata. Infatti molti di questi dispositivi, tra cui i telefoni cellulari, sono stati a lungo limitati dalle funzionalità iniziali fornite con il device al momento della vendita, stiamo parlando dell OEM (Original Equipment Manufacturer). Un primo obiettivo è, quindi, aggiungere flessibilità ad un dispositivo, in modo da adattarlo ai nuovi bisogni dei suoi utilizzatori. Ciò rimuove i confini concernenti la staticità delle funzionalità del dispositivo ed offre un concreto sbocco al concetto di updating. Il secondo obiettivo è una diretta conseguenza del primo ed è il nascere di terze parti in grado di sviluppare applicazioni per i dispositivi che supportino la configurazione CLDC, creando di fatto un modo per accedere ad un mercato precedentemente irraggiungibile. A guidare la selezione di una configurazione, per una famiglia di dispositivi, sono le capability della stessa che prescindono da fattori, quali ad esempio, l interfaccia utente. I requisiti di base, che un dispositivo deve possedere per supportare la CLDC, sono davvero esigui se confrontati con quelli posseduti da un desktop computer, tra i principali possiamo elencare i seguenti: da un minimo di 160kb fino a giungere a 512kb di memoria totale; processori a 16 o 32 bit con un clock di almeno 16MHz; 128kb di memoria non volatile destinata a contenere la JVM e le librerie CLDC; 32kb di memoria volatile per il Java Runtime, questo include lo stack e ogni applicazione caricata a tempo di esecuzione; bassi consumi e alimentazione a batterie; connessione di rete, di solito wireless, che può essere intermittente e con vincoli di banda stringenti (anche meno di 9600bps). Il fattore chiave è la memoria: essa definisce i confini tra le famiglie di dispositivi che usano la configurazione CLDC e quelle che usano la CDC. La natura limitata della configurazione CLDC impone alcuni vincoli sia sul linguaggio Java, sia sulla macchina virtuale, su cui poggia la configurazione stessa. Esploriamo, di seguito, tali limitazioni nel dettaglio. 14

21 Differenze di linguaggio La sintassi del linguaggio Java è rimasta invariata, le differenze nel linguaggio riguardano principalmente la riduzione e l eliminazione delle API. Riportiamo di seguito queste ultime: o Gruppi di thread: il supporto ai thread continua ed essere fornito e anzi, risulta essere particolarmente utilizzato sui piccoli dispositivi. Ciò che è stato sottoposto ad eliminazione è il supporto ai gruppi di thread, anche perché la limitata natura del device consente di supportare generalmente solo pochi thread. o Oggetto finalization: in ogni classe in ambiente Java standard, è possibile definire un metodo finalize, il quale, un istante prima che l'oggetto venga eliminato dal garbage collector, è richiamato dalla JVM per rilasciare ogni altra risorsa allocata all oggetto oltre alla memoria (ad esempio file aperti o connessioni socket). Tale funzionalità è stata rimossa poiché complica notevolmente il processo di garbage collection. o Weak references: tali funzionalità consentono al programmatore di segnalare alla JVM che un dato oggetto può essere sottoposto a garbage collection. Anch esse sono state eliminate poiché complicano la garbage collection. o Numeri floating-point: gli oggetti floating-point, double e float, sono stati rimossi nella configurazione CLDC. Questo può sembrare strano, ma c è da osservare che, il supporto ai numeri floating-point è assente nella maggior parte dei piccoli device e che, una emulazione software, sarebbe troppo costosa. o Serialization: essa consente la conversione di un oggetto Java residente in memoria, in una successione di byte. Tale tecnica è molto utilizzata quando occorre trasferire oggetti attraverso la rete. Gli oggetti che possono essere serializzati implementano l interfaccia serializable ed includono solo oggetti che sono dichiarati come serializzabili. Nella configurazione CLDC la serializzazione non è possibile poiché necessita di API a loro volta eliminate. Conseguentemente funzionalità dipendenti dalla serializzazione, quali ad esempio la RMI, sono assenti nella CLDC. o Java Native Interface: la JNI fornisce un approccio standardizzato per accedere a librerie e applicazioni native. La richiesta di memoria, necessaria per tale funzionalità, preclude la sua implementazione nei dispositivi CLCD-based. 15

22 o Reflection: Le reflection API forniscono un modo molto flessibile per esaminare oggetti e interagire con essi a runtime. Esse generano meta-informazioni e consentono ad un programma di interagire dinamicamente con oggetti atempo di esecuzione. La reflection è particolarmente utile per quei programmi, tipo debugger, che hanno bisogno di esaminare a tempo di esecuzione lo stato degli oggetti in memoria. E immediato osservare che la reflection aggiunge un overhead consistente e per questo è stato sottoposta ad eliminazione. o Eccezioni ed errori: il supporto alle eccezioni e agli errori è presente nella CDLC, ma il loro numero è stato ridotto come conseguenza dell eliminazione di parte delle API. Le classi rimaste continuano a lanciare le stesse eccezioni e sotto le stesse condizioni, questo per favorire la compatibilità tra J2SE e J2ME. o AWT e Swing: tutte le API di interfaccia utente sono state rimosse nella configurazione CLDC: Graphical User Interface API, sono state progettate per specifiche famiglie di device, nei vari profili. o Collections: pur implementando le classi Hashtable, Vector, Stack ed Enumeration, la CLDC non fornisce le API per tutte le collezioni di oggetti, data la loro vastità. o Networking e I/O: la configurazione CLDC non fa nessuna assunzione riguardo la natura delle connessioni di rete, per cui molte networking API non sono incluse in tale configurazione. Al loro posto è stato introdotto un framework di connessione generica. o Sicurezza: il modello di security della J2SE è molto complesso, richiede molto spazio fisico e consistente tempo di CPU, per tale motivo le security API hanno subito una drastica riduzione. Quest ultima ha portato all impiego di un modello di sicurezza in J2ME semplificato che prende il nome di sandbox model Differenze nelle Virtual Machine Molti dei cambiamenti della configurazione CLDC, sono il risultato delle limitazioni imposte dal tipo di dispositivo e dalle capability dei livelli sottostanti. La macchina virtuale, di conseguenza, è stata modificata per aderire al modello semplificato. Analizziamo i cambiamenti: o Nessun class loader definito dall utente: le classi Java sono caricate a runtime mediante class-loader. La VM possiede un class-loader di default ma, in J2SE, 16

23 è possibile creare un loader costruito interamente in Java. Quest ultimo può essere caricato dal loader di default ed essere utilizzato per caricare le classi in modo ottimizzato. Nell environment J2ME ciò non è consentito, inoltre il classloader di default non consente il caricamento di quegli oggetti che tentano di fare l override delle API base. o Assenza di verifica dei classfile: ogni classfile Java, caricato dalla macchina virtuale, è sottoposto a verifica prima di essere utilizzato. Tale azione assicura la correttezza del bytecode e previene tentativi di caricare codice malizioso. Per diminuire l overhead conseguente, il processo di verifica è stato ottimizzato grazie all utilizzo di un preverificatore. o Nessun supporto diretto per il Java environment/application setup: la CLDC non fornisce supporto alcuno per il controllo dell installazione di nuove applicazione e per la loro esecuzione. Tale supporto è invece realizzato in un modo devicespecific dipendente, quindi, dall implementazione J2ME per il dato device. L Application Management Software (AMS) abilita l utente finale a caricare, eseguire e rimuovere applicazioni J2ME sul dispositivo su cui è installato o Preloading e prelinking: le classi possono essere prelinkate e immagazzinate su memoria non volatile per un caricamento più veloce. 17

24 In tabella 1.3 sono illustrati i packages facenti parte della configurazione CLDC, accompagnati da una breve descrizione. Package Funzione java.io Consente la lettura e la scrittura dei flussi di di classi: 11 I/O. Non supporta le classi BufferedStream ma interfacce: 5 eccezioni: 5 fornisce 5 implementazioni delle classi astratte InputStream e OutputStream. java.lang Fornisce classi che sono il cuore del linguaggio classi: 15 Java. Nel package sono inclusi gli oggetti interfacce: 1 eccezioni: 19 System, Thread e Runtime e la classe Math. java.util Contiene utility per la manipolazione delle classi: 7 informazioni di data e ora e supporta le Java interfacce: 1 eccezioni: 2 Collection di base. javax.microedition.io E l unico package specifico: implementa classi: 1 classi supplementari di I/O e fornisce le interfacce: 8 eccezioni: 1 funzionalità del package java.net di J2SE. Tabella 1.3 I package di CLDC v.1.0 (JSR-30 Release maggio 2000) Dettagli di CDC La configurazione CDC è rivolta a quei dispositivi maggiormente performanti rispetto ai dispositivi a cui è rivolta la CLDC, come ad esempio i PDA di ultima generazione. Anche la CDC ha un insieme di API che è stato sottoposto a riduzione, ma include una vasta collezione di classi derivanti dall ambiente J2SE. La configurazione CDC si propone, quindi, di colmare il gap esistente tra la CLDC e la versione standard di Java, mantenendo la piena compatibilità verso il basso, attraverso la riproposizione di tutte le classi della configurazione CLDC. E importante tener presente che CDC è stata progettata rivolgendo particolare attenzione all interoperabilità con Personal Java. In tal modo, le applicazioni che correntemente girano su Personal Java, possono essere facilmente trasportate nell environment CDC, mediante utilizzo di profili appropriati. 18

25 I requisiti di base, che un dispositivo deve possedere per supportare la CDC si possono riassumere, nei seguenti: Più di 2Mb di memoria totale disponibile per il Java environment; Processori a 32 bit Connessione di rete, spesso wireless, che può essere intermittente e con vincoli di banda non molto stringenti. Una Java Virtual Machine completa, che supporti tutte le funzionalità standard. Così come la CLDC è generalmente accoppiata al profilo MIDP, di cui parleremo tra breve, la CDC si accompagna ad un profilo che complementa la sua configurazione base. Tale profilo, il foundation profile, non include le GUI API che sono viceversa fornite a mezzo di profili opzionali. La configurazione CDC è distribuita assieme alla CVM (C Virtual Machine). Essa è una JVM completa, supporta tutte le funzionalità tipiche di ogni JVM standard ed è perciò profondamente diversa dalla KVM. Conseguenza dell impiego della CVM è il fatto che i vincoli sulla CDC riguardano solo il linguaggio e non la virtual machine Differenze di linguaggio Anche nella configurazione CDC la sintassi del linguaggio Java è rimasta invariata, le differenze di linguaggio, dovute al processo di riduzione delle API, sono, in tale configurazione, più esigue che nella CLDC. Di seguito sono riportate le principali differenze tra le due configurazioni in merito al linguaggio. Anticipiamo il fatto che molte delle limitazioni presenti in CDLC non hanno ragione di esistere in tale ambito: o Gruppi di thread: poiché i requisiti minimi dei dispositivi che supportano la configurazione CDC, sono considerevolmente più robusti, rispetto al caso dei dispositivi CLDC-based, i gruppi di thread prendono posto in tale configurazione. o Oggetto finalization: la finalization era stata rimossa dalla CLDC per via dell overhead insostenibile per i dispositivi cui la configurazione era destinata e perché complicava la garbage collection da parte della sottostante JVM. Visto che la CDC è rivolta a dispositivi più performanti e che la macchina virtuale su 19

26 cui poggia è conforme allo standard Java per le JVM, la configurazione CDC supporta l oggetto finalization. o Weak references: la CDC rimuove tale limitazione e anzi, supporta l intero package java.lang.ref che contiene, tra l altro, la weak reference. o Numeri floating-point: diversamente da quanto accade per la CLDC, il supporto ai numeri floating-point è fornito nella CDC. Questo grazie alle maggiori potenzialità disponibili nei dispositivi a cui è rivolta la configurazione e all impiego della CVM, la quale supporta i tipi double e float. o Serialization: la serializzazione non è stata sacrificata all interno della configurazione CDC. Tale funzionalità è, anzi, necessaria in una architettura più flessibile rispetto alla CLDC e la sua implementazione è resa possibile grazie alle caratteristiche fisiche dei dispositivi cui la configurazione CDC stessa è rivolta. o Java Native Interface: la configurazione CDC implementa la JNI, ma non solo. Essa supporta anche altre interfacce quali l interfaccia di debug (JVMDI) e la profiling interface (JVMPI). Queste tre interfacce, si basano su interfacce C e poiché la CVM del livello sottostante è scritta in C, il loro mantenimento nella configurazione è stato possibile. o Reflection: la configurazione CDC supporta le reflection API, diversamente da quanto accade nella CLDC. Tali API sono contenute nel package java.lang.reflect. o Eccezioni ed errori: in CDC sono contenuti errori ed eccezioni in numero minore rispetto al J2SE environment. Tale numero è, d altra parte, maggiore rispetto al caso CLDC, ciò è una conseguenza del maggior numero di API che trovano posto in tale configurazione. o AWT e Swing: così come accade per la CLDC, le API di interfaccia utente sono state rimosse nella configurazione CDC: il compito è delegato ai profili. Come vedremo tra breve, il Personal Profile prevede le stesse funzionalità presenti in Personal Java, tra cui l implementazione di API AWT-based. o Collections: nella configurazione CDC è presente un supporto completo alle collezioni di oggetti. o Networking e I/O: la CDC contiene un insieme di I/O API molto più espanso rispetto alla CLDC. Inoltre è implementato un sottoinsieme delle API del package java.net di J2SE. CLDC fornisce il solo package javax.microedition. 20

27 o Sicurezza: è presente in CDC il modello di security della J2SE, anche se, ovviamente, in forma ridotta. La CLDC, diversamente, supporta solo un modello semplificato di sicurezza. In tabella 1.4 sono illustrati i package facenti parte della configurazione CDC insieme con una breve descrizione delle funzionalità che questi offrono: Package java.io classi: 36 interfacce: 10 eccezioni: 16 java.lang classi: 30 interfacce: 3 eccezioni: 24 java.lang.ref classi: 5 interfacce: 0 eccezioni: 0 java.lang.reflect classi: 8 interfacce: 2 eccezioni: 2 java.math classi: 1 interfacce: 0 eccezioni: 0 java.net classi: 12 interfacce: 5 eccezioni: 6 java.security, java.security.cert classi: 21 interfacce: 6 eccezioni: 13 java.text, java.text.resources classi: 11 interfacce: 0 eccezioni: 1 java.util, java.util.zip classi: 44 interfacce: 11 eccezioni: 7 javax.microedition.io classi: 1 interfacce: 8 eccezioni: 1 java.util.jar, Funzione Consente la lettura e la scrittura dei flussi di di I/O. Tale package contiene molte delle classi omesse in CLDC. Fornisce classi che sono il cuore del linguaggio Java. Nel package sono inclusi gli oggetti System, Thread e Runtime. Inoltre sono incluse le classi Double e Float. Contiene i reference types tra cui weak refernces. Fornisce le API di reflection Contiene la sola classe BigInteger e i metodi per lavorare con oggetti del tipo BigInteger. Sottoinsieme dell omonimo package di J2SE. Consente connessioni http url-based e comunicazioni connectionless con datagrammi. Supporta le funzionalità di sicurezza Fornisce caratteristiche di internazionalizzazione per il supporto di lingue multiple Contiene ultilities per la manipolazione di data e ora e implementa le java collections di base. Implementa classi supplementari di I/O Tabella 1.4 I packages di CLC v.1.0 (JSR-36 Release marzo 2001). Allo scopo di dare un idea al lettore di quanto siano distanti le configurazioni CLDC e CDC, dalle API base dell ambiente J2SE, riportiamo di seguito la tabella 1.5 che mostra 21

28 i package di J2SE v.1.3.1, di CLDC v.1.0 e CDC v.1.0. Per ciascun package è indicato il numero di classi, di interfacce e di eccezioni: J2SE CDC CLDC Package C I E C I E C I E java.io java.lang java.lang.ref java.lang.reflect java.math java.net java.security java.security.cert java.text java.util java.util.jar java.util.zip Javax.microedition.io Tabella 1.5 Java Environment a confronto (C - Classi; I - Interfacce; E - Eccezioni). 22

29 1.3.4 I Profili nel dettaglio Per disporre di un ambiente J2ME su di un particolare device, è necessario avere almeno una virtual machine, una configurazione e un profilo. Profili opzionali possono poi essere installati per offrire funzionalità aggiuntive. I profili realizzano la specificità, necessaria all ambiente, attraverso tre strade: Fornendo il supporto alle GUI Consentendo la persistenza Implementando le Abstract Networking API, della configurazione sottostante. Data la flessibilità che i profili conferiscono all architettura J2ME, vi sono molteplici progetti che sono stati portati a termine, per sposare le necessità di svariate famiglie di dispositivi, e altri in corso d opera. Di seguito riportiamo alcuni profili CLDC based, corredati da una breve descrizione: o Mobile Information Device Profile (MIDP): è il primo reso disponibile dalla Sun, esso fornisce la GUI ed altre funzionalità proprie dei dispositivi mobili, quali i telefoni cellulari. Il MIDP è anche disponibile per i palmari PalmOS. o Personal Digital Assistano Profile (PDAP): ancora in via di sviluppo, tale profilo sostituirà il MIDP sui PDA, adattandosi all hardware e alla interfaccia utente propria dei palmari. o Altre API: tra i profili opzionali per la configurazione CLDC, evidenziamo:le API relative alla riproduzione di popolari formati audio: Mobile Media API (JSR-135) ; le API per il supporto dello standard Bluetooth e le API USB (Universal Serial Bus). Elenchiamo ora alcuni profili basati sulla configurazione CDC: o Foundation Profile: forma uno strato indispensabile per molti profili CDCbased. Tale profilo è il primo ufficialmente rilasciato dalla Sun per la configurazione CDC. o Personal Bases Profile: implementa le funzionalità di base per il Personal Profile. Esso non fornisce compatibilità con l ambiente Personal Java. 23

30 o Personal Profile: completa il Personal Bases Profile apportando piena compatibilità con Personal Java. o Altri profili: tra quelli opzionali citiamo il profilo RMI (Remote Method Invocation), le Mobile Media API (JSR-135) e il Game Profile. Quest ultimo richiede l impiego del Foundation Profile e non è stato ancora portato a termine Il profilo MIDP Il Mobile Information Device Profile, è in assoluto il profilo più diffuso, essendo tra l altro orientato a dispositivi, come i telefoni cellulari, che hanno una diffusione quasi capillare nei paesi industrializzati. Le funzionalità che il MIDP apporta alla configurazione su cui poggia, la CLDC, si possono riassumere nelle seguenti: GUI di basso livello; Persistenza; Connettività di rete HTTP-based; Supporto temporale alle applicazioni; Gestione del ciclo di vita delle applicazioni (MIDlet). Le API introdotte nel profilo, basate sull implementazione delle precedenti aree chiave, completano i package della CLDC e ne formano di nuovi. I requisiti dei dispositivi che sposano il profilo MIDP sono quelli della configurazione CLDC, in aggiunta essi devono avere: Un piccolo display; Un modo per fornire input al device, ad esempio una piccola tastiera o un touch screen; Memoria non volatile sufficiente a contenere, oltre alla macchina virtuale e alla configurazione, anche il profilo. In realtà i 128k, indicati come requisito della CLDC, possono essere sufficienti allo scopo; Almeno 8k di memoria di memoria non volatile per l archiviazione dei dati delle applicazioni; 24

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

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

Introduzione alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Il servizio di registrazione contabile che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Chi siamo Imprese giovani e dinamiche ITCluster nasce a Torino

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

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Implementazione di un servizio VoIP in ambienti SOA per mobile computing tesi di laurea Implementazione di un servizio VoIP in ambienti SOA per mobile computing Anno Accademico 2006/2007 relatore Ch.mo prof. Domenico Cotroneo correlatore ing. Marcello Cinque candidato Vittorio

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Panoramica: che cosa è necessario

Panoramica: che cosa è necessario Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo

Dettagli

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

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT TESI DI LAUREA REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT RELATORE: Prof. Michele Moro LAUREANDO: Marco Beggio Corso di laurea Specialistica in Ingegneria

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

MANUALE DELLA QUALITÀ Pag. 1 di 6

MANUALE DELLA QUALITÀ Pag. 1 di 6 MANUALE DELLA QUALITÀ Pag. 1 di 6 INDICE GESTIONE DELLE RISORSE Messa a disposizione delle risorse Competenza, consapevolezza, addestramento Infrastrutture Ambiente di lavoro MANUALE DELLA QUALITÀ Pag.

Dettagli

esales Forza Ordini per Abbigliamento

esales Forza Ordini per Abbigliamento esales Rel. 2012 Forza Ordini per Abbigliamento Scopo di questo documento è fornire la descrizione di una piattaforma di Raccolta Ordini via Web e la successiva loro elaborazione in ambiente ERP Aziendale.

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

2 Gli elementi del sistema di Gestione dei Flussi di Utenza SISTEMA INFORMATIVO page 4 2 Gli elementi del sistema di Gestione dei Flussi di Utenza Il sistema è composto da vari elementi, software e hardware, quali la Gestione delle Code di attesa, la Gestione di

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

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

Un applicazione client per la localizzazione via Bluetooth e Wi-Fi di dispositivi Smartphone Anno Accademico 2005/2006 tesi di laurea Un applicazione client per la localizzazione via Bluetooth e Wi-Fi di dispositivi Anno Accademico 2005/2006 relatore Ch.mo prof. Stefano Russo correlatore Ing. Massimo Ficco candidato Giorgio

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1. Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione Percorso Formativo C1 Modulo 2 Computer hardware 1 OBIETTIVI Identificare, descrivere, installare

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione.

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione. ISO 9001 Con la sigla ISO 9001 si intende lo standard di riferimento internazionalmente riconosciuto per la Gestione della Qualità, che rappresenta quindi un precetto universale applicabile all interno

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

PIANO BIENNALE PER I DIRITTI DELLE PERSONE CON DISABILITÀ

PIANO BIENNALE PER I DIRITTI DELLE PERSONE CON DISABILITÀ PIANO BIENNALE PER I DIRITTI DELLE PERSONE CON DISABILITÀ 15 novembre 2014 Daniela Sangiovanni Comunicazione e Ufficio stampa Policlinico S,Orsola ACCESSIBILITÀ Gli Stati dovrebbero riconoscere l importanza

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

bmooble INFOMOBILITY demo environment

bmooble INFOMOBILITY demo environment bmooble INFOMOBILITY demo environment bmooble fornisce tecnologia abilitante per permettere l esecuzione di processi informativi accedendo ai dati di applicazioni esistenti dal proprio cellulare senza

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Fatti Raggiungere dal tuo Computer!!

Fatti Raggiungere dal tuo Computer!! Fatti Raggiungere dal tuo Computer!! Presentazione PcBridge è il modo rivoluzionario di accedere al proprio computer in qualsiasi momento e da qualsiasi luogo. Inserendo la penna usb OUT, Pcbridge permette

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL 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

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

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014 Corso: Informatica+ Andrea Cremonini Lezione del 20/10/2014 1 Cosa è un computer? Un elaboratore di dati e immagini Uno smartphone Il decoder di Sky Una console di gioco siamo circondati! andrea.cremon

Dettagli

Strategie e Operatività nei processi di backup e restore

Strategie e Operatività nei processi di backup e restore Strategie e Operatività nei processi di backup e restore ver. 3.0-2014 Linee Guida + Do You Backup Your Invaluable Data? Now You Can with DuBackup! NSC s.r.l. Tutti i diritti riservati. Tutti i materiali

Dettagli

I L C O M P U T E R COM E FATTO DENTRO (Unità 2)

I L C O M P U T E R COM E FATTO DENTRO (Unità 2) I L C O M P U T E R COM E FATTO DENTRO (Unità 2) 1. Premessa Lo scopo di questo capitolo non è quello di spiegare come si assembla un computer, bensì più semplicemente di mostrare le parti che lo compongono.

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione al sistema operativo Il file system: file, directory,... ,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Novità di Access 2010

Novità di Access 2010 2 Novità di Access 2010 In questo capitolo: Gestire le impostazioni e i file di Access nella visualizzazione Backstage Personalizzare l interfaccia utente di Access 2010 Creare database utilizzando modelli

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri.

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri. Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri. Roma, 25 ottobre 2010 Ing. Antonio Salomè Ing. Luca Lezzerini

Dettagli

Procedura per la configurazione in rete di DMS.

Procedura per la configurazione in rete di DMS. Procedura per la configurazione in rete di DMS. Sommario PREMESSA... 2 Alcuni suggerimenti... 2 Utilizzo di NAS con funzione di server di rete - SCONSIGLIATO:... 2 Reti wireless... 2 Come DMS riconosce

Dettagli

COME È FATTO IL COMPUTER

COME È FATTO IL COMPUTER 1 di 8 15/07/2013 17:07 COME È FATTO IL COMPUTER Le componenti fondamentali Un computer, o elaboratore di dati, è composto da una scheda madre alla quale sono collegate periferiche di input e output, RAM

Dettagli

L attenzione verso i collaboratori e la loro formazione, perché l azienda non cresce se i collaboratori restano indietro.

L attenzione verso i collaboratori e la loro formazione, perché l azienda non cresce se i collaboratori restano indietro. 1 Chi siamo Mericom è una delle più consolidate realtà nell ambito delle vendite, del marketing e della comunicazione. Siamo sul mercato con successo da 15 anni e abbiamo realizzato grandi progetti anche

Dettagli

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

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea AUTENTICAZIONE PER APPLICAZIONI WEB Relatore

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

Sistema di Gestione Documentale V.2.5.x. ARCHIVIAZIONE OTTICA, FASCICOLAZIONE E PROTOCOLLO V.2.5.x

Sistema di Gestione Documentale V.2.5.x. ARCHIVIAZIONE OTTICA, FASCICOLAZIONE E PROTOCOLLO V.2.5.x ARCHIVIAZIONE OTTICA, FASCICOLAZIONE E PROTOCOLLO V.2.5.x Il programma per l attribuzione ed il controllo del protocollo è una applicazione multiutente che consente la gestione del protocollo informatico

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

EW1051 Lettore di schede USB

EW1051 Lettore di schede USB EW1051 Lettore di schede USB 2 ITALIANO EW1051 Lettore di schede USB Contenuti 1.0 Introduzione... 2 1.1 Funzioni e caratteristiche... 2 1.2 Contenuto della confezione... 2 2.0 Installazione del EW1051

Dettagli

2.7 La cartella Preparazioni e CD Quiz Casa

2.7 La cartella Preparazioni e CD Quiz Casa 2.7 La cartella Preparazioni e CD Quiz Casa SIDA CD Quiz Casa è il cd che permette al candidato di esercitarsi a casa sui quiz ministeriali e personalizzati. L autoscuola può consegnare il cd al candidato

Dettagli

ICARO Terminal Server per Aprile

ICARO Terminal Server per Aprile ICARO Terminal Server per Aprile Icaro è un software aggiuntivo per Aprile (gestionale per centri estetici e parrucchieri) con funzionalità di terminal server: gira sullo stesso pc dove è installato il

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati.

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati. LA RETE INFORMATICA NELL AZIENDA Capire i benefici di una rete informatica nella propria attività. I componenti di una rete I dispositivi utilizzati I servizi offerti LA RETE INFORMATICA NELL AZIENDA Copyright

Dettagli

Sistemi Operativi. Conclusioni e nuove frontiere

Sistemi Operativi. Conclusioni e nuove frontiere Sistemi Operativi (modulo di Informatica II) Conclusioni e nuove frontiere Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Definizione di sistema operativo Evoluzione futura

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

Tesi di Laurea di Mauro Brazzo

Tesi di Laurea di Mauro Brazzo Tesi di Laurea di Mauro Brazzo Inserimento facilitato di testi in un sistema mobile: progetto e implementazione Relatore: Prof. Fabio Vitali Bologna, 20 ottobre 2004 Sommario Introduzione Il problema Thesaurus

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

YOU ARE WHAT YOU CURATE COS E LA CONTENT CURATION E COME APPLICARLA

YOU ARE WHAT YOU CURATE COS E LA CONTENT CURATION E COME APPLICARLA YOU ARE WHAT YOU CURATE COS E LA CONTENT CURATION E COME APPLICARLA YOU ARE WHAT YOU CURATE INTRODUZIONE DEFINIZIONE: COS E LA CONTENT CURATION? PERCHE FARNE USO IL CONTENT CURATOR COME NON FARE CONTENT

Dettagli

Hardware delle reti LAN

Hardware delle reti LAN Hardware delle reti LAN Le reti LAN utilizzano una struttura basata su cavi e concentratori che permette il trasferimento di informazioni. In un ottica di questo tipo, i computer che prendono parte allo

Dettagli