Les Fondements du langage Java & son évolution actuelle.



Documents pareils
Vulgarisation Java EE Java EE, c est quoi?

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

La technologie Java Card TM

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Introduction à la plateforme J2EE

DotNet. Plan. Les outils de développement

Environnements de Développement

SQL Server Installation Center et SQL Server Management Studio

Hébergement de sites Web

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Architectures web/bases de données

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Administration de systèmes

Éléments de programmation et introduction à Java

Compte Rendu d intégration d application

Chapitre I Notions de base et outils de travail

Solutions de gestion de la sécurité Livre blanc

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Module BD et sites WEB

Annexe : La Programmation Informatique

WINDOWS Remote Desktop & Application publishing facile!

Livre Blanc WebSphere Transcoding Publisher

1 JBoss Entreprise Middleware

LA RECONNAISSANCE VOCALE INTEGREE

FileMaker Server 14. Guide de démarrage

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

as Architecture des Systèmes d Information

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

InstallShield 2014 FICHE TECHNIQUE. Création de programmes d installation pour Microsoft Windows

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

La haute disponibilité de la CHAINE DE

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Mise en œuvre des serveurs d application

Point sur les solutions de développement d apps pour les périphériques mobiles

Auto-évaluation Aperçu de l architecture Java EE

Catalogue des Formations Techniques

Fiche Technique. Cisco Security Agent

Manuel d installation de l application Dimona New via SMS

NFP111 Systèmes et Applications Réparties

Sécurisation des architectures traditionnelles et des SOA

Java pour le Web. Cours Java - F. Michel

Évaluation et implémentation des langages

CAHIER DES CHARGES D IMPLANTATION

ELO Office / Pro Les avantages : Archivage et gestion documentaire

10. Base de données et Web. OlivierCuré

FileMaker Server 14. Aide FileMaker Server

NFS Maestro 8.0. Nouvelles fonctionnalités

IBM Tivoli Compliance Insight Manager

Logiciel de création de badges personnalisés.

FileMaker Pro 12. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 12

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

GroupWise. Novell. Démarrage rapide.

TP1 : Initiation à Java et Eclipse

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

FileMaker Server 12. publication Web personnalisée avec XML

A. À propos des annuaires

Aastra MD Evolution» Évoluer à vos côtés

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

PaperCut MF. une parfaite maîtrise de vos impressions, copies et scans.

IBM DB2 Alphablox. d administration GC

Chapitre 01 Généralités

2 Chapitre 1 Introduction

Les nouveautés d AppliDis Fusion 4 Service Pack 3

Symantec Backup Exec 2012

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Découvrez notre solution Alternative Citrix / TSE

Annuaires LDAP et méta-annuaires

Qu est-ce que ArcGIS?

Services Réseaux - Couche Application. TODARO Cédric

Backup Exec 2010 vs. BackupAssist V6

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Fiche technique rue de Londres Paris Tél. : Mail : contact@omnikles.com

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Logiciel Enterprise Guide Version 1.3 Windows

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Notre Catalogue des Formations IT / 2015

emuseum PUBLIEZ VOS COLLECTIONS SUR INTERNET Pourquoi choisir emuseum? Intégration facile avec TMS Puissante fonction de recherche

Nouvelles Plateformes Technologiques

Rebol, un langage «différent»

FICHE PRODUIT 360 SPEECHMAGIC SDK

Moderniser. le système d information et le portefeuille applicatif.

Messagerie & Groupeware. augmentez l expertise de votre capital humain

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Windows 7 - Installation du client

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Comparaison des architectures J2EE et.net

VMWare Infrastructure 3

CORBA. (Common Request Broker Architecture)

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Découverte de Microsoft Office 2010 et de Microsoft Exchange Server 2010

Evidian IAM Suite 8.0 Identity Management

Linux embarqué: une alternative à Windows CE?

Créer et partager des fichiers

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Transcription:

DELCAMBRE Rudy Les Fondements du langage Java & son évolution actuelle. Décembre 2003 Professeur : M. LECLERCQ

Introduction... 1 1. Le Langage... 2 1.1. Historique...2 1.2. Ses caractéristiques...3 1.3. La machine Virtuelle Java (JVM)...6 2. La plate forme Java... 8 2.1. Java 2 Standard Edition (J2SE)...9 2.1.1. Core Java...10 2.1.2. Desktop Java...16 2.2. Java 2 Entreprise Edition (J2EE)...22 2.3. Java 2 Micro Edition (J2ME)...27 2.4. JAVA CARD : Java pour les cartes à puces...29 3. Java dans le monde... 31 3.1. Le coût pour l'entreprise...31 3.2. J2EE ou.net?...32 3.3. La stratégie de Sun pour l avenir...35 Conclusion... 37 Décembre 2003

Introduction Write Once, Run Anywhere (Ecrire une fois, exécuter partout) telle est le principe de base de Java. La portabilité du langage est l une de ses forces, à la différence d autres langages de programmation qui doivent être compilés en fonction de l environnement technique et logiciel des systèmes de destination. Une application Java, une fois compilée, pourra être exécutée sur différents types d OS et différentes architectures matérielles grâce à une machine virtuelle. D un point de vu langage Java s inspire de C++. L une des principales règles adoptées par les développeurs lors de la conception de Java était de reprendre les meilleurs points d autres langages tels que FORTRAN, Lisp et Small Talk. Les méthodologies et algorithmes utilisés dans Java sont donc déjà d une robustesse largement prouvée. Java est relativement proche du langage C++ étant donné qu il possède la même syntaxe. Toutefois Java est plus simple car les pointeurs, la surcharge d opération et l héritage multiple, ont été supprimé, «le ramasse miettes», une meilleur gestion des erreurs et l intégration des variables chaîne et tableau ont été rajouté. La puissance de Java réside aussi dans son API (Application Programming Interface) qui regroupe de nombreux packages permettant entre autre d accéder aux réseaux, aux entrées/sorties, de manipuler des composants graphiques, du son, des bases de données Des sociétés du monde entier ont trouvé des myriades d utilisations de Java, toutes bénéficiant de sa capacité inégalée à améliorer la fiabilité, la sécurité, la simplicité des produits et des environnements informatiques. Java touche des millions d utilisateurs plus rapidement que tout autre produit informatique avant lui, il fonctionne partout. Java est rapidement adopté comme un standard pour la diffusion d informations du fait de ses avantages semble-t-il innombrables pour les entreprises comme pour les utilisateurs finaux. Parce que Java est indépendant des plates-formes, il s étend au-delà de l entreprise, avec des applications fonctionnant sur des ordinateurs portables, des kiosques, des télévisions, des téléphones cellulaires et une multitude d autres équipements. - 1 - Décembre 2003

1. Le Langage 1.1. Historique En 1991, Sun Microsystems croit à l évolution de la domotique et se lance dans la mise au point d une télécommande universelle permettant de commander l ensemble des appareils électroménagers domestiques; son nom la Star 7. Le programme informatique de cette télécommande devait être léger, portable, robuste. Devant l ensemble des contraintes techniques James Gosling, un des auteurs du projet, décida de créer un langage orienté objet reprenant les caractéristiques principales du C++, en éliminant ses points difficiles, en le rendant moins encombrant et plus portable. Ainsi, ce langage fut baptisé OAK (OAK signifiant chêne). Malheureusement le projet de télécommande universelle ne rencontra pas le succès escompté. En 1993, l envole d Internet fait apparaître de nouveaux besoins. Le réseau des réseaux rassemble sur une même structure des machines différentes et sur un support réseau faible en débit. OAK était conçu pour être portable et petit. Le nom OAK étant déjà déposé, il fallut en trouver un autre, après un temps de réflexion le nom Java c est imposé. Java est la traduction en argot de café, le café étant la boisson habituelle de l équipe de développement. Au depuis de l année 1995, un navigateur Web du nom de Hot Java de Sun Microsystems voit le jour. Il intègre un interpréteur pour le langage Java. En août 95, la première licence de Java est vendue à Netscape. Depuis le 23 Mai 1995, jour où Sun a officiellement présenté Java, le langage a beaucoup fait parler de lui. - 2 - Décembre 2003

