|
Scarica la tesi in formato .pdf. Presto disponibile anche in .html Presentazione di Java 2 Micro Edition La grande diffusione di dispositivi di comunicazione mobili quali telefoni cellulari, videotelefoni, cercapersone, palmari, agende elettroniche ed altro ancora ha reso necessario lo sviluppo di una piattaforma comune per lo sviluppo di applicazioni. Tutti questi dispositivi sono accomunati da limitate risorse hardware, da funzionalità spesso ristrette e da un'autonomia limitata nel tempo. Sun Microsystem ha quindi sviluppato J2ME (Java 2 Micro Edition) ovvero un ambiente di sviluppo per dispositivi mobili e non solo in grado di offrire un alto grado di flessibilità, di portabilità e di sicurezza. J2ME è stato derivato da J2SE (Java 2 Standard Edition), sul quale è stato effettuato un lavoro di ottimizzazione e alleggerimento al fine di consentire il funzionamento su apparecchiature mobili di ultima generazione. Un dispositivo che supporta J2ME consente di scaricare un'applicazione "MIDlet" di pochi kbyte (in alcuni casi sono permesse applicazioni di massimo 10KB ciascuna e 50 applicazioni totali sul terminale). Tali applicazioni, utilizzabili anche off-line, vengono installate sul device automaticamente o attraverso un trasferimento manuale con cavi di collegamento e applicazioni specifiche per la sincronizzazione. Oltre che per le limitazioni di memoria e di potenza di elaborazione, J2ME deve adattarsi anche a display particolarmente ridotti, ad esempio un piccolotelefono cellulare può disporre di 12.288 pixel (96 ×128), oppure un PDA di 20.000 anche se il continuo progresso tecnologico in questo settore tende ad abbattere queste limitazioni con schermi sempre più ampi e con sempre più colori. L'esecuzione di una applicazione si basa su una Java Virtual Machine, presente nei terminali, che interpreta ed esegue il codice. J2ME comprende due livelli di configurazione: CDC (Connected Device Configuration) e CLDC(Connected Limited Device Configuration) che si differenziano per le risorse hardware a disposizione. L'idea avuta da Sun nello sviluppo di J2ME è quella di fornire una base comune per tutti i dispositivi aventi un set limitato di API sufficiente per fornire le funzionalità basilari per un qualunque apparecchio con limitate risorse di configurazione. Potranno poi essere i produttori dei dispositivi ad aggiungere funzionalità al CLDC, sotto forma di librerie, generando così un'estensione della configurazione. I vantaggi di questa tecnologia rispetto a modalità preesistenti come il Wap e Sim Toolkit, sono esplicabili in tre punti fondamentali: - la possibilità di sfruttare le applicazioni in locale, residenti e funzionanti anche off-line
- la capacità elaborativa
- la flessibilità nell'installazione di nuove applicazioni la flessibilità nell'installazione di nuove applicazioni
- la flessibilità nell'installazione di nuove applicazioni
la flessibilità nell'installazione di nuove applicazioni la flessibilità nell'installazione di nuove applicazioni Va inoltre ricordato che lo sviluppo in Java è derivabile da quello in C++, è quindi di estrema facilità la conversione di risorse e applicazioni C++ preesistenti in codice Java. Confrontando le API's di J2ME con quelle di J2SE si nota un notevole snellimento anche se molte delle classi di largo uso (Vector, Stack…) sono rimaste inalterate, con le dovute limitazioni del caso; sono state inoltre completamente eliminate tre utili funzionalità: - numeri in virgola mobile, dato che non si può essere certi che un CLDC abbia hardware necessario
- JNI (Java Native Interface), per un eccessivo consumo di memoria
- introspezione, quindi serializzazione ed RMI non supportati.
Stack J2ME Al fine garantire flessibilità nel variegato mondo dei dispositivi embedded, l’architettura J2ME è modellata per essere modulare e scalabile. Queste caratteristiche sono ottenute da J2ME con la definizione di tre strati di software, che si vanno ad aggiungere al sistema operativo del dispositivo: Kilobyte Virtual Machine (KVM): la macchina virtuale Java, adattata per il sistema operativo di un particolare dispositivo. Configurazione: definisce le caratteristiche minime di hardware per una categoria di dispositivi, ognuna caratterizzata da particolari parametri di memoria e potenza di processore. Una configurazione definisce anche le caratteristiche del linguaggio Java e della virtual machine nonché la libreria di classi che ci si aspetta di trovare su dispositivi della medesima categoria; Profilo: è lo strato più esterno ed è costruito al di sopra dello strato configurazione. Il suo scopo è di garantire l’interoperabilità delle applicazioni all’interno di una certa famiglia di dispositivi, definendo un set standard di API per tale fascia di prodotti.
Un'applicazione, scritta utilizzando un determinato profilo, girerà su tutti i dispositivi che supportano tale profilo. I profili definiscono librerie più specifiche di quelle delle configurazioni, possono anche coesistere su una configurazione più profili contemporaneamente. 
Fig. 1 Stack J2ME Potenzialità relative alla connettività I dispositivi mobili hanno per loro natura una predisposizione alla interconnettività e le loro funzionalità possono essere notevolmente ampliate grazie alla tecnologia J2ME. Le applicazioni dei terminali mobili richiedono oggigiorno di scambiare dati con server remoti o con altre apparecchiature ed è per questo che Sun ha messo a disposizione delle API in grado di consentire lo svolgimento di queste attività. Sono presenti non solo librerie per il semplice scambio di dati con altri dispositivi ma, dalla versione 2.0 della tecnologia, è stato implementato anche il protocollo Https per le comunicazioni sicure. Grazie a questa novità si apre la strada per l'implementazione di applicazioni inerenti al commercio elettronico e alla finanza, le quali vanno ad affiancare quel settore di programmi che sfruttano la connettività per offrire servizi semplici che non richiedono particolare protezione dei dati, come ad esempio chat, giochi on-line, navigazione internet ed altro. Sono inoltre presenti librerie aggiuntive a quelle presenti di default chiamate WMA (wireless messaging API) che consentono di sfruttare tutte le potenzialità del protocollo SMS (short message system) per lo scambio di messaggi di testo e non solo.
|