HOTJAVA

par Claude Lecommandeur, SIC-Logiciels

Table des matières


HOTJAVA

Ne soyez pas à la traîne de la technologie, vous aussi vous pouvez briller dans les salons. Lisez cet article, et les mystères de HotJava vous seront révélés, faisant de vous ce brillant internaute branché que vous avez toujours rêvé d'être.

HotJava est le nouveau client WWW de Sun Microsystems (un petit fabricant d'ordinateurs californien). Il a une particularité qui le rend différent des autres clients WWW: en plus de montrer des documents HTML, il peut exécuter des programmes, qu'il télécharge à partir du réseau de la même manière que ces documents HTML.

Les avantages sont immenses, à la place de textes et d'images statiques, on va pouvoir visualiser des animations, et surtout, dialoguer avec des applications hautement interactives avec de très bonnes performances, puisque ces applications seront exécutées directement dans votre client, sur votre machine même. Je vais essayer de détailler un petit peu les mécanismes qui rendent cela possible.

retour à la table des matières

JAVA

Un système Java se compose de 3 parties: un langage, un compilateur, qui transforme un programme en ce langage en pseudo-langage machine portable, et une machine virtuelle qui sait exécuter ce pseudo-langage machine.

Le langage Java

Java est un langage de programmation orienté objet (déjà, l'assistance commence à être captivée). Il est très similaire à C++, mais avec des modifications d'importances qui en font un langage beaucoup plus robuste.

Tout d'abord, il ne contient plus C entièrement puisqu'il n'y a plus de possibilité de manipuler les pointeurs. On perd un peu en souplesse et en possibilité de bidouiller, mais on gagne beaucoup en fiabilité (entre autres, plus de core dump).

Il a un système de multi-threads intégré, c'est-à-dire qu'il peut faire plusieurs choses à la fois. Un programme Java pourra, par exemple, réagir aux sollicitations de votre souris, tout en chargeant un document à travers le réseau. On peut bien sûr faire ça en C, mais c'est beaucoup plus difficile, avec Java, ça marche tout seul.

Troisième possibilité, et non des moindres, il dispose d'un ramasse-miettes (garbage collector) intégré. Le programmeur n'a plus à se soucier de la gestion de la mémoire. Il prend ce qui lui est nécessaire, et le ramasse-miettes reprend quand ça ne sert plus, sans qu'on ait rien à lui dire.

retour à la table des matières

La machine virtuelle Java

La machine virtuelle Java est un automate qui sait exécuter des programmes générés par le compilateur Java. Le pseudo-langage machine qu'elle exécute ressemble à un véritable langage machine (couleur, goût, etc.) mais est d'un niveau conceptuel un peu plus élevé de façon à pouvoir facilement et surtout efficacement être exécuté sur tout type d'ordinateur.

Il est même imaginable, que la machine virtuelle, compile réellement au vol les programmes qu'elle doit exécuter, elle atteindrait alors des niveaux de performances similaires aux véritables langages compilés.

retour à la table des matières

Le compilateur

C'est un compilateur, au sens usuel du terme. A l'exception toutefois, que, comme il génère du code pour la machine virtuelle Java, il n'a pas besoin d'être adapté aux différents systèmes sur lesquels il tourne, il est intrinsèquement portable.

retour à la table des matières

Le browser WWW HotJava

Nous arrivons maintenant au plus croustillant, le client WWW HotJava lui-même. Première chose, qui, je pense, ne surprendra personne, il est écrit en, je vous le donne en mille..., oui, bravo, en Java.

Il bénéficie d'entrée de jeu des facilités de Java, multi-threading, ramasse-miettes, etc... Mais surtout, il est exécuté par la machine virtuelle Java, et peut donc exécuter lui même d'autres programmes de cet environnement. Ces programmes, que HotJava peut exécuter sont appelés des applets. Les applets sont donc des programmes Java, que HotJava va télécharger à partir d'un serveur WWW, et exécuter immédiatement. Ces applets pourront manipuler des images, dessiner des graphiques, ouvrir des fenêtres, réagir à votre souris ou votre clavier, etc. Tout ce que Java permet de programmer est faisable dans un applet. Ceci ouvre un champ de possibilités immense au monde WWW. On ne sait pas trop, jusqu'où on va pouvoir aller, seule l'imagination des utilisateurs semble devoir limiter les possibilités. Les heureux possesseurs de HotJava peuvent déjà essayer une multitude de démonstrations sur

http://Java.sun.com/

retour à la table des matières

La sécurité

Mais, vous entends-je sussurer dans votre fort intérieur, si j'exécute des applets dont je ne connais pas la provenance avec certitude sur ma machine, je suis à la merci des aigrefins de tout poil qui doivent pulluler sur le réseau. Ils pourront me déposer des virus, me détruire mes fichiers, voire me reformater mon disque et y installer WINDOWS95, ou quelque chose de pire encore.

Les concepteurs de Java ont bien sûr pris en compte ces possibilités. L'accent a été mis fortement sur la sécurité.

retour à la table des matières

Au niveau du langage Java

Java, ne possédant pas la notion de pointeur, ne permet pas à un programme de modifier la mémoire comme il le désire, il ne peut le faire qu'à l'intérieur des règles qui ont été prévues par les concepteurs.

retour à la table des matières

Au niveau de la machine virtuelle Java

La machine virtuelle, vérifie, avant d'exécuter n'importe quel programme, que celui-ci respecte les conditions ci-dessus. On peut en effet imaginer, un mauvais compilateur qui ne les ferait pas respecter, ou du code machine qui n'aurait pas été généré par un compilateur. Ces contraintes sont vérifiées de façon formelle, avant toute exécution.

retour à la table des matières

Au niveau du browser HotJava

La browser HotJava, lorsqu'il exécute un applet, bénéficie automatiquement des vérifications ci-dessus. Mais en plus il ne permet l'accès:

De plus, dans le futur, il est prévu que les applets Java puissent être signés à l'aide d'un système de chiffrement à clé publique (voir l'excellent article du Flash Informatique du mois dernier sur le chiffrement). Ceci permettrait à une autorité reconnue de vérifier l'innocuité d'un de ces applets, et de la certifier. HotJava pourrait alors vérifier cette certification d'innocuité et en tenir compte.

retour à la table des matières

Disponibilité

Là où c'est marrant, c'est que Sun, l'auteur de ce petit chef-d'oeuvre (je pèse mes mots) a décidé de mettre les sources à disposition, pour susciter des portages sur toutes sortes de systèmes. Sun se chargeant lui-même des portages sur Solaris/Sparc, Windows/NT, Windows95 et MacIntosh. Actuellement, seules les versions Solaris/Sparc, Windows/NT et Windows95 sont disponibles. Mais on attend pour sous peu, peut-être même avant, les versions pour Mac, Linux et HPUX.

Références

http://java.sun.com/

va tout vous expliquer.

retour à la table des matières



article paru dans le Flash informatique, numéro 8 du 24 octobre 1995