Programmation J2ME Embarquée Chapitre 1 : Présentation de la plate-forme J2ME
AU 2012-2013 1
Présentation de la plate-forme
J2ME / Java ME
J2ME est la plate-forme Java pour développer des applications sur des appareils
mobiles tels que des PDA, des téléphones cellulaires, des terminaux de points de
vente, des systèmes de navigation pour voiture, etc.
C'est une sorte de retour aux sources puisque Java avait été initialement développé
pour piloter des appareils électroniques avant de devenir une plate-forme pour le
développement et l'exécution des applications polyvalentes.
Un environnement J2ME est composé de plusieurs éléments :
Une machine virtuelle dédiée tenant compte des ressources limitées du
matériel cible ;
Un ensemble d'API de base ;
Des API spécifiques.
Pour répondre à la plus large gamme d'appareils cibles, J2ME est modulaire grâce à
trois types d'entités qui s'utilisent par composition :
Les configurations : définissent des caractéristiques minimales d'un large sous
type de matériel, d'une machine virtuelle et d'API de base ;
Les profiles : définissent des API relatives à une fonctionnalité commune à un
ensemble d'appareils (exemple : interface graphique, etc.)
Programmation J2ME Embarquée Chapitre 1 : Présentation de la plate-forme J2ME
AU 2012-2013 2
Les packages optionnels : définissent des API relatives à une fonctionnalité
spécifique dont le support est facultatif.
1. Historique de la plate-forme
Le langage Java a été développé à son origine pour la programmation d'appareils
électroniques de grande consommation (langage Oak par James Gosling in 1991).
Cependant au fil des années, Java a évolué pour être principalement utilisé pour le
développement d'applications standalone et serveurs. La plate-forme Java ME peut
ainsi être vue comme un retour aux buts originaux de Java.
Historiquement, Sun a proposé plusieurs plateformes pour le développement
d'applications sur des machines possédant des ressources réduites, typiquement
celles ne pouvant exécuter sur une machine virtuelle de type JVM répondant aux
spécifications complètes de la plate-forme Java SE.
JavaCard (1996) : pour le développement sur des cartes à puces ;
PersonnalJava (1997) : pour le développement sur des machines possédant au
moins 2Mo de mémoire ;
EmbeddedJava (1998) : pour des appareils avec de faibles ressources ;
En 1999, Sun propose de mieux structurer ces différentes plateformes sous
l'appellation J2ME (Java 2 Micro Edition). En 2000, la plate-forme J2ME est créée pour
le développement d'applications sur appareils mobiles ou embarqués tels que des
téléphones mobiles, des PDA, des terminaux, etc. : elle est donc la descendante des
différentes plateformes antérieures relatives aux appareils mobiles. Seule la plate-
forme JavaCard n'est pas incluse dans Java ME et reste à part.
Java ME cible de très nombreux appareils électroniques possédant différentes
caractéristiques dans une même plate-forme.
2. Présentation de J2ME / Java ME
La plateforme Java Mobile Edition (J2ME/Java ME) cible le marché des appareils
électroniques et embarqués tels que les pagers, les téléphones cellulaires, les PDA, les
set top boxes, etc. Elle est composée de plusieurs éléments :
Des spécifications (JSR « Java Specification Requests ») ;
Des machines virtuelles ;
Des API dédiées ;
Des outils pour le développement, le déploiement et la configuration.
La plateforme Java ME cible des appareils électroniques mobiles ou embarqués dont
les caractéristiques peuvent être particulièrement différentes et qui représentent un
nombre très important d'appareils différents. La grande difficulté est donc de définir
Programmation J2ME Embarquée Chapitre 1 : Présentation de la plate-forme J2ME
AU 2012-2013 3
une plateforme qui propose des services pour le plus grand nombre d'appareils
possible.
La seule solution pour répondre à cette problématique est de rendre la conception de
la plate-forme modulaire. L'ensemble des appareils sur lequel peut s'exécuter une
application écrite avec J2ME est tellement vaste et disparate que J2ME est composé
de plusieurs parties : les configurations et les profiles qui sont spécifiés par le JCP.
J2ME propose donc une architecture modulaire.
J2ME définit deux grandes familles d'appareils :
Appareils à fonctionnalités dédiées ou limitées : ressources et interface
graphique limitées, peuvent se connecter par intermittence au réseau
(téléphone mobile, agenda électronique, PDA, pagers, etc.) ;
Appareils proposant une interface graphique riche, possédant une connexion
continue au réseau (PDA haut de gamme, smartphone, set top boxes, système
de navigation, etc.) ;
La modularité de la plate-forme est assurée par trois concepts :
Configuration : définit une spécification de la plate-forme Java pour une des
deux familles définies, une machine virtuelle et des API de base ;
Profile : définit des API pour des fonctionnalités communes pour une
catégorie d'appareils similaires. Un profile est définit pour une configuration
sur laquelle il s'appuie et peut s'appuyer un autre profile ;
Package optionnel : définit des API pour des fonctionnalités spécifiques.
Java ME ne définit pas un nouveau langage de programmation mais adapte la technologie
Java aux appareils mobiles et embarqués. En fait, Java ME tente de conserver autant que
possible la compatibilité avec Java SE. Pour répondre aux besoins spécifiques des
appareils mobiles, Java ME remplace certaines API ou en propose de nouvelles.
Une application Java ME est organisée en plusieurs couches logicielles :
Application Java ME
Packages optionnels, API tiers
Profiles
Configuration
Machine virtuelle (VM)
Appareil
Programmation J2ME Embarquée Chapitre 1 : Présentation de la plate-forme J2ME
AU 2012-2013 4
Une application est développée en reposant sur une configuration qui cible une large
famille d'appareils cibles, un ou plusieurs profiles qui fournissent des fonctionnalités
de base et des packages optionnels ou des API tiers pour des fonctionnalités
spécifiques. Chaque configuration peut être utilisée avec un ensemble de packages
optionnels qui permet d'utiliser des technologies particulières (Bluetooth, services
web, lecteur de codes barre, etc.). Ces packages sont le plus souvent dépendant du
matériel.
Les API tiers ne font pas partie de Java ME mais elles s'appuient sur elle ou
l'étendent pour définir des API spécifiques à un appareil ou une fonctionnalité. Par
rapport à Java SE, Java ME utilise des machines virtuelles différentes. Certaines
classes de base de l'API sont communes avec cependant de nombreuses omissions
dans l'API Java ME.
3. Les Machines virtuelles
En fonction de l’appareil cible, la machine virtuelle pourra être allégée afin de
consommer plus ou moins de ressources. Les deux principales machines virtuelles
sont KVM et CVM :
KVM ou Kilobyte Virtual Machine est une machine virtuelle dont
l’'empreinte mémoire varie entre 40 et 80 Ko selon les options de compilation
et la plateforme. Cette taille restreinte lui permet de s'exécuter sur des
appareils de seulement 128 Ko de mémoire.
CVM ou C-Virtual Machine est la machine virtuelle qu’adhère complètement
aux spécifications des machines virtuelles de J2SE, mais est optimisée pour les
applications mobiles.
4. Les Configurations
Les configurations définissent les caractéristiques de bases d'un environnement
d'exécution pour un certain type de machine possédant un ensemble des
caractéristiques et de ressources similaires. Elles se composent d'une machine
virtuelle et d'un ensemble d'API de base. Deux configurations sont actuellement
définies :
CLDC (Connected Limited Device Configuration);
CDC (Connected Device Configuration).
La CLDC 1.0 est spécifiée dans la JSR 030 : elle concerne des appareils possédant des
ressources faibles (moins de 512 Kb de RAM, faible vitesse du processeur, connexion
réseau limitée et intermittente) et une interface utilisateur réduite (par exemple un
téléphone mobile ou un PDA "entrée de gamme"). Elle s'utilise sur une machine
virtuelle KVM. La version 1.1 est le résultat des spécifications de la JSR 139 : une des
améliorations les plus importantes est le support des nombres flottants.
Programmation J2ME Embarquée Chapitre 1 : Présentation de la plate-forme J2ME
AU 2012-2013 5
La CDC est spécifiée dans la JSR 036 : elle concerne des appareils possédant des
ressources plus importantes (au moins 2Mb de RAM, un processeur 32 bits, une
meilleure connexion au réseau), par exemple un set top box ou certains PDA "haut de
gamme". Elle s'utilise sur une machine virtuelle CVM.
5. Les profils
Les profiles se composent d'un ensemble d'API particulières à un type de machines
ou à une fonctionnalité spécifique. Ils permettent l'utilisation de fonctionnalités
précises et doivent être associés à une configuration. Ils permettent donc d'assurer
une certaine modularité à la plate-forme J2ME.
Il existe plusieurs profiles :
Profil
Configuration
JSR
MIDP 1.0
CLDC
37
Package javax.microedition.*
Foundation Profile
CDC
46
Personal Profile
CDC
62
MIDP 2.0
CLDC
118
Personal Basis Profile
CDC
129
RMI optional Profile
CDC
66
Mobile Media API (MMAPI) 1.1
CLDC
135
Lecture de clips audio et vidéo
PDA
75
JDBC optional Profile
CDC
169
Wireless Messaging API (WMA) 1.1
CLDC
120
Envoi et la réception de SMS
Les utilisations possibles des profils sont :
Application Midlet
MIDP
CLDC
KVM
KVM
Application
Personal Profile
Personal Basis Profile
Foundation Profile
CDC
CVM
MIDP est un profile standard qui n'est pas défini pour une machine particulière mais
pour un ensemble de machines embarquées possédant des ressources et une interface
graphique limitée.
1 / 19 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !