Introduzione
Lo
sviluppo di applicazioni su dispositivi wireless può
essere effettuato utilizzando diverse tecnologie. Per
fornitori e programmatori è costante il confronto
con le applicazioni Symbian based e quelle J2ME.
A grandi linee possiamo dire che Symbian è un
potente sistema operativo utilizzato da diversi telefonini
dellultima generazione, mentre J2ME (Java 2 Micro
Edition) non è altro che una versione ridotta
del Java 2 Standard Edition.
Sviluppare applicazioni Symbian equivale a produrre
software dallelevata potenzialità ma solo
per dispositivi con sistemi operativi Symbian, mentre,
sviluppare applicazioni J2ME, equivale a produrre software
certamente meno potente ma in grado di funzionare su
tutti i dispositivi dove risiede una particolare Java
Virtual Machine.
Senza entrare troppo nel dettaglio osserviamo che con
Symbian puntiamo molto su potenza e flessibilità,
mentre con J2ME puntiamo su portabilità e compatibilità.
Generalmente su tutti i telefonini Symbian è
presente una particolare Java Virtual Machine, ma non
tutti i dispositivi che presentano al loro interno una
Java Virtual Machine sono dotati di sistema operativo
Symbian.
Prima di entrare nellanalisi delle differenze
tra le due tecnologie, descriviamo più nello
specifico il Symbian. Per quanto riguarda J2ME affronteremo
in particolar modo la sua evoluzione, durante la quale
si è avvicinato molto alle potenzialità
del Symbian.
Panoramica
su SYMBIAN OS
Symbian OS è un sistema operativo aperto, adottato
come standard dalle principali aziende mondiali produttrici
di dispositivi per la telefonia mobile (cellulari, smartphone,
PDA).
Il sistema operativo è stato progettato per supportare
i requisiti specifici del trasporto dati per i dispositivi
mobili di nuova generazione 2G, 2,5G e 3G.
Lidea di realizzare una piattaforma leggera e
flessibile che potesse stare in un cellulare nasce nel
1998 dai leader dellindustria della telefonia
mobile Ericsson, Motorola, Nokia e dal 1999 Panasonic.
Il punto di partenza fu la creazione di un sistema operativo,
chiamato EPOC, sviluppato dalla Psion Software. Più
tardi EPOC diventò Symbian OS e la Psion Software
diventò Symbian.
Il primo vero cellulare basato su Tecnologia Symbian
era il modello di Ericsson R380 basato su Symbian Quartz
versione 5.x, un sistema chiuso (cioè non programmabile
al di fuori della casa madre).
Attualmente la piattaforma Symbian vanta una serie di
terminali sempre più vasta, per citarne solo
alcuni si va dagli ultimissimi Nokia (N70, N71, N80,
N91, N92) al Samsung SGH-D720, al Sony Ericsson P990,
ma comprende dispositivi di molte altre case: BenQ,
Motorola, Sendo, Jujitsu, Panasonic, Foma, Siemens,
Arima, Lenovo. Nella prima metà del 2005 i telefoni
Symbian nel mondo sono arrivati a 39 milioni!
Lultima versione del Symbian OS è la 9.2.
Vediamo quali sono le sue principali caratteristiche
(vedi Fig.1):
Gestione della sicurezza: presenza di un meccanismo
di difesa basato sul monitoraggio delle risorse allocate;
infrastruttura che permette alle applicazioni di memorizzare
dati in maniera protetta; possibilità di crittografia
completa e gestione dei certificati, protocolli sicuri
(HTTPS, SSL e TLS) e WIM framework.
Una ricca suite di applicazioni di base con programmi
per la gestione di contatti, appuntamenti, messaggistica,
OBEX per lo scambio di appuntamenti (vCalendar) e business
cards (vCard), API integrate per la gestione di dati,
testo, tastiera e grafica.
Supporto Java esaustivo: sono supportati gli ultimi
Java standard, inclusi CLDC 1.1, MIDP 2.0, JTWI (JSR185),
Mobile Media API (JSR135), Bluetooth (JSR082), Wireless
Messaging (JSR120), Mobile 3D Graphics API (JSR184),
Personal Information Management e FileGCF API (JSR075),
Content Handling API (JSR 211) .
Avanzate funzionalità real time.
Supporto per lhardware più recente: supporta
le più nuove architetture di CPU, periferiche,
memorie interne ed esterne.
Gestione completa dei messaggi: Internet email basate
su POP3, IMAP4 e SMTP, incluso il supporto degli allegati.
Supporto anche per IMAP4 IDLE command. Il formato email
è basato su MIME. Supporto per SMS, EMS, MMS.
Avanzate funzionalità multimediali: supporto
per la registrazione video, playback, streaming e conversione
delle immagini.
Grafica avanzata: accesso diretto a schermo e tastiera,
API per l'accelerazione grafica, aumentata flessibilità
della UI (user interface) con supporto per visualizzazioni
multiple e simultanee.
Protocolli di comunicazione che includono gli standard
TCP/IP (IPv4/IPv6), WAP, IrDA, USB Bluetooth.
Supporto esteso per i protocolli di comunicazione: TCP/IP
(IPv4/v6), RTP, RTCP, SIP, WAP 2.0 (Connectionless WSP
e WAP Push); IrDA, Bluetooth e USB; supporto per multi-homing
e link layer Quality-of-Service (QoS) su reti GPRS e
UMTS.
Ottimizzato per telefoni cellulari: Symbian OS v9.2
è ottimizzato per il mercato 3G con supporto
per WCDMA (3GPP R5), CSD, EDGE CSD, GPRS, EDGE GPRS,
IS-95, 1xRTT, SIM, RUIM, UICC Toolkit, 3GPP R5 IMS,
Smart Card API.
Specifiche funzionalità CDMA, incluso roaming
su rete CDMA, third party OTA API, NAM programming mode,
CDMA SMS stack, NAI handset identification, interfacce
per abilitare Mobile IP, bridge e router gateway.
Supporto internazionale conforme allo standard Unicode
3.0
Sincronizzazione dati user-friendly: sincronizzazione
over-the-air (OTA), sincronizzazione PC-based (su Bluetooth,
infrarossi e USB) grazie alluso di OMA Data Sync
1.2; PC Connectivity framework che consente di trasferire
file e sincronizzare dati PIM.
Figura
1
Architettura Symbian OS v9.2
Il
linguaggio di programmazione nativo per applicazioni
Symbian è il C++. Symbian utilizza una propria
implementazione del C++, ottimizzata per dispositivi
dalla memoria limitata, ad esempio non è supportata
la STL (Standard Template Library). Le API pubbliche
C++ permettono agli sviluppatori laccesso completo
alle funzionalità del dispositivo di basso livello,
sopra descritte.
La maggior parte dei fornitori fornisce agli sviluppatori
degli SDK, mentre come ambienti di sviluppo si possono
utilizzare Metrowerks CodeWarrior, Borland C++ Mobile
Edition oppure Microsoft Visual C++ 6.0.
J2ME
rincorre SYMBIAN
Spenderemo poche parole sulle origini e sulle caratteristiche
della piattaforma J2ME, in quanto altri articoli pubblicati
su questo sito vi illustrano nello specifico la tecnologia
in questione.
In questo ambito vogliamo invece descrivere levoluzione
di J2ME negli anni, dimostrando come essa sia andata
spesso di pari passo con quella del Symbian OS a cui
asintoticamente va avvicinandosi.
Dopo i primi tentativi di offrire agli sviluppatori
un set di API Java per dispositivi mobili (si ricordino
PersonalJava e JavaPhone API), nel 1999 Sun annuncia
la nascita della Micro Edition.
Da subito lidea di un Java light,
strumento con il quale diffondere applicazioni sul mercato
di massa, risulta molto appetibile per i costruttori.
Lo stesso consorzio Symbian si accorge della forza di
J2ME e include il MIDP 1.0 nel Symbian OS v6.0 realizzato
nel 2002. Ma, sebbene MIDP 1.0 avesse entusiasmato non
poco la Wireless Java Community, fu subito evidente
il collo di bottiglia di non poter accedere da una MIDlet
alle funzionalità tipiche degli smartphone, cosa
che era possibile utilizzando le API Symbian. Inoltre
la tanto sventolata portabilità, soprattutto
con MIDP 1.0, fu un vantaggio solo teorico, in quanto
gli sviluppatori sanno bene che passando da un modello
ad un altro di terminale mobile, non solo si dovevano
apportare modifiche a livello di UI, ma spesso una semplice
connessione http non funzionava più.
Di conseguenza si cominciò a lavorare al MIDP
2.0 e ad una serie di API aggiuntive.
Il MIDP 2.0 comincia ad essere uno strumento sufficientemente
completo, in quanto offre un meccanismo di sicurezza,
nuove UI API, Game e Audio API, Push Registry.
Accanto al MIDP 2.0 package opzionali quali MMAPI (Mobile
Media API), WMA (Wireless Messaging API), JABWT (Java
API for Bluetooth Wireless Technology), offrono nuove
funzionalità per il supporto di video e immagini
e la gestione della videocamera, per inviare e ricevere
SMS, per accedere allo stack Bluetooth. Tutte queste
API opzionali insieme al MIDP 2.0 vengono offerte da
Symbian OS v7.0.
Da questo momento in poi lo sviluppo di nuove funzionalità
su J2ME subisce unaccelerazione, nascono di continuo
nuove JSR che mirano non solo a colmare il gap con le
applicazioni native ma anche a rendere più facilmente
programmabili alcune funzionalità.
Nascono così Mobile 3D Graphics per la grafica
tridimensionale, File Connection API per laccesso
al file system, Personal Information Management per
laccesso alle informazioni personali come la rubrica,
Content Handler API, Web Services API (parsing XML,
RPC messaging, SOAP), Security and Trust Services API
(sicurezza, crittografia, firma digitale, accesso a
Smart Card), SIP API (instant messaging, presence, chatting,
gaming), WMA 2.0 (oltre agli SMS supporto anche per
MMS), Location API, ecc.
Le versioni 8.0 prima e 9.0 dopo del Symbian OS offrono
man mano tutte queste API, funzionanti sopra la CLDC
1.1 VM. Del resto allinterno dei gruppi di esperti
che si occupano delle JSR J2ME, la maggioranza sono
ormai rappresentanti del consorzio Symbian, Nokia in
primis.
Nel grafico in Fig. 2 possiamo vedere come le funzionalità
di J2ME siano sempre maggiori col passare degli anni
e con il progredire del Symbian OS, che risulta essere
ormai il maggior aggregatore di risorse Java.
Figura
2
Evoluzione delle funzionalità di J2ME in funzione
del Symbian OS
Intanto
le implementazioni Java risultano ora totalmente compatibili
con le specifiche Java Technology for the Wireless
Industry (JTWI, JSR 185). JTWI è uniniziativa
del JCP per definire un set minimo di API e di funzionalità
di cui ogni telefono deve disporre. La release 1 di
questa specifica prevede che il set minimo comprenda
MIDP 2.0, CLDC 1.0, WMA e MMA
Anche le performance delle applicazioni Java sono andate
migliorando nel tempo, grazie alla compilazione adattativa
dinamica, allaccelerazione hardware degli interpreti
di byte code, allottimizzazione della grafica
e dellinterfaccia nativa. Allo stesso tempo anche
le velocità di clock sono aumentate. In poche
parole le performance di J2ME sono migliorate con levoluzione
del sistema operativo Symbian OS (vedi Fig. 3), di 40
volte rispetto a quelle originali!
Figura
3
Evoluzione delle performance di J2ME in funzione del
Symbian OS
Recentemente
Sun Microsystems ha annunciato che sono 250 milioni
i telefoni nel mondo che supportano la tecnologia Java!
Dopo quello che abbiamo detto possiamo riassumere quella
che è la storia delle differenze, se vogliamo
di vantaggi e svantaggi, nello sviluppo di applicazioni
J2ME e Symbian: inizialmente Symbian accanto alla flessibilità
e alla potenza caratteristiche di un sistema operativo
presenta il punto debole di una scarsa diffusione sul
mercato di massa; daltro canto Java, grazie alla
sua peculiare portabilità, si pone come veicolo
di diffusione delle applicazioni mobili su moltissimi
dispositivi. A creare difficoltà allo sviluppo
di Java interviene da una parte limpossibilità
di poter creare applicazioni che utilizzino le funzioni
native del telefono e dallaltra il fatto che la
portabilità è solo virtuale, a livello
di UI i telefoni sono diversi tra di loro e le implementazioni
proprietarie del MIDP risultano spesso differenti.
Nel corso degli anni J2ME tende a realizzare ciò
che per Symbian è già realtà e,
anzi, laddove J2ME è offerto dal Symbian OS,
si può notare come J2ME si avvantaggi dei progressi
del sistema operativo.
Possiamo così sintetizzare i benefici che Symbian
OS ha apportato a J2ME:
Robustezza: Symbian OS è pensato per essere attivo
24 ore al giorno, 7 giorni su 7. Lintegrità
dei dati è il vantaggio maggiore dei telefoni
Symbian. Java si poggia su queste solide basi!
Funzionalità: come detto prima molte delle funzionalità
offerte da J2ME e implementate in diversi package sono
incluse nel sistema operativo Symbian.
Firsr class citizens: le applicazioni Java
e le MIDlet sono first class citizens su
Symbian OS. Esse sono installate e caricate come applicazioni
native, possono utilizzare componenti UI native che
ne facilitano la portabilità.
Performance: Symbian precarica le classi
Java di sistema permettendo una diminuzione dei tempi
di start-up delle applicazioni e rendendo disponibile
alle applicazioni più memoria.
Conclusioni
Dallanalisi che abbiamo fatto possiamo concludere
come, allo stato attuale, J2ME sia diventato uno strumento
di sviluppo completo, che offre moltissime delle funzionalità
messe a disposizione dal Symbian OS.
E anche da evidenziare che J2ME si è appoggiato
a Symbian traendone miglioramenti in termini di performance
e robustezza. Symbian invece trae vantaggio dal fatto
che includere J2ME nel suo core rende il sistema operativo
più vendibile. Non dimentichiamo
infatti che, ad esempio, per i leader del mobile gaming
conviene, per diffondere i propri prodotti, realizzarli
utilizzando una tecnologia indipendente dal sistema
operativo, e cioè Java. Del resto attualmente
i telefoni con supporto Java nel mondo sono 250 milioni
contro i 39 milioni che montano Symbian OS.
Il futuro prevedibilmente porterà Java su tutti
i terminali, daltro canto Symbian OS dovrà
lottare con un gigante che si sta affacciando sul mondo
del mobile: Windows!
Bibliografia
[1] http://java.sun.com/j2me/index.jsp
[2] http://www.symbian.com
Vincenzo
Viola è nato a Formia (LT) il 03/11/1977, laureato
in Ingegneria delle Telecomunicazioni presso lUniversità
Federico II di Napoli. Lavora a Roma, come progettista
software per una Mobile Company che offre la sua consulenza
ai gestori di telefonia e alle major del settore ICT.
|