Section technique - Java


Introduction

    Pour commencer, sachez que les développements Java sont de deux types: applet ou programme autonome. Une applet est un programme qui justement n'est pas autonome car il a besoin d'un navigateur pour pouvoir s'exécuter.
    Ensuite, gardez à l'esprit que les développeurs Web sont confrontés à plusieurs problèmes sur Internet: le faible débit, le manque de sécurité et les différentes plates-formes d'exécutions. Or, Java apporte une solution à chacun de ces problèmes:    Comme Java est un langage compilé, il faut donc se procurer un compilateur. Contrairement à d'autres langages, celui pour Java est gratuit. Il est disponible sur le site java.sun.com. Sur ce site, après vous êtes inscrit, vous pourrez télécharger un JDK (Java Development Kit). Ce package contient un compilateur Java, des utilitaires (AppletViewer, debugger,...) et des exemples d'applets. Attention, ce package fait environ 25Mo. Vous le trouverez également sur les CDs d'accompagnement de nombreux livres ou magazines sur Java.
    Initialement, le projet des créateurs de Java visait un langage indépendant des plates-formes d'exécution pour installer des modules "intelligents" dans des appareils tels que l'électroménager, la domotique en générale et tous les équipements portables. Les résultats de ces recherches commencent à atteindre le grand public. En effet, des fabricants de téléphones portables WAP travaillent sur des navigateurs Java qui tournent sous Linux. Peut-être qu'un jour Java fera votre café ;-)


Solution au faible débit

    Java est un langage compilé. Cela signifie que lorsque nous téléchargeons une applet ou un programme autonome Java, il a déjà été compilé. Or, un programme compilé est beaucoup moins gros que le fichier contenant le code source. En comparaison, lorsque nous téléchargeons du JavaScript, c'est en fait le code source que nous récupérons. Nous téléchargeons donc les commentaires et les noms de variable sur xxx caractères, ce qui n'apporte rien à l'exécution du programme.


Solution au manque de sécurité sur Internet

    Les applets Java ne peuvent pas lire ou écrire sur le disque dur. Elles ne peuvent donc pas installer de virus sur l'ordinateur d'un internaute. De plus, les applets ne possèdent pas de fonctions tels que des pointeurs qui permettraient de lire directement la mémoire d'un système. Une applet ne peut donc pas envoyer sur le net des informations concernant le système de l'internaute.
    Pour les programmes autonomes, Java utilise le principe des signatures digitales. Sur chaque ordinateur, seuls les programmes dont la signature est déclarée et autorisée peuvent être exécutés. Dans un intranet d'entreprise, seuls les administrateurs réseaux peuvent ajouter une signature digitale à la liste de celles déjà autorisées. Ainsi, pour déployer un nouveau programme autonome Java dans une entreprise, il faudra le signer de manière digitale, le télédistribuer et déclarer sur le réseau sa signature comme étant autorisée.


Java est indépendant de la plate-forme (JVM)

    Pour un langage comme C++, le compilateur converti le code source en une suite de 0 et de 1 qui est propre à la plate-forme cible. Ainsi, si l'on souhaite exécuter un programme C++ sous Windows et sur une station Unix, il faudra compiler le code source avec un compilateur spécifique Windows pour obtenir un exécutable Windows et compiler à nouveau le code source avec un compilateur spécifique Unix pour obtenir un exécutable Unix. Le compilateur Java ne produit pas un exécutable spécifique à une plate-forme. Il produit un code particulier destiné à une machine virtuelle, la Java Virtual Machine (JVM).
    Pour une applet Java, lorsque le navigateur charge son code de machine virtuelle, la Java Virtual Machine (JVM) convertit ce code en 0 et 1 destinés au processeur de la machine sur laquelle il tourne. La Java Virtual Machine (JVM) est un composant du navigateur. Tout ce passe comme si le code Java était exécuté au sein d'une machine virtuelle. Les développeurs Java n'ont donc pas à ce soucier de la plate-forme cible. Ce sont les éditeurs de navigateurs et Sun qui s'en chargent.
    Pour un programme autonome, c'est pareil, nous ne pouvons pas l'exécuter directement sur notre ordinateur. Nous devons lancer une JVM et lui transmettre en paramètre le programme autonome que nous souhaitons démarrer.
    Le problème de ce fonctionnement est la vitesse. Un programme C++ tourne 10 à 20 fois plus vite qu'un programme Java. Mais l'avantage de l'indépendance de la plate-forme d'exécution est immense. En effet, le protocole HTTP ne permet pas au navigateur d'indiquer au serveur Web la plate-forme d'exécution. Le serveur ne peut donc pas envoyer l'exécutable d'un programme C++ spécifique à la plate-forme. Dans le cas de Java, le navigateur n'a pas besoin de demander au serveur une version spécifique d'une applet, c'est sa JVM qui fait l'interface avec la plate-forme.


Exemples d'applets et de programmes autonomes Java

    Pour cela, voir la rubrique Exemples Java de ce site. Vous pouvez également télécharger le navigateur HotJava (5Mo). C'est une des premières applications professionnelles écrites en Java.