Mobile computing
Mobile Computing, anno 2005/2006
Mobile Computing è un corso complementare aperto alle lauree triennali e specialistiche.
=== Docenti === Claudio Bettini e-mail: mailto:bettini@dico.unimi.it
Pagina personale: qui
Orari delle lezioni
Martedì | Venerdì |
---|---|
15:45-17:15 Aula Alfa | 09:00-10:30 Aula Alfa |
Orario di ricevimento dei docenti
Non è stato chiarito mi pare,quindi mandate una mail per appuntamento.
Sito del corso
Se andate qui trovate il programma del corso e il materiale didattico,per cui si deve disporre della password.
Materiale didattico
- Slides sul sito;
- Libro: M. Mallick, Mobile and Wireless Design Essentials, Wiley Technology Publishing, 2003.
Modalità d'esame e prerequisiti
- E' utile avere almeno seguito i corsi di reti di calcolatori e basi di dati;
- Si richiede la verbalizzazione dell'esame di informatica generale e programmazione java e dell'esame di Sistemi operativi: la questione non è burocratica ma atta a disincentivare la frequenza del corso a chi nn possiede certe conoscenze di base;
- La penultima lezione ci sarà un compitino e nell'ultima la presentazione di un progetto,che andrebbe risolto e discusso entro un anno dalla presentazione;
- la validità dello scritto è permanente;
- in alternativa al compitino uno può decidere di fare lo scritto e poi portare il progetto,discuterlo e fare l'orale;
- I probabili linguaggi di programmazione e mark-up usati saranno:
- XML;
- XSLT;
- HTML;
- C#.NET
- JAVA;
- probabilmente anche SQL o ASP per interazioni server/database;
Diario del corso
Lezione di Martedì 4-10-05
Argomenti trattati nella lezione di oggi:
- Abbiamo visto a grandi linee l'evoluzione dell'hardware ,che ha portato a:
- riduzione delle dimensioni delle macchine;
- evoluzione rapporto persona/macchina (molte persone singolarmente lavorano con un calcolatore,per approdare ai PC e infine più macchine al servizio di una sola persona);
- Evoluzione di Internet;
Abbiamo definito:
- Traditional Computing;
- Mobile Computing;
- Pervasive Computing;
- Ubiquitous Computing;
- Disappearing Computing;
Il Mobile Computing,per sua natura,è e sarà oggetto di forti novità e sviluppo,sia per quanto riguarda sistemi operativi,linguaggi,protocolli,architetture,algoritmi ed interfacce;
Parimenti presenta altresì difficoltà non indifferenti,quali la rapida evoluzione con il conseguente invecchiamento precoce delle tecnologie,notevole competizione,sistemi operativi immaturi e instabili e una grande eterogeneità hardware,software e di protocolli in circolo.
Abbiamo visto le sue applicazioni a livello lavorativo/aziendale/quotidiano e i ruoli professionali coinvolti in questo settore.
Lezione di Venerdì 7-10-05
Abbiamo trattato la classificazione dei dispositivi secondo certe caratteristiche:
- I/O: schermo,touchscreen,tastiera,slot di espansione,ecc..
- Connettività: globale,locale;
- Risorse di calcolo: CPU,RAM,ecc..
- Autonomia: batteria;
- Supporto applicazioni: JVM,.NET Compact Framework,ecc..
- Supporto multimediale: audio,video,ecc...
Abbiamo visto le caratteristiche dei PDA(Personal Digital Assistent):
- orientati alla gestione/scambio di dati;
- supporta solo connettività locale;
PDA-phones:
- supporto UMTS per scambio dati;
- risorse di calcolo inferiori ai PDA;
Blackberry:
- frequentemente utilizzati in USA;
- usato molto e principalmente per e-mail;
- ha una tastierina;
Tablet PC:
- più vicini ai laptop che ai dispositivi mobili;
- riconoscitore vocale e di scrittura;
- costo elevato;
- connessione locale integrata;
- SO microsoft: il costo elevato e la mancanza di applicazioni utili non ha fatto decollare il loro sviluppo,deludendo Micro$oft(n.d.A.);
- Esempio di utilizzo di PDA-phones con riconoscimento vocale in aula;
- analisi dei dispositivi in termini di vendite sul mercato:
- frammentazione del mercato;
- assenza di un leader dominante;
- frequenti novità;
- convergenza tra PDA e smart-phones;
- supporto navigazione GPS,suite Office,ecc..
- si riduce il numero di Sistemi operativi e di piattaforme di sviluppo;
- Introduzione ai sistemi operativi:
- differenze tra quelli generici e quelli per mobili;
- molto importante l'aspetto di risparmio delle risorse.
- I più usati:
- PalmOS(più stabile secondo il prof);
- SymbianOS (orientato alla telefonia);
- Windows Mobile( - stabile);
- OS in java e Linux: percentuali ridotte sul mercato;
Lezione di Martedì 11-10-05
- Osservazione dell'architettura dei sistemi operativi per mobili,in particolare:
- Windows Mobile;
- PalmOS
- Symbian
- Descrizione delle caratteristiche delle tecnologie Bluetooth,IR e Wifi, e delle reti che la utilizzano,ossia WLAN e WPAN;
Lezione di Venerdì 14-10-05
Pre-lezione: si è speso qualche parola in merito agli scioperi degli insegnanti riguardo la protesta su D.legisl. della Moratti:
- Repubblica
- Posizione ricercatori DICO,ecc.. qui
Reti geografiche wireless
- GSM: tre componenti principali:
- Mobile station(telefonino e SIM);
- BSS (Base Station Subsystem): a livello di cella,handover;
- Network Subsystem: realizza la comunicazione fra stazioni-mobili o fra mobili-mobili;
- Visione delle bande usate in europa e america,divisione dei canali in frequenze,uso degli slot di tempo;
- evoluzione porta ad aumentare la banda di trasferimento dei dati,poichè GSM assolve il suo dovere per quanto riguarda la voce ma non per i dati(lentezza,costo);
- HSCSD: circuit switched;
- GGSN;
Lezione di Martedì 14-10-05
- Descrizione dello stack di protocolli WAP,con raffronto al TCP/IP per la sua comprensione;
Lezione di Martedì 25-10-05
- confronto fra architetture thin client e smart client;
N.B.: la lezione di venerdì tratterà la programmazione lato server per queste architetture
Lezione di Venerdì 28-10-05
- Meccanismi di richiesta dati da client a server,e sua risposta tramite due metodi principali:
- Uso CGI e simili: viene eseguito un processo separato per ogni richiesta,l'output del programma viene rispedito in rete al client;
N.B.:CGI non è nè un protocollo di comunicazione nè tanto meno un linguaggio,maun sistema per definire delle vaiabili d'ambiente utilizzate dai processi; posso utilizzare i linguaggi che voglio,fra i più utilizzati troviamo perl;
- Uso di server API: si usano librerie dinamiche linkate al codice del server ed eseguito come un tutt'uno. Abbiamo vere e proprie applicazioni client e server. Il server non è iterativo ma multiconcorrente,più thread(processi leggeri) vengono lanciati per ogni richiesta;
- Abbiamo visto cosa sono:
- Java Servlet: sono tipo delle applet server-side;
- JSP (Java Server Page): le richieste di questi file producono la sua compilazione in una servlet;
vedi forum della sun per chiarimenti;
- PHP: script integrabili nel codice HTML;
Tutorial su Java Servlet e JSP: qui