Mobile computing

Da WikiDsy.
Versione del 30 ott 2005 alle 15:53 di 82.60.25.31 (discussione) (Lezione di Venerdì 28-10-05)


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;
  • 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:
    1. PalmOS(più stabile secondo il prof);
    2. SymbianOS (orientato alla telefonia);
    3. Windows Mobile( - stabile);
    4. 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:
    1. Windows Mobile;
    2. PalmOS
    3. 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:

Reti geografiche wireless

  • GSM: tre componenti principali:
    1. Mobile station(telefonino e SIM);
    2. BSS (Base Station Subsystem): a livello di cella,handover;
    3. 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:
    1. Uso di 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, ma un sistema : per definire delle variabili d'ambiente utilizzate dai processi; posso utilizzare i linguaggi che : voglio, fra i più utilizzati troviamo perl;
  1. 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 qualcosa di simile alle applet ma eseguite server-side;
    • JSP (Java Server Page): le richieste di questi file producono la loro compilazione in una servlet; vedi forum della sun per chiarimenti;
    • PHP 5.0.5: può essere usato per
    - Server-side scripting
    - scripting a linea di comando
    - applicazioni grafiche client-side 

Tutorial su Java Servlet e JSP: qui
Sito Apache: qui
Guida su Apache: HTML.it
Installazione modulo PHP su Apache: qui
Guida ad IIS: qui
PHP: download Zip package