Java Virtual Machines per PocketPC Analisi delle implementazioni disponibili Massimo Albertin [email protected] I PDA con sistema operativo Microsoft PocketPc (PocketPc) non dispongono di una Java Virtual Machine integrata, come è possibile trovare su cellulari di ultima generazione. Per questa ragione sono disponibili in rete diverse implementazioni di JVM in versione gratuita o a pagamento. Questo documento prende in considerazione un elenco di Java Virtual Machines disponibili gratuitamente o in prova per Pocket Pc. Per ogni diversa implementazione è indicato il sito web da cui scaricare l’applicativo, le modalità di installazione ed infine una descrizione delle funzionalità con riferimenti a particolari considerazioni di natura pratica. Per le prove è stato utilizzato un palmare HP IPAQ HX-4700 con sistema operativo Pocket Pc 2003 SE. In ultima analisi è indicata una tabella riassuntiva con gli aspetti principali delle diverse implementazioni di Java Virtual Machines, seguitata da un elenco di pagine web interessanti su cui trovare informazioni utili al riguardo. MMAPI presenti all’interno di questa virtual machine permettono la sola esecuzione di audio WAV. Non ha supporto per il bluetooth, tali applicazioni vengono terminate a priori all’avvio della midlet, nel caso contengano riferimenti alle classi javax.bluetooth. 2.1.1 Installazione L’installazione avviene tramite un programma di installazione guidata che installa una parte del software su pc ed al termine esegue automaticamente ActiveSync per l’installazione su Pocket Pc. La procedura di installazione creerà una icona in programmi, chiamata MIDLet HQ. 2.1.2 Sito Web http://www306.ibm.com/software/wireless/wctme/bundle.html 1 3 Abstract Introduzione Una seiri di diverse implementazioni di JVM sono disponibili sulla rete per venire incontro alla mancanza di distribuzioni ufficiali del runtime Java per PocketPc. Sono disponibili versioni di Java Standard Edition (Java SE at a Glance), Java Personal Edition (Java ME PersonalJava) e Java Micro Edition (The Java ME Platform — the Most Ubiquitous Application Platform for Mobile Devices). La potenza di calcolo sempre crescente a disposizione sui PDA permette infatti l’esecuzione di JVM molto vicini alle JVM disponibili per Pc, permettendo quindi la realizzazione di software anche molto complessi. 2 Java Micro Edition Di seguito sono evidenziate le implementazioni di J2ME (The Java ME Platform — the Most Ubiquitous Application Platform for Mobile Devices) per PocketPC (PocketPc). 2.1 IBM Workplace Client Technology 5.7 Tale virtual machine è scaricabile dal sito dell’IBM previa registrazione. E’ una delle migliori distribuzioni J2ME per Pocket Pc disponibili al momento in rete. La jvm di IBM fornisce una utilità per la gestione delle midlet chiamata MIDLet HQ che ne permette l’installazione ed esecuzione (sempre a seguito di una installazione). Associa inoltre a tale applicativo tutti i file .jar in modo tale da porter facilitare installazione ed esecuzione delle midlet anche utilizzando l’esplora risorse del Pocket Pc. Le Java Virtual Machines per PocketPC Massimo Albertin J2SE/Personal Java Di seguito sono evidenziate le implementazioni di J2SE (Java SE at a Glance) e Java Personal (Java ME PersonalJava) per PocketPC (PocketPc). 3.1 Mysaifu 0.2.5 E’ una implementazione della J2SE per Pocket Pc 2003, conforme con lo standard Java. Sulla pagina del sito web è possibile trovare anche un elenco di librerie da affiancare alle librerie presenti all’interno della jvm quali: file compresson, memory management, Text encoding/deconding e folder select dialog box (). L’installazione inserisce una icona nei programmi per eseguire il launch delle applicazioni java che accetta file .class e .jar con possibilità di visualizzare o meno una console. Supporta sia AWT che SWING per la realizzazione di interfacce grafiche, in questo modo è possibile eseguire una applicazione progettata per PC con J2SE direttamente, ad eccezione ovviamente dei ridimensionamenti opportuni per una corretta visualizzazione. Lo sviluppo di applicazioni per questa jvm può 1 quindi avvenire tramite classi IDE di sviluppo anche visuale come Netbeans o Eclipse. Ha un supporto, seppur non completo alle JNI (Java Native Interface) con possibilità di interfacciamento ad eventuali librerie native (http://www2s.biglobe.ne.jp/~dat/java/project/jvm/jni_en. html è indicato il supporto di JNI). Inoltre sul sito, nella sezione di download purtroppo solamente in giapponese, è possibile scaricare anche le librerie java.comm per la comunicazione seriale e parallela. Essendo una J2SE (come anche le altre SE) non comprendono una implementazione per JSR-82 (Bluetooth). Sul sito, sempre nella sezione download, è possibile scaricare inoltre i sorgenti dell’intera jvm. 3.1.1 Installazione Avviene direttamente su palmare utilizzando il CAB scaricabile dal sito, viene installata una icona in programmi per avviare la virtual machine, chiamata Mysaifu JVM. 3.1.2 Sito Web http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_e n.html 3.2 Ewe Vistual Machine 1.49 Una volta installata la virtual machine utilizza un launcher per eseguire applicativi java che però prevede solo l’esecuzione di file *.class e *.ewe (estensione proprietaria), ma non file .jar. Sul sito web è presente una guida allo sviluppatore in cui sono elencate le classi implementate all’interno della jvm e alcune guide alla realizzazione delle interfacce grafiche. Fra le varie librerie disponibili c’è la possibilità di accedere al registry di sistema di gestire file .zip e di utilizzare reflection (per maggiori informazioni consultare la guida sul sito http://www.ewesoft.com/docs/EweDevelopment/index.ht m). Le funzionalità di grafica, reflection e io si trovano all’interno di appositi package differente da quelli presenti nelle j2SE classiche (ewe.io, ewe.reflect…). Le classi per questa virtual machine devono quindi essere realizzate ad hoc e non utilizzando la j2SE classica. 3.2.1 Installazione Avviene direttamente su palmare utilizzando il CAB scaricabile dal sito, al termine verrà creata una cartella con Ewe in Programmi con all’interno la virtual machine e un paio di esempi. Un volta terminata l’installazione è importante eseguire la virtual machine (Icona Ewe in Programmi/Ewe) per registrare la virtual machine nel registro. 3.2.2 Sito Web http://www.ewesoft.com/ Java Virtual Machines per PocketPC Massimo Albertin 3.3 Superwaba Virtual Machine 5.61 Sul sito è presente anche un developer kit scaricabile previa registrazione, in cui sono contenuti file di documentazione, e sorgenti dell’intero pacchetto. Le classi implementate nella virtual machine non si trovano nei classici package, ma sono completamente differenti (Es. waba.lang…) come mostrato nella documentazione in linea (javadoc) http://www.superwaba.org/doc/. La documentazione su come realizzare applicazioni da utilizzare per questa virtual machine è invece quasi inesistente. Nel developer kit sono presenti alcuni file di esempio in formato cab, con un installer che sfrutta active sync per installarli sul palmare. A seguito dell’installazione verrà poi creata una icona per l’esecuzione dell’applicazione che sfrutterà la jvm installata. L’esecuzione di applicativi con questa virtual machine sono particolarmente lenti, inoltre si notano alcuni problemi con la gestione dell’audio. Per la creazione dei cab sono presenti dei tool che generano i cab di installazione. Superwaba non esegue file jar o class direttamente ma bisogna utilizzare il developer kit per creare i file di installazione come descritto precedentemente descritta. 3.3.1 Installazione Avviene direttamente su palmare utilizzando il CAB scaricabile dal sito, viene installata una icona in programmi per avviare la virtual machine. 3.3.2 Sito Web http://www.superwaba.com.br/en/downloads.asp 3.4 Jeode Evn 1.9.3 L’installazione guidata lascia sul pc sulla quale viene effettuata anche una guida su come eseguire gli applicativi java e creare dei collegamenti che facilitino la cosa. Per l’esecuzione manuale infatti è necessario utilizzare altrimenti EVM Console in cui specificare il percorso completo dell’applicazione java da eseguire, .class o .jar che sia, tramite una sintassi di questo tipo 18#"\Windows\evm.exe" MainClass -cp \percorso\file.jar E’ supportato AWT ma non SWING 1.1.1 per quanto riguarda la parte grafica. Per poter realizzare le applicazioni eseguibili all’interno di questa jvm è necessario compilare per java 1.3, con le versioni successive si otterrà il messaggio di ClassFormatException. 2 3.4.1 Installazione L’installazione avviene tramite eseguibile di installazione da installare prima su pc e poi automaticamente su Pocket Pc tramite ActiveSync. Verrà creata una cartella in programmi con una serie di esempi e la jvm con console per l’esecuzione dei programmi java. 3.4.2 Sito Web http://www.insignia.com/ 3.5 CRE-ME 4.10 L’esecuzione dei file .jar o .class dovrebbe avvenire tramite l’applicativc Jrun o modo automatico eseguendo direttamente i file .jar da Esplora sorse del Pocket Pc, in realtà dalla prove tuate sembra non zionare correttamente. Dalle prove effettuate si è potuto ovviare al blema utilizzando la console CrEME in cui è possibile impostare a mano il percorso del jar con gli eventuali parametri di 4 esecuzione, come ad esempio -jar /percorso/file.jar Non permette l’esecuzione delle midlet in quanto si tratta di una jvm molto vicina alla J2SE e molto lontana dalla J2ME (a differenza da quanto mostrato nel sito web della software house). A questo indirizzo inoltre http://www.nsicom.com/Default.aspx?tabid=295 è possibile trovare altri package aggiuntivi per la grafica in swing (che dai test eseguiti non è sembrata funzionare) javacomm, ed RMI. 3.5.1 Installazione L’installazione avviene tramite un programma di installazione guidata che installa una parte del software su pc ed al termine esegue automaticamente ActiveSync per l’installazione su Pocket Pc. 3.5.2 Note L’installazione di questa virtual machine richiede il riavvio del Pocket Pc per poter funzionare correttamente. L’installazione crea una cartella CrE-ME in programmi con una serie di icone per l’esecuzione della jvm e un esempio. 3.5.3 Sito Web http://www.nsicom.com/Default.aspx?tabid=138 Analisi Comparativa IBM Workplace Client Technology Mysaifu Ewe Vistual Machine SuperWaba Virtual Machine Jeode EVN CrE-ME Version 5.7 0.2.5 1.49 5.61 1.9.3 4.10 Java Version MIDP 2.0 J2SE 1.5 Personal Java 1.2 Personal Java Personal Java 1.3 Personal Java 1.5 Standard SI SI NO NO SI SI Additional Pachages MMAPI JNI, COMM Registration/Type SI/Trial NO/OpenSource 5 SWING, COMM, RMI NO/Free Conclusioni Nel caso in cui sia necessaria una implementazione di Java Micro Edition la scelta è pressoché obbligata essendo disponibile praticamente solo la distribuzione di IBM. Per quanto riguarda invece le Java Personal Edition e Java Standard Edition la scelta risulta più variegata. Dalle prove effettuate la più completa e performante risulta al Mysaify il cui gruppo di sviluppo si dimostra molto attivo per le continue correzioni di bug e incremento di funzionalità. La disponibilità di librerie aggiuntive, il rispetto degli standard e la presenza sul sito del codice sorgente sono i punti forti di questa implementazione. Java Virtual Machines per PocketPC Massimo Albertin SI (per SDK) /OpenSource SI /COMMERCI ALE SI/Trial Un’alternativa seppure a pagamento viene dalla CrE-ME che come la concorrente permette l’estensione tramite di librerie di funzionalità ulteriori portando ad una JVM molto simile a quella distribuita da Sun per Pc. Per quanto riguarda le altre implementazioni analizzate risultano tutte inferiori a quelle sopra citate sia per performances che soprattutto per rispetto degli standard e completezza. 3 Riferimenti Forum on Pocket PC. (s.d.). Tratto da http://forum.pocketpcitalia.com/ IBM Workplace Client Technology, Micro Edition. (s.d.). Tratto da http://www14.software.ibm.com/webapp/download/produ ct.jsp?s=p&id=DVDE-634P22 Java ME PersonalJava. (s.d.). Tratto da http://java.sun.com/products/personaljava/ Java SE at a Glance. (s.d.). Tratto da http://java.sun.com/javase/ Java Support on Pocket PC. (s.d.). Tratto da http://www.comp.lancs.ac.uk/computing/users/fittond/ppc java.html Mikko, K. (s.d.). Java On Pocket PC Devices. Tratto da http://www.informit.com/articles/article.asp?p=344816&r l=1 PocketPc. (s.d.). Tratto da http://www.microsoft.com/windowsmobile/pocketpc/defa ult.mspx The Java ME Platform — the Most Ubiquitous Application Platform for Mobile Devices. (s.d.). Tratto da http://java.sun.com/javame/index.jsp Java Virtual Machines per PocketPC Massimo Albertin 4