Java pour Internet |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Introduction Java : Une "nouvelle" génération de logiciels (système d'exploitation, interface utilisateur, langage de programmation,...) et de matériels (processeurs) informatiques.
Offrir une plateforme de développement de logiciels embarqués pour les produits électroniques de grande consommation (fours, magnétoscopes, voitures, ...). Apporter une plus grande facilité au développement de ces applications que lors de l'utilisation de plateformes de développement plus classiques.
Ces caractéristiques sont intéressantes dans le cadre du déploiement d'applications pour les technologies Internet:
-> Ces caractéristiques ont conduit Java à s'implanter en tant que plateforme de développement pour Internet/Intranet:
1990 : Début du développement par Sun Microsystems. Fin 1994 : Naissance du premier navigateur Internet acceptant d'exécuter des programmes ("applets") conçus en Java: HotJava de Sun Microsystems. Mai 1995 : Présentation officielle de Java et HotJava. Janvier 1996 : Netscape Communications Corporation ajoute les spécifications Java/Javascript à son navigateur Internet Netscape Navigator 2 -> possibilité d'exécution d'applets Java. Mars 1996 : Kit de développement Java (JDK, Java Development Kit) en version 1.0 en téléchargement libre et gratuit sur le site Web de Sun Microsystems. Septembre 1996 : Microsoft supporte à son tour Java sur Internet Explorer 3. Juillet 1997 : Distribution de la version 1.1 de Java et de son kit de développement. Décembre 1998 : Distribution de la version 1.2: "Java 2". La version actuelle de Java est encore Java 2. Le JDK est en version 1.4. En conclusion, actuellement, seuls les aspects logiciels ont connus un réel succès à travers le développement du WEB et l'intégration de la technologie Java au sein des navigateurs Internet. Java embarqué et les puces Java sont encore des technologies de laboratoire.
L'environnement Java est constitué de différents éléments:
Programmation orientée objet ->
Syntaxe très proche de celle du C++ (elle-même inspirée du C), mais en plus simple:
Le programmeur écrit des fichiers sources (qui contiennent et décrivent des classes). Il leurs donne l'extension ".java". Il peut utiliser l'API Java pour faciliter son travail en utilisant des classes déjà écrites. Ces fichiers sources sont compilés au moyen du compilateur javac pour obtenir des fichiers portant l'extension ".class". Ces fichiers ne sont pas des exécutables au sens classique car ils sont indépendants:
et ne dépendent que de la version de l'API Java utilisée. Ces fichiers sont constitués d'un code intermédiaire appelé bytecode. Une application peut être composée de un ou plusieurs fichiers .class. Il n'y a pas d'édition de liens et donc pas d'exécutable au sens classique du terme. Pour gérer un projet comportant plusieurs classes, chacune d'elles peut être, dans une certaine mesure (gestion automatique des dépendances entre classes), compilée indépendamment des autres et être substituée à la version précédente.
Sur la plateforme à sa disposition, l'utilisateur lance un programme spécifique (une JVM, Java Virtual Machine ou JRE, Java Runtime Environment) destiné à exécuter les fichiers .class constituant l'application. Ce programme transforme à la volée en assembleur et appels système spécifiques à la plateforme d'exécution le bytecode contenu dans les fichiers .class et exécute les instructions assembleur ainsi obtenues. On dit qu'il y a "interprètation" du pseudo-code. Le rôle d'une JVM consiste à réaliser l'interface entre l'ordinateur (le système d'exploitation de l'ordinateur et son processeur) et les fichiers bytecode .class qui sont eux indépendants de l'ordinateur. Dans une architecture classique le source est compilé directement en assembleur et fournit donc un résultat spécifique à la plateforme cible. Architecture classique Architecture Java
Systèmes d'exploitation supportés:
Navigateurs Internet supportés:
ATTENTION, si toutes ces JVM supportent globalement sans problème le langage Java ainsi que l'API 1.0, certaines vont plus loin et supportent les versions 1.1, 1.2, 1.3 ou 1.4 dans leurs différentes évolutions. Une JVM 1.4 exécutera l'API 1.0 mais une JVM 1.0 n'exécutera pas d'API 1.4 (compatibilité ascendante).
Elle apporte le support des fonctionnalités suivantes:
Il existe deux types d'application en Java:
Les applications sont des programmes conçus pour être exécutés dans des JVM fonctionnant directement sous un système d'exploitation. Les applets sont des programmes conçus pour être exécutés dans les JVM intégrées aux navigateurs WEB et s'appuyant sur le contexte d'exécution de ceux-ci. Les applets sont intégrées au sein des pages WEB. Les fichiers .class qui les représentent sont stockées sur le même site WEB. Ces classes sont téléchargées automatiquement par le navigateur par l'intermédiaire du réseau pour enfin être exécutées dans le navigateur. <applet width="300" height="20" code="Exemple1.class"> Votre navigateur ne prend pas en charge Java </applet>
Tout ce qui peut être fait avec un langage de programmation classique peut être fait en Java. Faut-il se lancer dans Java? Si oui, à quel prix. Java ne coute rien, les JDK et les JVM sont gratuits. Certains éditeurs commercialisent des environnements de développement intégrés. Les principaux sont:
Une réponse prudente consiste à dire "Quand un autre produit ou une autre technologie ne fait pas les choses mieux, plus simplement ou plus rapidement". Il existe un grand nombre de produits ou technologies ayant pour but la réalisation de sites WEB élaborés:
Les fonctionnalités apportées par ces produits sont multiples et difficilement énumérables exhaustivement. Ils procurent toutefois deux fonctionnalités principales:
Dans ce cadre, la limitation la plus importante de Java est certainement qu'il n'est pas conçu pour créer du HTML dynamique (conception d'une page WEB à partir d'informations et affichage de cette page sur l'écran du navigateur client). Les pages visualisées sont statiques. Ce sont les applets qu'elles contiennent qui réalisent les traitements particuliers désirés. Les points forts de Java sont:
Les points faibles de Java sont:
Deux techniques possibles pour intégrer une applet dans une page WEB via les tags:
Reconnu tant par Internet Explorer que Netscape Navigator.
Exemple : <applet width="300" height="20" code="Exemple1.class"> <PARAM NAME="VITESSE" VALUE="50"> Votre navigateur ne prend pas en charge Java </applet>
Tag object reconnu par Internet Explorer Tag embed reconnu par Netscape Navigator. Tags utilisés pour afficher différents documents dans des pages Web via des plug'in.
<embed
<object
Exemple: <object Le type MIME application/x-java-applet est le type des fichiers .class.
import
java.applet.Applet; Les directives import permettent la reconnaissances des classes, méthodes, ... de l'API Java. La méthode init est appelée une fois au lancement de l'Applet. La méthode paint est appelée chaque fois que Java détecte que l'Applet doit être dessinée. L'objet Graphics obtenu en paramètre est utilisé pour les opérations de dessin.
A partir de l'exemple précédent, on souhaite programmer une page Web faisant appel à une Applet affichant 5 rectangles de 70 pixels de haut et 40 pixels de large espacés de 5 pixels.
import
java.applet.Applet; La méthode init est appelée une fois au lancement de l'Applet. Elle crée une List lst et l'insère au centre du BorderLayout lui-même inséré dans l'Applet pour que lst occupe l'intégralité de l'espace d'affichage disponible. Via la méthode getDocumentBase, on récupère l'URL de base du répertoire d'où à été téléchargée l'Applet. Via la méthode getParameter, on récupère une chaîne de caractères qui contient la valeur du paramètre recherché (tous deux issus de la page Web origine). On reconstruit ensuite (avec l'URL de base et le paramètre) l'URL du fichier texte qui sera téléchargé. Celui-ci est ouvert via une InputStream transformée en un InputStreamReader puis en un BufferedReader qui autorise la lecture ligne par ligne via la méthode readLine. Ceci est réalisé tant que la String s rendue est différente de null. Si elle l'est, elle est ajoutée dans lst. Différents try - catch permettent de gérer les éventuelles erreurs (Exception) pouvant arriver au cours de l'exécution de l'Applet.
A partir des deux exemples précédents, on souhaite programmer une page Web faisant appel à 2 Applets simultanées utilisant la même classe mais avec des paramètres différents. La classe Applet devra réaliser l'affichage de n lignes de m cercles de rayon r accolés les uns aux autres. Les paramètres n, m et r sont obtenus par getParameter. La première Applet devra afficher 5 lignes de 20 cercles de 15 pixels de rayon. La seconde Applet devra afficher 10 lignes de 15 cercles de 20 pixels de rayon.
Remarques, erreurs |