| | | |
MicroJava per il
mondo mobile
Definizioni
J2ME
(Java 2 Mobile Edition) è un particolare subset di Java (deriva da
Java 2 Standard Edition J2SE), ottimizzato e "leggero" per girare su
cellulari e Pda. Si affianca quindi a J2EE - Java 2 Enterprise Edition, dedicato
alle applicazioni server. Consente
di scaricare un'applicazione "MIDlet" di pochi kbyte (alcuni
terminali permettono ad esempio applicazioni di max 10KB ciascuna, ed 50 applicazioni
totali sul terminale): tali applicazioni vengono installate "in automatico"
sul device e possono essere utilizzate anche off-line. Oltre
che per le limitazioni di memoria e di potenza di elaborazione, J2ME deve adattarsi
anche a display particolarmente ridotti, ad esempio un piccolo telefono cellulare
può disporre di 12.288 pixel (96 ×128), oppure un PDA di 20.000. Il
tutto si basa una Java Virtual Machine, presente nei terminali, che interpreta
ed esegue l'applicazione. Nello schema seguente sono evidenziati in particolare
le aree J2ME, che comprendono due livelli di configurazione (CDC e CLDC) ed inoltre
il livello "Profile" MIDP.

Schema delle edizioni Java [Tratto da the Basics
of J2ME - Practice Hall PTR]
Le
due configurazioni sono legate a differenti scenari, e comunque sono in forte
evoluzione:
Connected
Device Configuration (CDC)
Per dispositivi "things that you plug
into a wall, cioè collegati in rete, possibilmente always on e ad
alta banda, ad es. i palmari
512 kB minimo di memoria per l'applicazione Java (codice)
256 kB minimo di memoria "runtime", allocata dall'applicazione
Su tali dispositivi può ad esempio essere incluso PersonalJava.
Connected Limited Device Configuration (CLDC)
Per dispositivi
mobili, "things that you hold in your hand", caratterizzati da connettività
wireless, ridotta banda e accesso discontinuo
128 kB di memoria
per Java
32 kB di memoria "runtime"
interfaccia
utente ridotta
bassi consumi, alimentazione a batteria
Il
profilo MIDP - Mobile Information Device Profile - è una estensione,
una serie di librerie che aiutano a sviluppare applicazioni tramite API predefinite
per interfacciarsi con il terminale (modalità di input, gestione degli
eventi, memoria persistente, timer, interfaccia video...). Oltre a MIDP, sullo
strato CLDC, si appoggiano anche KJava e EmbeddedJava. KVM
è la Java Virtual Machine che viene installata sui terminali, caratterizzata
da un ridotto fabbisogno di memoria (40/80 kB + 20/40 kB dinamica) e ridotte potenze
di elaborazione (processori 16bit a 25MHz).
I
vantaggi rispetto a modalità preesistenti come il Wap e Sim Toolkit,
risiedono in tre punti principali: - la
possibilità di sfruttare le applicazioni in locale, residenti e funzionanti
anche off-line
- la
capacità elaborativa
- la
flessibilità nell'installazione di nuove applicazioni
Lo
sviluppo in Java, inoltre, è facilmente derivabile dallo sviluppo in C++,
si possono cioè riconvertire risorse e applicazioni agevolmente. Inoltre
l'interfacciamento con le piattaforme web - soprattutto se derivate da Apache,
come IBM WebSphere e iAnyware - è pressochè immediato. Probabilmente
è proprio su questa seconda parte che vi sono più possibilità
di business, non tanto quindi sull'applicazione residente sul device.
Limiti
Sebbene
si tratti di uno standard aperto, non mancano alcune peculiarità che
possono causare problemi di interoperatività tra terminali differenti.
Siemens, ad esempio, ha definito una serie di librerie proprietarie che risiedono
solo sui propri terminali, e che permettono di controllare alcune funzionalità
del telefono (ad esempio la vibrazione).
Oltre
alle librerie proprietarie legate al terminale, vi è la disponbilità
di differenti Virtual Machine (gli interpreti delle applicazioni Java), se
ne citano due a titolo di esempio: - Aplix
JBlend, diffuso in Giappone, non solo sui telefonini ma anche su Pda e videocamere
(Sony, Sharp, Toshiba, Casio...)
- PersonalJava,
legato alla piattaforma Symbian e appoggiato su CDC.
Le
capacità multimediali sono attualmente limitate, infatti non è prevista
ad esempio la possibilità di riprodurre file audio. Al momento non
è possibile, soprattuto per ragioni di sicurezza, permettere ad applicazioni
MIDlet J2ME l'accesso alle informazioni sulla alla Sim o sui parametri di configurazione
del terminale.
Applicazioni
Per
far fronte ad applicazioni che richiedono l'appoggio di uno o più database,
esistono due possibilità:
- utilizzare
il terminale come semplice interfaccia client - quindi come un browser
- verso un sistema server remoto dove risiedono i dati. Uno dei vantaggi, in questo
caso, è il ridotto impegno nell'aggiornamento del software sul device.
Non risulta inoltre critica una evenutale rottura o sostituzione del terminale,
per questo può essere adatta a personale ad elevata mobilità sul
territorio, come trasportatori o addetti alla riparazioni.
- disporre
di applicazioni - ad esempio su Pda - che lavorano su un database locale,
sincronizzato con quello remoto. In questo caso sono disponibili versioni ridotte
di DB, come l'UltraLight di Sybase o DB tool di IBM, che in pochi KB raccolgono
le funzionalità principali. In questo caso è importante che la suite
di sviluppo SDK preveda una serie di librerie pronte per l'interfacciamento con
tali DB.
Applicazioni
meno complesse, per l'utilità personale e di taglio consumer, già
si possono trovare in internet, in versione beta, free o shareware. Esempi di
questi software in Java per mobile - rappresentati nelle varie figure presenti
nel testo - sono:
- applicazioni:
gestione password, calcolatrice, gestione portafoglio, dieta, orologio internet,
cronometro, orologio analogico, bioritmi, blocknotes, disegno...
- networking:
browser html, client telnet, gestione email...
- grafica:
screensaver, effetti vari, animazioni, frattali...
- giochi:
scacchi, pacman, dama, arkanoid, F1..
- utility:
test del sistema (memoria, versione), tastiera a video, test dei colori...
 Terminali
I
produttori in prima linea sono: Casio, Danger, Mitsubishi, Fujitsu, nec, Matsushita/Panasonic,
Sony, Hitachi, Toshiba, Kyocera, LG, Motorola (Accompli e prossimamente anche
V60 e V66), Nokia (con il 7650 e il Communicator), Samsung, Sendo (con lo Z100)
, Siemens (modello SL45).
Reti
Le reti di trasporto sono le più varie: GSM, GPRS, CDMA, CDMA
ONE, CDMA2000 1X, PDC, IDEN, W-CDMA.
Link
di approfondimento
Consulta anche: i vincoli per
le applicazioni mobile
| |