Java 9
CHAPITRE 1 Le concept Java
eivd Télécommunications mjn
10 Java
1.1 Idée de base
Java est une technologie qui prend sa source dans le World Wide Web, et qui est née
dans les bureaux de développement de Sun Microsystems. L’idée de Java est de mettre à dis-
position des usagers d’un réseau non plus simplement des informations sous forme de pages
HTML, comme le fait le Web, mais d’offrir à tout un chacun des applications téléchargea-
bles.
Dans un milieu hétérogène, ce but est difficile à atteindre en raison de la multiplicité
des systèmes d’exploitation, CPU, etc... rencontrés sur le réseau. L’idée poursuivie par Sun
Microsystems est de combiner un navigateur Internet avec une machine virtuelle. Cette idée
est suffisamment mûre pour que tous les principaux éditeurs de logiciels aient immédiate-
ment pris le train en marche1.
1.1.1 Principe de Java
Java est un langage de programmation destiné à une utilisation sur une machine vir-
tuelle (donc, sans existence physique). Sa syntaxe se fonde très fortement sur C++, dont il est
par ailleurs un sous-ensemble par certains aspects, alors que d›autres caractéristiques du lan-
gage sont réellement originales. Un navigateur Internet supportant Java peut télécharger un
programme Java situé sur un serveur HTTP et l’exécuter localement.
FIGURE 1.1 Principe de Java en conjonction avec HTTP
Un navigateur capable d’interpréter du code Java détecte automatiquement la présence
d’un hyperlien Java, et active la machine virtuelle Java (MVJ) locale. Le code Java se pré-
1. Actuellement, ces éditeurs sont essentiellement (hormis Sun Microsystems) Netscape Communications, IBM, HP et
quelques autres. Même Microsoft, bien qu’avec nombre de réticneces, se voit forcé d’adhérer, du bout des lèvres, à Java.
Serveur HTTP
Viewer HTTP
(p. ex. Netscape)
Machine
virtuelle
JAVA NETWORK
Applications
téléchargées
Java 11
eivd Télécommunications mjn
sente sous la forme de pseudo-code (bytecode), similaire à certains métacodes utilisés dans
les années 80 pour des langages de programmation pour micro-ordinateurs (UCSD Pascal p-
code, par exemple). L’intérêt de ce principe est que l’application peut s’exécuter indépen-
demment de la machine client, et que le serveur est de ce fait assuré de pouvoir mettre à dis-
position une application sans avoir à connaître le client qui va l’exécuter, par opposition aux
systèmes conventionnels, où il est nécessaire de mettre à disposition plusieurs versions d’un
applicatif.
Ces applications téléchargeables se nomment des applets, en langage Internet. Les
applets sont de “petites applications1”, idéalement monolithiques, qui s’exécutent dans le
cadre d’une page Web. Une applet est exécuté à partir d’un hyperlien HTML, dont la syntaxe
est la suivante :
<applet standard-attributes>
applet-parameters
alternate-contents
</applet>
Nous reviendrons sur cette syntaxe plus loin dans cet ouvrage.
La signification de l’acronyme Java reste assez mystérieuse. L’explication selon
laquelle Java signifierait simplement “Just Another Vague Acronym” semble la plus proba-
ble... Quelques étudiants de l’EIVD, chargés dans le cadre d’un travail personnel d’étudier le
langage, ont proposé “J’Ai Vite Appris”; que chacun critique cette interprétation à la fin de
ce cours.
A l’origine destiné principalement aux applications client, donc à la fabrication
d’applets, Java a peu à peu grignoté une part significative du marché des applications à part
entière. L’élégance du langage associée à sa portabilité sur diverses plate-formes et divers
systèmes de fenêtrage (Mac, Windows, X11) encouragent les éditeurs ne disposant pas d’un
système d’exploitation propriétaire à porter leurs applications phares sur Java, et surtout à
développer de nouvelles applications entièrement en Java. Par ailleurs, diverses extensions
du langage (servlets, Java Server Pages, etc...)ainsi que l’orientation clairement réseau de
l’environnement de développement font de Java une alternative intéressante aussi au niveau
des applications serveur.
On peut donc dire que Java, du langage de niche qu’il était à son origine, uniquement
justifié dans un environnement Internet, s’est aujourd’hui avéré un langage tout à fait univer-
sel.
1.1.2 Motivations à la base de Java
Il est toujours intéressant de faire un rapide retour en arrière, lorsque l’on étudie une
technologie ou un procédé, de manière à mieux comprendre les motivations ayant conduit à
faire certains choix plutôt que d’autres. Il en va ainsi de Java, qui à l’origine n’était pas prévu
1. Dans les milieux francophones, le terme a reçu plusieurs traductions, dont appelettes ou appliquettes. L’unanimité ne
semblant pas près d’être réalisée, nous conserverons ici le terme anglo-saxon, en le considérant comme féminin (à l’ins-
tar du mot “application”). N’en déplaise aux puristes...
eivd Télécommunications mjn
12 Java
pour être utilisé dans le cadre où on l’utilise actuellement. En fait, l’équipe ayant developpé
Java (anciennement appelé Oak, jusqu’à ce qu’on s’aperçoive que ce nom était protégé),
avait reçu pour mission de développer un langage destiné au développement de logiciels pour
des appareils électroniques portables. Le cahier des charges du langage reflétait ce but : le
langage devait être
simple
s’appuyer sur une base connue
utiliser peu de place mémoire
produire du code d’une stabilité à toute épreuve
Les deux premières clauses servaient à minimiser les coûts de développement. Un lan-
gage simple, et semblable à un langage déjà connu devait assurer la disponibilité rapide de
programmeurs performants pour ce langage. D’autre part, un système portable doit consom-
mer peu et être petit, ce qui limite la quantité de mémoire utilisable. Enfin, ce type d’appareil
est utilisé dans des circonstances très variables, et il vaut mieux que le code produit ne soit
pas (ou aussi peu que possible) sujet à des erreurs de gestion de mémoire, mémoire par
ailleurs limitée pour les raisons précédemment citées.
Le projet Java, conduit chez Sun Microsystems, ne put finalement jamais aboutir au
résultat escompté. Le groupe de développement responsable de Java fut progressivement dis-
sous, et le projet allait être abandonné lorsque l’un des membres rescapés du groupe eut
l’IDEE. Java pouvait être un outil pour la programmation interactive sur le Web. La légende
veut que l’auteur de cette idée développa en un week-end un navigateur compatible Java, et
le présenta à Sun, qui investit dans l’idée. En quelques mois fut developpé le premier “brow-
ser” pour Java, appelé HotJava. Ce navigateur fut présenté officiellement le 23 mai 1995;
cette date est à considérer comme une date marquante dans l’histoire d’Internet et du World
Wide Web. Même avec le peu de recul dont nous disposons actuellement, cette date peut
d’ores et déjà être considérée comme significative pour l’informatique et les télécommunica-
tions en général.
Sun Microsystems eut le mérite de proposer d’emblée un environnement de développe-
ment gratuit, se fondant sur les expériences positives que AT&T avait faites à l’origine avec
UNIX. Le succès de Java fut, et reste rien moins que foudroyant; malgré quelques défauts
(lenteur, gourmandise en ressources, compatibilité entre versions successives...) la qualité du
concept Java continue à faire chaque jours de nouveaux adeptes; le marché émergeant de la
mobilité (GPRS, UMTS) fournit au concept Java de nouvelles opportunités de montrer ses
qualités; dans cette même optique, les aspects "sécurité" implantés dans le langage Java sont
très intéressantes pour le téléchargement de code, surtout quand on ignore (comme c’est fré-
quemment le cas lorsque l’on navigue sur Internet) la provenance du code que l’on est en
train d’exécuter...
Java 13
eivd Télécommunications mjn
1.2 La réalisation de java
Le challenge constitué par la création d’un langage utilisable sur le Web est formida-
ble! Le Web est composé de centaines de milliers de machines, formant une galaxie de
noeuds de réseau disparates évoluant eux-même dans un environnement de périphériques
hétérogènes et totalement incompatibles. Vouloir unifier cette galaxie à l’aide d’un langage
de programmation tient de la gageure, voire de l’illusoire. De fait, Java ne parvient que par-
tiellement à ce but; ce qui n’enlève en réalité rien à l’exploit. Java permet d’exécuter des
applications sur la très grande majorité des systèmes raccordés à Internet.
1.2.1 La notion de machine virtuelle
L’idée à la base de la réalisation de Java consiste à réaliser une machine virtuelle. Une
machine virtuelle est une notion bien connue des concepteurs de microprocesseurs, qui ému-
lent la puce à construire à l’aide d’une simulation logicielle. Ceci leur permet de détecter
d’éventuelles erreurs de conception très tôt, avant même la première génération de masques
permettant la fabrication de la puce finale.
Il est possible d’implanter, de manière logicielle, une simulation d’une machine quel-
conque sur une autre machine, même si elle est très différente architecturalement de la
machine à émuler. Cette démarche n’est pas originale : de nombreux éditeurs de logiciels
l’ont empruntée, le plus célèbre ayant écrit un émulateur Intel 803861 sur des machines Mac-
intosh (processeur Motorola 68000), SOLARIS (processeur SPARC), HP-UX (processeur
HP_PA) et nombre d’autres. Sun Microsystems a suivi la même démarche, mais pour inven-
ter un processeur virtuel, la Java Virtual Machine (JVM).
Notons au passage que le code de l’application devant s’exécuter sur une machine vir-
tuelle doit être compilé pour la machine virtuelle : il ne s’agit donc pas de code interprété,
car la machine virtuelle exécute un code qui pour elle, est “natif”. En revanche, la machine
elle-même est en quelque sorte interprétée; pour cette raison, et pour simplifier la terminolo-
gie, nous parlerons de “code interprété” pour du code s’exécutant sur une machine virtuelle.
Une machine virtuelle a de nombreux avantages. Il est (semble-t-il) facile de la rendre
sûre par rapport au système d’exploitation qui l’abrite, car on peut se permettre de lui impo-
ser les limitations adéquates. On peut ainsi interdire à cette machine virtuelle d’utiliser
l’espace d’adressage de la machine réelle en contrôlant les mécanismes d’adressage des
objets en mémoire. Pour rendre le système encore plus sûr, on peut interdire à cette machine
toute utilisation de ressources externes autres que celles implantées de manière native dans la
machine virtuelle.
La machine virtuelle Java remplit tous ces critères, et nombre d’autres encore. Mais il y
a forcément un prix à payer (la gratuité devient de plus en plus chère, de nos jours...), et c’est
dans les performances des applications s’exécutant sur cette machine qu’il faut rechercher ce
1. Le produit en question est mieux connu sous le nom de SoftWindows.
1 / 30 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 !