1.2. Ses caractéristiques Java est un langage de programmation aussi «puissant» que C ou C++, il est orienté objet et regroupe toutes les améliorations apportées à la programmation depuis ces dernières années. La Simplicité James Gosling, a décrit Java comme C++ en retirant les éléments particulièrement complexes et sousutilisés du C++ qui amènent souvent le programmeur à écrire un code médiocre. Le mécanisme de nettoyage de la mémoire «le ramasse miettes» (garbage collection) est automatique ; aussi les programmes n ont pas constamment besoin de libérer de la mémoire. Orienté objet En programmation orientée objet, les données sont traitées comme des objets, auxquels sont appliquées des méthodes (programmes, sous-programmes, calculs, etc.). Il est donc impératif de résonner Objet. Distribué Les appels aux fonctions d accès réseau et les protocoles Internet les plus couramment utilisés tels que HTTP et FTP sont intégrés dans Java. Autrement dit, le développeur peut appeler ces fonctions très simplement via les bibliothèques fournies et accéder aux fichiers sur Internet aussi facilement que s il s agissait d écrire dans un système de fichiers local. - 3 - Décembre 2003

Robuste Java insiste beaucoup sur le contrôle de type, tant à la compilation qu à l exécution. Chaque structure de données doit être explicitement définie et typée. En pratique, par conséquent, le programmeur devra être plus rigoureux lors de sa conception initiale. Java offre aussi un modèle de pointeur totalement différent de celui du C et du C++ qui empêche à une application d écraser une zone de mémoire et d altérer des données. Il est impossible, par exemple, de convertir un entier arbitraire en pointeur. C est une approche souvent utilisée par les virus et autres programmes indésirables pour accéder à l espace mémoire d une autre application. Sûr Puisque l objectif est que les applications Java puissent arriver directement sur le système de l utilisateur à partir d Internet, il est important pour la JVM de pouvoir s assurer qu une application n a pas été altéré après sa compilation. Un mécanisme total de contrôle complet a été incorporé afin que la JVM puisse vérifier la légitimité du code. Indépendant du matériel L un des impératifs de base de Java était de permettre à toute application Java de fonctionner sur n importe quel matériel et système d exploitation. C est la raison pour laquelle le compilateur Java ne génère pas des instructions machine spécifiques mais du Byte Code. Ce code objet compilé peut alors être exécuté via un interpréteur Java sur n importe quelle plate-forme. - 4 - Décembre 2003

Portable L un des facteurs déterminants essentiels de la portabilité entre différentes architectures est la façon dont sont traitées les variables (particulièrement numériques). Lorsque vous développez en C, la taille d un mot «word» dépend de l architecture du processeur. Java définit explicitement tous les types de données. «Int» est toujours un entier 32 bits en complément à deux signé, les «floats» et «longs» adhèrent à la spécification IEEE 754, tandis que les «chars» sont de type Unicode et les «booleans» True ou False et cela indépendamment des processeurs et des OS La performance La sagesse traditionnelle veut que les programmes compilés s exécutent beaucoup plus rapidement que les programmes interprétés. Le compilateur de Java est un compilateur optimisé et génère du byte code en tenant compte du fait que la cible finale est du code machine. Ainsi le compilateur inclut dans le byte code des instructions permettant à l interpréteur de tirer la meilleure performance de l application. Dans les tests effectués chez Sun, une application Java byte code interprétée s exécute dans un temps comparable à une application compilée en C ou C++ natif. Multithreadée Dans les programmes multithreadés, plusieurs processus sont exécutés simultanément. Ceci améliore évidemment la performance, mais au prix d une augmentation exponentielle de la complexité de la programmation puisque le développeur doit garder trace simultanément des activités de tous les threads. Java contient un jeu sophistiqué de primitives de synchronisation basé sur les travaux de C.A.R. Hoare. - 5 - Décembre 2003

