1-by-1 black pixel for creating lines
1-by-1 black pixel for creating lines
EricGiguere.com > Articles > Qu'est-ce-que J2ME?
Printer-friendly version Set your preferences
Read my blogs on AdSense and affiliate marketing
 
 
  
Learn about these ads

Qu'est-ce-que Java 2 Micro Edition?

Par Eric Giguère
Article traduit de l'anglais par Lionel Raffin
Article publié sous le titre "What is Java 2 Micro Edition", le 28/06/2002 sur Developer.com

On connaît principalement Java en tant qu'environnement de programmation pour serveurs, centré autour des technologies qui ont permis de réaliser Java 2 Enterprise Edition (J2EE), telles les Enterprise JavaBeans (EJBs), les servlets, et les JavaServer pages (JSPs). Néanmoins, les précurseurs qui avaient adopté Java vous rappelleront que ce langage avait initialement été conçu en tant qu'environnement pour applications "côté-client". En fait, Java avait été conçu pour les appareils ménagers. Et maintenan t, avec Java 2 Micro Edition, ou J2ME en raccourci, Java retourne à ses sources. Cet article, le premier d'une série sur la programmation J2ME, est destiné à vous expliquer ce qu'est J2ME.

La plateforme Java 2

Le "Java" auquel on fait habituellement référence est connu plus formellement sous le nom de Java 2 Platform. La Java 2 Platform est subdivisée en trois éditions : Java 2 Standard Edition (J2SE), Java 2 Enterprise Edition (J2EE), et Java 2 Micro Edition (J2ME). Chaque édition de cette plateforme fournit un environnement complet pour exécuter les applications basées sur Java, incluant une machine virtuelle Java (Java virtual machine = JVM) et les classes exécutables. Chacune de ces trois éditions cible des catégories différentes d'applications exécutées par des types différents de machines. Les applications destinées aux "ordinateurs de bureau" sont développées à l'aide de J2SE, qui fournit les classes d'interface utilisateur nécessaires. Les applications destinées aux serveurs sont développées à l'aide de J2EE, qui met l'accent sur la programmation basée sur les composants et le déploiement. Quant à J2ME, il cible les ordinateurs de poche et les machines "embarquées".

Ce qui différencie chacune des éditions, c'est donc principalement l'ensemble des bibliothèques de classes définies au sein de chacune d'elles. En prenant un raccourci, vous pouvez assimiler J2ME à un sous-ensemble de J2SE, et J2SE à un sous-ensemble de J2EE. On peut exécuter le même code Java sur chacune des éditions, dès l'instant où les classes auxquelles le code fait appel est disponible dans les trois éditions. Le noeud du problème, c'est que bien entendu les machines qui fonctionnent avec J2ME, en particulier les plus petites, disposent de moins de classes que J2SE et J2EE peuvent en fournir. En fin de compte, il existe plusieurs milliers de classes exécutables dans le noyau J2SE, occupant jusqu'à vingt méga-octets d'espace, ce qui est simplement trop pour la majorité des appareils actuels et prochainement à venir.

Les diverses spécifications qu'incluent J2ME sont toutes définies au travers du Java Community Process (JCP), comme cela est fait pour J2SE et J2EE. À l'heure actuelle, il existe près de quarante requêtes distinctes de spécifications (Java Specification Requests = JSRs) concernant J2ME. La programmation pour les petites machines est sans aucun doute un sujet brûlant au sein de la communauté Java. (Pour plus d'informations, consultez le site internet JCP principal : www.jcp.org.)

Java 2 Micro Edition

Dans J2ME, l'environnement d'exécution Java est adapté aux machines "à contraintes" - machines dont les capacités sont limitées en comparaison d'un ordinateur de bureau ou d'un serveur. Pour les plus basiques des machines, ces contraintes sont assez évidentes : mémoire extrêmement limitée, petite taille d'écran, méthodes d'entrées alternatives, et processeurs lents. Les machines les plus sophitiquées ne présentent que peu, voire aucune de ces contraintes, mais elles peuvent également tirer bénéfice d'un environnement optimisé et des nouvelles interfaces de programmation définis par J2ME.

Apprendre J2ME n'est pas difficile. Dès l'instant où vous comprenez la nouvelle terminologie, cela revient essentiellement à apprendre à utiliser de nouveaux interfaces de programmation d'applications (APIs = application programming interfaces) et apprendre comment travailler en environnement restreint. (Si vous pensez que rédiger un applet est un défi, attendez avant d'essayer de faire tenir une application dans les 30K de mémoire de certains téléphones mobiles !) Vous avez la possibilité d'utiliser le s mêmes outils que ceux dont vous vous servez pour développer d'habitude, et en codant prudemment vous pouvez développer des bibliothèques de classes qui sont portables sur n'importe quel appareil ou ordinateur possédant une machine virtuelle Java (JVM).

