Passer au contenu

J2ME : la longue marche vers l’optimisation

La convergence tant attendue entre machine virtuelle spécifique, système d’exploitation dédié et processeur est enfin sur les rails.

“Pour les terminaux de téléphonie cellulaire, le problème n’est pas tant l’exécution des applications J2ME que leur manque de sophistication “, estime Matthew Catino, fondateur de Savaje, spécialiste de systèmes d’exploitation pour la plate-forme J2SE. Dans le cas de J2ME (Java 2 Micro Edition), l’optimisation bute sur la limitation des capacités mémoire inhérentes à ce type de terminaux. Et depuis la naissance de Java, les initiatives se sont multipliées pour résoudre ce problème, et tenter de faire de Java le langage objet de référence des terminaux mobiles.La première tentative est la mise au point d’une machine virtuelle spécifique : la KVM (“K” pour une mémoire limitée mesurable en kilo-octets). Elle est indissociable de la composante CDLC (Connected Device Limited Configuration), qui spécifie la connectivité, le modèle de sécurité et les entrées/ sorties en plus des fonctions de la KVM. Sont, par exemple, réduits le traitement des classes d’erreurs et le nettoyage de la mémoire. Ni RMI ni JNI ne sont supportés. En contrepartie, la KVM se concentre sur l’optimisation du téléchargement des classes Java.Cette première version de la KVM connaît son baptême du feu au Japon. Fin 2000, l’opérateur DoCoMo réalise le premier déploiement mondial de téléphones J2ME. Plusieurs start up s’approprient la KVM pour améliorer l’implémentation de référence de Sun. Cela passe souvent par un couplage de la KVM à un OS temps réel. Elles optimisent ainsi le développement d’applications basées sur la MIDP 1.0 (Mobile Information Device Profile), troisième composante de J2ME. De son côté, DoCoMo bloque la taille des applications à 20 Ko pour que les terminaux allouent davantage de ressources à la qualité d’affichage. Mais cette optimisation purement logicielle ne profite pas encore d’un renfort matériel. Pourtant, dès 1996, Sun lance en fanfare une ligne de trois processeurs dédiés, mais sans succès. Et pour cause : selon Bruno Delb, président de Net Innovations, “le MicroJava 701 consommait 3 watts d’énergie, contre un tiers de watt pour un processeur Strongarm !” D’autres processeurs Java, lancés depuis, n’ont guère rencontré plus de succès. Il faut dire que leur intégration fragilise l’équilibre précaire entre mémoire, espace et énergie.Aujourd’hui, l’intégration de Java à un processeur générique s’impose comme la troisième voie. Le pionnier ARM, dont les processeurs équipent déjà les terminaux mobiles, monte en puissance sur sa technologie Jazelle. Elle fait un véritable tabac auprès des fabricants de processeurs. Son atout : exécuter dans le même processeur un ARM 7 ?” et, bientôt, un ARM 9 ?”, le bytecode Java, et le code natif de l’OS. Dans le cadre du projet Monty, Sun vient justement de s’associer à ARM pour porter une nouvelle génération de machines virtuelles sur Jazelle et sur l’OS de Symbian. La boucle entre optimisation matérielle et logicielle est bouclée.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Samuel Cadogan