Comme les primitives sont intégrées dans le langage les applications Java, la tâche du programmeur est considérablement simplifiée. Dynamique Les bibliothèques externes de Java n étant pas gérées de la même manière qu en C et C++, il n est pas nécessaire de modifier le programme de base si une bibliothèque change. 1.3. La machine Virtuelle Java (JVM) Les applications écrites en Java ne seront pas compilées pour s exécuter directement sur une machine, elles seront compilées en pseudo code (Byte Code). Lors de l exécution du Byte Code, la JVM transformera les instructions Java en instruction compréhensible par le processeur et le système opérationnel (OS) de la machine. Il n est donc plus nécessaire de modifier les applications et de les recompiler pour un autre système, la JVM s en charge. Si cette méthode a des avantages pour la portabilité des applications, elle a aussi des inconvénients car convertir des instructions Java en instructions interprétables par la machine où s exécute le programme prend du temps. Pour palier à ce problème, il existe trois solutions : La première est d inclure dans le compilateur la possibilité de compiler le code Java en code natif de la machine exécutant le programme. La seconde est d inclure dans la JVM un Just In Time (JIT) qui est chargé de traduire le code Java d une classe en code natif lors de sa première exécution. Lorsqu'une - 6 - Décembre 2003

classe est traduite en code natif elle le reste jusqu à la fin de l exécution du programme. La troisième Solution est d introduire dans la machine, au niveau Hard, une puce capable de comprendre le langage Java. Code JAVA Compilation 01110 11100 11000 10000 00111 Distribution JVM JVM JVM Windows Linux OS XYZ JVM Hardware Hardware Hardware Hardware - 7 - Décembre 2003

2. La plate forme Java La plate forme Java est la seule plate forme logicielle pouvant s exécuter sur différentes plates formes techniques (hardware). Car les plates formes techniques varient fortement en fonction de leurs espaces de stockage, de mémoire, de connexion réseau et des capacités de calcul. Les différentes plates formes de développement ont été conçu pour développer et déployer directement des applications sur différentes catégories de machine. La technologie Java s est agrandit au file du temps afin de répondre aux différents besoins des environnements techniques. Java 2, Standard Edition (J2SE) inclus le «Cœur» de Java et un environnement pour les applications clientes. C est une version basic des technologies de «Java 2Platform, Entreprise Edition (J2EE)» et de «Java Web Service». J2SE est composé d outil, d un compilateur, d un Runtime et des Api Java afin d écrire, de tester, de déployer et d exécuter des applets et des applications. Java 2, Enterprise Edition (J2EE) définit les standards pour le développement de composants. Il est basé sur J2SE et accompagné de services, d outils et d'api complémentaire afin de simplifier le développement de composant métier pour les entreprises. Java 2, Micro Edition (J2ME) est un jeu de technologies et de spécifications à destination des systèmes embarqués, tels que les téléphones portables, les PDA (personal digital assistants), les imprimantes et les télévisions interactives. Java Card technology adapte la plate forme Java aux cartes à puces et autre appareil ayant une mémoire et une capacité de calcul limitée de bénéficier de la technologie Java. - 8 - Décembre 2003

2.1. Java 2 Standard Edition (J2SE) Il y a deux produits principaux dans la plate forme J2SE ; JAVA 2 Runtime Environment, Standard Edition (JRE) et JAVA 2 Software development Kit, Standard Edition (SDK). JRE contient les API Java, JVM et d autres composants nécessaires à l exécution des applets et des applications écrites en Java. JRE est aussi le fondement de la technologie de J2EE, JRE ne contient pas d outils et d utilitaires comme un compilateur ou un debugger. Le SDK regroupe tous les outils du JRE ainsi qu un compilateur et un debugger pour développer des applications. Figure 1 Source Sun.com L API définit la manière par laquelle les applets et les applications interagissent et utilisent les fonctions disponibles dans les classes du J2SE. - 9 - Décembre 2003