PersonalJava et EmbeddedJava

J2ME n'est pas la première tentative d'adaptation de Java pour des environnements contraignants. Deux autres technologies, PersonalJava et EmbeddedJava, permettait d'exécuter des applications Java 1.1.x sur des appareils haut de gamme.

PersonalJava utilise les classes exécutables de base de Java 1.1 et récupère quelques nouvelles caractéristiques de Java 2. Bien que le support de certaines classes exécutables soit optionnel, une implémentation avec PersonalJava requière néanmoins deux mégaoctets de mémoire et un processeur rapide pour fonctionner, et cela ne constitue donc pas une solution pratique pour les vrais appareils à contraintes tels que les téléphones mobiles et de nombreux assistants numériques personnels.

EmbeddedJava rend optionnel le comportement à la fois de la JVM et des classes exécutables - l'implémenteur peut choisir exactement les classes et les méthodes dont il a besoin. Il existe cependant une limitation : l'environnement d'exécution Java ne peut être utilisé que par l'implémenteur et ne peut pas être démasqué à un tiers. En d'autres termes, vous pouvez l'utiliser pour écrire du code Java à l'intérieur d'un appareil, habituellement au titre de logiciel de contrôle, mais personne d'autre ne peut écrire d'applications pour cet appareil. C'est afin de préserver la nature "écrire une seul code, fonctionner n'importe où" de Java, étant donné que l'environnement EmbeddedJava permet de s'affranchir de tâches fondamentales telles que la vérification de classes et de changer les interfaces publiques des classes du noyau. EmbeddedJava représente réellement un moyen de construire une environnement d'exécution Java "privé".

PersonalJava et EmbeddedJava sont entrain d'être supprimés progressivement. Il existe une passerelle de migration de PersonalJava à J2ME comme nous le verrons plus loin dans cette série de cours, bien que la version courante de PersonalJava continue d'être supportée. EmbeddedJava n'est plus supporté car J2ME définit des environnements exécutables plus appropriés du fait de sa petite empreinte.

Quelle est la suite?

Dans le prochain article, nous examinerons les concepts du noyau de J2ME - configurations, profils, et paquetages optionnels - et quelques autres termes tels que KVM et CVM. Comme il ne vous est pas possible d'écrire une application J2ME sans connaître la configuration et le profil que vous souhaitez cibler, ou sans savoir de quels paquetages optionnels vous avez besoin, il est donc important de comprendre la terminologie avant de vous lancer dans votre première application.

Si vous ne pouvez patienter pour démarrer avec J2ME, téléchargez le kit J2ME Wireless Toolkit de Sun et parcourez la documentation approfondie concernant J2ME sur le site internet de Sun.

À suivre : Concepts du noyau de J2ME

Traduit de l'anglais avec la permission de l'auteur par Lionel RAFFIN pour le site www.smart-doc.org.

User groups have permission to reprint this article for free as described on the copyrights page.

Google Web www.ericgiguere.com   
1-by-1 black pixel for creating lines
 
Copyright ©2003-2012 Eric Giguere | Send mail about this page | About this site | Privacy policy
Site design and programming by Eric Giguere | Hosting by KGB Internet Solutions
This site is Java-powered
Other sites: The Unofficial AdSense Blog | Google Suggest Explorer | Invisible Fence Guide | Synclastic
This page was last modified on Last modified on September 10, 2003
1-by-1 black pixel for creating lines
1-by-1 black pixel for creating lines