Mobile computing

Da WikiDsy.
Versione del 11 dic 2005 alle 17:24 di Voodoo (discussione | contributi) (Lezione di Martedì 11-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;

N.B.: La quasi totalità dei link a pagine esterne al wikiDsy sono stati inseriti dal sottoscritto e NON dal professore. Questo per far si di integrare meglio quanto spiegato a lezione con il vasto materiale disponibile in rete.

Editaggio a cura di: --Voodoo 12:21, Nov 9, 2005 (CET)

Diario del corso

Lezione di Martedì 4-10-05

Un sito che percorrerà molti degli argomenti del corso è questo.

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: capacità di calcolo classico;
  • Mobile Computing: la mobilità è la caratteristica principale;
  • Pervasive Computing: implementazione di funzioni di calcolo e comunicazione in oggetti;
  • Ubiquitous Computing: una combinazione dell'aspetto mobile e pervasive;
  • Disappearing Computing: l'embeddedness dei dispositivi tende a farli divenire oggetti della vita quotidiana,regiscono ad eventi in relazione all'utente e al suo contesto;

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

Smartphones

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;

PCTablet 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(il più stabile secondo il prof);
    2. SymbianOS (orientato alla telefonia);
    3. Windows Mobile(il meno stabile secondo il prof.);
    4. OS in java e Linux: percentuali ridotte sul mercato;
      1. Mobilinux
  • Cosa vuol dire OEM

Lezione di Martedì 11-10-05

  • Osservazione dell'architettura dei sistemi operativi per mobili,in particolare:
    1. Windows Mobile: è un OS per dispositivi mobili(PDA e smart phones),dipendente da componenti di Windows CE,con le seguenti caratteristiche principali:
      1. struttura modulare;
      2. multitasking(supporta sottoinsieme delle Win32 API e .NET)
      3. possibilità di sviluppo attraverso piattaforme di sviluppo comuni anche per i desktop:gli ultimi due punti rendono agibile il compito di sviluppatori che non devono affrontare una lunga curva di apprendimento;
        L'ultima versione è la 5.0,sincronizzazione dei dati pc/dispostivo mobile tramite ActiveSync
    2. PalmOS:
      1. ha dominato per molto tempo il mercato dei PDA;
      2. dalla V5 è anche multitasking e multithreading
      3. le applicazioni possono includere Conduits,cioè software di sincronizzazione dati pc/dispositivo simili per funzione al corrispettivo Microsoft ActiveSync
      4. versioni principali: Garnet e Cobalt
      5. supporto telefonia,Wifi,Bluetooth,UI migliorata;
    3. Symbian:
      1. OS di riferimento per smart phones
      2. le versioni precedenti si chiamavano EPOC;
      3. supporto svariati protocolli e piattaforme di sviluppo,sicurezza,applicativi vari;
      4. home page e panoramica in flash della versione 9.0
    4. Linux:
      1. poco supportato dai produttori ma diffuso sui sistemi embedded fissi;
      2. sfrutta QT Embedded come piattaforma di sviluppo per le GUI e supporta java(come Esmertec);
  • 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:

  • Posizione ricercatori DICO,ecc.. qui

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);

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;
  2. 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 (anche se consiglio di leggersi le istruzioni di installazione nel file zip);
Guida ad IIS: qui
PHP: download Zip package (non l'installer msi,per i sistemi Windows,perchè ha limitate funzionalità rispetto al pacchetto zip)


Lezione di Venerdì 4-11-05

Introduzione all'XML


Lezione di Martedì 8-11-05

Linguaggi di markup

WAP,WML Tutorial:

XHTML,riferimenti:

XHTML-MP:

HTML:

VoiceXML:

SVG:


Lezione di Venerdì 11-11-05

Tutorial: http://www.w3schools.com/xsl/

http://www.zvon.org/xxl/XSLTreference/Output/
http://www.zvon.org/xxl/XSLTutorial/Books/Book1/
http://www.xml.com/pub/a/2000/08/holman/
Risorse varie
http://www.html.it/xslt/
http://www.topxml.com/xsl/tutorials/intro/default.asp
http://www.topxml.com/xsl/XSLTRef.asp

Tutorials:

http://www.w3schools.com/xpath/default.asp
http://www.zvon.org/xxl/XPathTutorial/General/examples.html
http://www.html.it/linguaggi_xml/xml_02.htm
Risorse varie
  • Applicare trasformazioni XSLT con PHP

Lezione di Martedì 15-11-05

Generazione dinamica con XSLT - Esercitazione


Lezione di Venerdì 18-11-05

J2ME - Prima parte


Lezione di Martedì 22-11-05

J2ME - Seconda parte


Lezione di Venerdì 25-11-05

Intervento Microsoft sulla programmazione per il .Net Compact Framework.
Sono online le slides in formato powerpoint.


Lezione di Martedì 29-11-05

  • Servizi dipendenti dal contesto

Lezione di Venerdì 2-12-05

  • ccpp: recommendation del W3C

Lezione di Martedì 6-12-05 SOSPESA

Annullata.


Lezione di Venerdì 9-12-05 SOSPESA

Annullata.