L API Java est organisé dans deux groupes Core Java (Le Coeur) et Desktop Java. Core Java regroupe les fonctions essentielles pour les applications écrites en Java, comme les accès aux bases de données, la sécurité, RMI, communication Desktop Java regroupe de nombreux outils pour développer des applications clientes riches, comme Java Plug In, JavaBeans, Java Foundation Classes (JFC), Swing et de nombreuses API multimédia. 2.1.1. Core Java Java Authentication and Authorization Service (JAAS) Cette API peut être utilisée pour l authentification des utilisateurs, pour déterminer l utilisateur qui est en train d exécuter le programme, sans se soucier que le programme en cours d exécution soit une application cliente, une applet, un composant JavaBean ou un servlet. JAAS permet aux applications de rester indépendantes des techniques d authentification. Les nouvelles techniques ou les modifications des techniques d authentification existantes peuvent être implémentées sans pour autant modifier le code de l application. JAAS étend la sécurité de l architecture Java en utilisant une police de sécurité pour spécifier les droits d exécution de l utilisateur. Les principales caractéristiques de JAAS S assurer que l utilisateur a les droits requis pour exécuter les fonctions de l application. Il est natif Java Supporte le Single Sign-on - 10 - Décembre 2003

Gestion souple des droits pour les utilisateurs et les groupes Interaction avec d autres modes d authentification Java Naming and Directory Interface (JNDI) o UNIX o WINDOWS o Kerberos o Keystore Java Cryptography Extension (JCE) JCE est un package pour encrypter, générer des clés de cryptage et de décryptage, il connaît également l algorithme MAC (Message Authentification Code) Java Secure Socket Extension (JSSE) JSSE permet de sécuriser les communications sur Internet. Il implémente une version du protocole SSL et TLS et des fonctionnalités pour l encryptage des données, l authentification sur les serveurs, l intégrité des messages et d autres options d authentification. Les développeurs peuvent construire des échanges de données sécurisées entre un client et un serveur sur un réseau TCP/IP par l intermédiaire des protocoles http, Telnet, NNTP et FTP. Les principales caractéristiques de JSSE Natif Java SSL V3 TLS 1.0 Utilisation simple des clés publiques et privées de cryptage et des certificats. Les classes SSLSocket et SSLServerSocket peuvent être instanciées pour créer des canaux de communication sécurisés Support HTTPS Server Session Management pour gérer le cache des sessions L algorithme RSA Cryptography - 11 - Décembre 2003

Les autres algorithmes de cryptage Cryptage RSA (authentication and key exchange) AES (bulk encryption) RC4 (bulk encryption) DES (bulk encryption) Triple DES (bulk encryption) Diffie-Hellman (key agreement) Clé (Bits) 2048 (authentication) 2048 (key exchange) 512 (key exchange) 128 256 128 128 (40 effective) 64 (56 effective) 64 (40 effective) 192 (112 effective) 1024 512 DSA (authentication) 1024 Java DataBase Connectivity (JDBC) L API JDBC permet aux applications Java d accéder aux bases de données SQL standard du marché. JDBC permet d établir une connexion à une base de données, d exécuter des requêtes SQL et de traiter les résultats. L architecture JDBC JDBC contient 2 principaux jeux d interface, une pour accéder proprement dit aux données et la seconde pour écrire des drivers. - 12 - Décembre 2003

Les applications et les applets peuvent accéder aux bases de données via JDBC en utilisant une technologie native Java : Sur la partie gauche, le driver JDBC s adresse, par l intermédiaire d un protocole réseau, directement à la base de données. C est une liaison directe entre le client et la base de données. Sur la partie droite, le driver JDBC s adresse à un middleware qui gérera les requêtes vers la base de données. Le middleware peut aussi s adresser à différents systèmes de base de données. - 13 - Décembre 2003

Connexion par l intermédiaire de JDBC en utilisant ODBC et des librairies d accès propriétaires de la base de données: Sur la partie gauche, la combinaison JDBC et ODBC permet d interroger la base de données. Cette solution est à utiliser dans le cas où il n existe aucun autre driver. Sur la partie droite, le driver convertit les appels JDBC en appels natifs Oracle, Sybase, Informix, DB2 etc Cette configuration impose que les librairies pour l accès natif soient présentes sur les machines clientes. Avantages de JDBC Ouverture des données Avec JDBC les entreprises ne sont pas enfermées dans des architectures propriétaires et ils peuvent continuer à utiliser leur base de données et - 14 - Décembre 2003

d accéder en même temps à d autres bases de données. Simplification du développement JDBC masque la complexité d accès à certaine base de données. JDBC est simple à apprendre, facile à déployer et peu coûteux à maintenir. Aucune configuration des postes clients Toutes les informations nécessaires à l accès aux données sont définis par le JBDC URL ou par un objet DataSource enregistré avec Java Naming and Directory Interface (JDNI). Java Platform Debugger Architecture (JPDA) JPDA fournit une infrastructure nécessaire pour debugger des applications. JPDA inclut 3 outils : Java Debug Interface (JDI) pour le debuggage de «haut niveau»; Java Debug Wire Protocole (JDWP) qui définit le format des informations et les requêtes échangées entre le debugger et l application; Java Virtuel Machine Debug Interface (JVMDI) est un debugger de «bas niveau» pour analyser les échanges avec la JVM. Java Remote Methode Invocation (RMI) RMI permet de créer des applications ou des composants pouvant être appelés par différentes JVM sur différentes machines. Java Naming and Directory (JNDI) JNDI joue un rôle essentiel dans les applications Intranet et Internet pour accéder aux informations sur les utilisateurs, les machines, les réseaux, les services et les applications. JNDI permet de nommer et de répertorier les fonctions des applications Java. JNDI a été créé spécialement pour la plate forme utilisant le model objet Java. Les applications basées sur la technologie Java peuvent découvrir et retenir les autres composants Java, identifier les attributs et les objets utilisant ces attributs. JNDI permet aussi aux applications d accéder aux autres systèmes de nommage et d annuaire, comme LDAP, NDS, DNS, et NIS. - 15 - Décembre 2003

Java Management Extensions (JMX) JMX est une technologie ouverte pour manager et surveiller les systèmes et les applications. Java Communications API Cette API peut être utilisée pour écrire des applications de communication comme les mails et les fax. Elle supporte aussi les ports RS232, IEE 1284, et les ports parallèles. Ses fonctions peuvent Identifier les ports disponibles Ouvrir une communication Gérer les accès concurrentiels aux ports Communiquer de manière synchrone et asynchrone Java Telephony API Cette API a été créé pour développer simplement des applications en supportant les technologies actuelles de téléphonie et en restant ouverte sur les technologies futures. Elle inclut toute les fonctions de gestion d une centrale téléphonique et peut être déployée sur toutes les architectures techniques. Cette API est supportée par les plates formes téléphoniques courantes du marché comme Microsystem s SunXTL, Microsoft et INTEL TAPI, Novell et Avaya TSAPI et IBM CallPath. 2.1.2. Desktop Java Java Runtime Environment (JRE) JRE inclut les librairies, la Machine Virtuelle (JVM) et d autres composants pour exécuter les applets et les applications écrites en Java. Deux voix pour le développement font partie entière de JRE : Java Plug-in qui est capable d exécuter les applets sur les plus populaires navigateurs Web Java Web Start pour le déploiement des applications à travers les réseaux - 16 - Décembre 2003

Java Web Start Java Web Start fournit un déploiement flexible et fiable sur des solutions développées en java. Cette API est développée dans le cadre du groupe de JCP (Java Community Programme) sous le nom de The Java Network Launching Protocol & API. La technologie Java Web Start fonctionne sur tous les navigateurs et tous les serveurs Web. La principale fonction de cette API est de déterminer et d installer automatiquement la version de la plate forme Java nécessaire à son exécution. JavaBeans Le but des JavaBeans est de définir des composants développés par des sociétés et pouvant être assemblé entre eux. Il y a deux sortes de JavaBeans Certains composants peuvent être de petits composants ne pouvant exister seuls, mais assemblés avec d autres ils forment des applications plus importantes. D autres composants peuvent être des applications indépendantes, par exemple un composant tableur peut être intégré dans un document Web. Les composants peuvent être encapsulés les un dans les autres. La portabilité du langage fait de cette encapsulation un atout majeur pour intégrer le composant «root» dans des environnements propriétaires tels que des documents Word, un programme en VB etc Ces composants peuvent aussi fournir des fonctionnalités supplémentaires aux environnements dans lesquels ils s exécutent. Par exemple, un système ne prenant pas en charge les barres de menu, un composant JavaBeans fournissant des API peut palier à ce manque. - 17 - Décembre 2003

Java Foundation Classes (JFC). JFC est un ensemble d'api de base pour créer des applications graphiques, il regroupe : Abstract Window Toolkit (AWT) AWT intègre des fonctions pour utiliser les fonctions graphiques du système sur lequel le programme Java s exécute. Java 2D pour la gestion des graphiques, des images, des textes et des impressions Swing est une extension de AWT offrant des fonctions graphiques plus avancées Internationalization pour la gestion des différentes langues utilisées par les utilisateurs. JFC offre la possibilité de créer des applications graphiques pour le Web (les applets Java) ce qui enrichit considérablement les pages HTML en les rendant dynamiques dans leurs contenus, animées, interactives. JFC permet aussi une mise à jour simplifiée des applications. Une autre technologie JavaServer Pages, inclut dans J2EE (Java 2 Entreprise Edition), rend facile la construction de contenu Web dynamique en mélangent les données et le code HTML. Cette technologie est l équivalant des ASP (Active Server Page) de Microsoft. AWT et SWING AWT (Abstract Window Toolkit) est historiquement la première interface graphique qui fut proposée. La contrainte de l AWT, ou l avantage (c est à double tranchants), c est que Java fait appel au système d exploitation sous-jacent pour afficher les composants graphiques. Pour cette raison, l affichage de l interface utilisateur d un programme peut diverger sensiblement : chaque système d exploitation dessine à sa manière un bouton. AWT garantit que la fonctionnalité recherchée sera dans tous les cas fournit (mais présentée différemment). - 18 - Décembre 2003

Or Java se veut être 100% indépendant de la plateforme utilisée, pour cette raison, une nouvelle API fut définit. Mais hormis ce détail d affichage, l AWT présente un avantage indéniable : en utilisant les objets graphiques de l OS, la rapidité d exécution est augmentée. SWING fut donc mis en place pour assurer 100% de portabilité. Le pari est gagné, mais à un coup non négligeable car pour assurer cette portabilité, un bouton (au tout autre composant graphique) est dessiné non plus par l OS, mais par la JVM, ce qui est important en terme de temps d exécution. En fait, SWING est présenté comme étant écrit uniquement en Java mais en réalité Java doit au moins être capable d interagir avec l OS pour pouvoir tracer un point. Or c est ce que font les classes de base de l AWT. En conséquence, tous les composants de SWING dérivent d une classe de l AWT. Les mécanismes de gestion d évènements et de positionnement des composants de l AWT restent utilisables avec SWING. Donc, certaines classes déjà utilisées avec l AWT sont toujours disponibles. En terme d importation de package, cela implique qu un programme SWING doit malgré tout importer certains packages de l AWT. Interaction de Swing avec l utilisateur Swing regroupe tous les composants graphiques nécessaires pour créer des interfaces graphiques évoluées, comme les boutons, les tree-views, les barres de menu, les boites de dialogue, le copier- coller, etc Swing intègre aussi un package pour le texte offrant une gestion avancée de style et d édition. Quatre styles graphiques sont disponibles rappelant les OS majeurs du marché et les développeurs peuvent en créer d autres afin de donner une identité visuelle à leurs applications. - 19 - Décembre 2003

Java Sound Java Sound permet de capturer, de traiter et de restituer des données audio en plusieurs formats. Son moteur 16 Bits 32 canaux est capable de redistribuer le son à un taux d échantillonnage variant de 8 à 48 khz et est parfaitement adapté au streaming. Java Sound intègre le support audio de bas niveau et de ce fait un contrôle étendu des systèmes audio et MIDI des cartes son. Java Sound n a pas été conçu pour fonctionner de façon indépendante, mais comme une plate forme d interface destinée à la création de divers outils audio. Une des applications utilisant Java Sound ayant révolutionné Internet est le tchatche vocal. Java Media Framework (JMF) JMF prend en charge l audio et la vidéo. JMF permet de capturer, de jouer, de distribuer en streaming et de convertir toutes sortes de flux vidéo et audio. Cette extension à Java Sound permet de développer des applications multimédia très complètes et portables sur différent système. Java 3D Java 3D est une interface de programmation permettant d écrire des programmes affichant et interagissant avec des objets graphiques dans un espace à 3 dimensions. Elle utilise les fonctions des cartes graphiques en s appuyant sur OpenGl ou DirectX. De nombreuses classes permettent de lire des fichiers d un format particulier pour créer des représentations en 3D, comme les format 3D StudioMax, le fichier DXF pour la CAO et VRML. Créer des scènes en 3D peut être complexe. Dans ce cadre, l utilisation de Java permet de bénéficier de la structuration d un langage de programmation objet et d une API 3D très riche. Cette dernière permet de construire «facilement» des mondes 3D complexes où évoluent des objets graphiques. - 20 - Décembre 2003

Java Advanced Imaging (JAI) JAI permet de manipuler, de convertir des images. JAI connaît plus de 100 opérations de traitement d image, prend en charge les formats BMP, GIF, FPX, PNG, PNM et TIFF. En utilisant conjointement Java 2D et JAI, les images et les graphiques se fusionnent pour offrir des effets visuels surprenant aux utilisateurs. Java Speech Java Speech permet une interaction entre la voix et l application. L utilisateur peut piloter l application avec la voix, l application peut reconnaître la voix et ainsi autoriser l accès à un lieu. L interaction est ainsi bidirectionnelle. JavaHelp JavaHelp permet d écrire des aides destinées aux utilisateurs. Ecrit entièrement en Java, JavaHelp peut s exécuter sur tous les systèmes disposant d une JVM. Il s appuie sur JFC ce qui rend le développement de l aide simple et flexible. - 21 - Décembre 2003

2.2. Java 2 Entreprise Edition (J2EE) "Une Plate Forme pour l entreprise" J2EE définit le standard pour le développement d application pour l entreprise en se basant sur la modularité des composants et en offrant de nombreuses fonctionnalités pour les manipuler. J2EE reprend plusieurs fonctionnalités de J2SE comme la portabilité, JDBC, la technologie CORBA pour l interaction avec les ressources existantes de l entreprise et un model de sécurité pour la protection des données. Partant de cette base, J2EE ce voit complété par des composants orientés entreprise, comme les JavaBean, Java Servlets, Java Server Pages et XML. Le modèle pour les applications d entreprise: Java BluePrints Design Guidelines pour J2EE décrit l architecture et les bonnes pratiques pour utiliser J2EE. Le modèle J2EE offre une approche simple pour le développement d application Internet ou intranet les plus complexe. - 22 - Décembre 2003

L un des avantage de ce modèle est d encapsuler le «Coeur du métier» de l entreprise dans les Entreprises JavaBeans (EJB). L interaction avec le client se fait par le biais de pages HTML ou des applets Java générés par des Java Servlet ou par la technologie JavaServer Pages. L échange des informations se fait par des protocoles de communication standard comme HTML, XML, HTTP, SSL, RMI, IIOP etc Ce modèle d architecture favorise également la réutilisation des composants métier et d'augmenter le gain de temps pour les développements futurs. Ce modèle divise les applications en trois parties : les composants, les conteneurs et les connecteurs. Les composants sont la clé de voûte des applications, les conteneurs et les connecteurs sont adaptés en fonctions des plateformes. Les conteneurs se placent entre les clients et les composants. Ils gèrent les transactions entre les clients et les composants. Les connecteurs permettent une communication entre les différents composants. Les clients peuvent aussi bien être des PDA, des téléphones portables, des clients Web ou d autres types d appareils. Une technologie d affichage, de présentation est disponible pour chaque type de clients, les informations sont formatées par les servlet et/ou les JavaServer Pages. - 23 - Décembre 2003