Upload
laure-gras
View
104
Download
0
Embed Size (px)
Citation preview
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT
UV Java
DSI ETUDES Module Java Expert
Module UV JavaPage 2 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module Java
Vue d’ensemble du langage Java Le langage Java : syntaxe et sémantique Programmation multi-tâche : les threads Accéder aux bases de données Composants réutilisables : le modèle MVC Développement Client/Serveur Présentation d’un IDE : WSAD / Forté / JBuilder Les serveurs d’applications J2EE Les Enterprise JavaBeans Ré-ingénierie d’applications Java
Module UV JavaPage 3 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Résumé
Java 2 est une mise à jour de la plate-forme Java, dans le but d’accroître les performances de Java, ses fonctionnalités, et la sécurité.
Dans ce cours, je propose une vue d’ensemble des nouvelles caractéristiques de Java.
Module UV JavaPage 4 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Plan
Points forts Histoire et Compatibilité Caractéristiques Questions & Réponses
Module UV JavaPage 5 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Vue d’ensemble Java 2
Module UV JavaPage 6 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Points Forts de Java
JFC et Swing– Un framework pour la construction d’applications GUI
professionnelles.
Collections Framework– Un ensemble de structures de données standards et
d’algorithmes, basés sur des interfaces.
Sécurité– modèle de sécurité fine, cryptographie.
Module UV JavaPage 7 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Points Forts (suite)
Enterprise Java– JDBC, CORBA, JNDI, et RMI ont été améliorés et font partis du
”noyau"
Encore plus!– Objets Référence, amélioration des performances, extensions des
Standards, Javadoc, les variables ThreadLocal, la correction de bogues, et l’amélioration des classes existantes.
Module UV JavaPage 8 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Stratégie Java
Module UV JavaPage 9 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Quels avantages ?
Stable Nouvelles caractéristiques compatible avec les versions précédentes VM plus rapide
Module UV JavaPage 10 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Une Brève Définition
L’environnement de développement Java comprend– La Machine Virtuelle (VM)– Le Langage– Les librairies Noyaux
• les classes java.*, javax.*
Module UV JavaPage 11 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Histoire du Kit de Développement Java
Alpha, Beta (1995) JDK 1.0 (Jan. 1996) JDK 1.1 (Fév. 1997) JDK 1.2, Java 2 (Déc. 1998) J2EE, J2SE 1.4, J2ME (Sept. 2001)
Module UV JavaPage 12 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Evolution JDK
JDK 1.0 - Spécification VM finalisée JDK 1.1 - Langage et librairies améliorés
– classes internes, reflection– RMI, Events, composants légers
JDK 1.2 (Java 2) - une version performantes avec de nouvelles librairies
Module UV JavaPage 13 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Compatibilité JDK
Toutes les anciennes caractéristiques sont disponibles dans JDK 1.2
La plupart des nouvelles caractéristiques sont compatibles avec le JDK 1.1– ajouter les nouvelles classes dans le CLASSPATH
Module UV JavaPage 14 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Compatibilité côté Client
Java était supposé révolutionner la distribution de logiciels– Surf sur le web, et download la dernière version
Toutefois, il y’ a eu des problèmes– Bande passante Limitée– Technique de cache pauvre– La JVM dans le browser n’était jamais mise à jour
Module UV JavaPage 15 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Java Plug-In (Activator)
Browser VM automatiquement mis à jour Distribution de logiciels en Intranet et sur Internet
Module UV JavaPage 16 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Améliorations de la Performance
Support des Threads Natifs Compression de la Mémoire pour les classes
chargées Allocation Mémoire et Garbage Collection plus rapide Augmentation de la rapidité de gestion des Moniteurs
Module UV JavaPage 17 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Autres améliorations
Extensions du Framework améliorations des JAR, JNI, Reflection, pont JDBC-
ODBC Servlets Javadoc (un outil)
Module UV JavaPage 18 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Une Architecture Technique
Module UV JavaPage 19 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Architecture Java
JDK 2.0
JAVA Beans
Serveurs
API deSécurité
RMI JDBC JNI Internationalisation
Java Core ReflectionJNDI
ServerAPI
JavaIDL
Machine ViruelleJava OS + Embedded API +
Personal API
PCs NC PDA Puces Java
Horizontale
Couche système
Plates-formes cibles
MediaAPI
CommerceAPI
Management APITransaction
ServicesAutres API Verticale
JDK1.0/1.1
Module UV JavaPage 20 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Machine Virtuelle : émulateur
Byte-Code MicroProcesseur logiciel
– Jeu d'instructions
– Registres
– Pile, Heap
– Ramasse-miettes
– Espace de stockage des méthodes
– Tas de constantes ==> Compilé ou Interprété
Compilateurjavac
Byte-Code.class
MVInterpréteur
SE
Matériel
Source.java
Module UV JavaPage 21 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Caractéristiques du langage Java 2
Module Java
Module UV JavaPage 22 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Swing
Réécriture complète de l’ensemble des composants graphiques:– JButton, JFrame, JLabel…
les classes basiques AWT peuvent toujours être utilisées– Window, Graphics, Image
Module UV JavaPage 23 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
AWT = Peer Architecture
Chaque composants ne s’affiche pas lui-même– possède un objet “peer”
– Peer interagit avec les composants graphiques natifs de l’OS
– Les composants natifs effectuent l’affichage et la gestion des événements
2 problèmes majeurs– Impossible d’étendre les composants graphiques (sous classes)
– Comportements différents sur les plate-formes
• Look différent, agissements différents, bugs différents
Module UV JavaPage 24 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Swing = Portabilité
Tous les composants sont 100% Pure Java– pas de composants peers– Utilise le Graphics pour afficher
“J” versions de tous les composants de base– JButton, JFrame, JList, etc.
Module UV JavaPage 25 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Swing = Consistant
Tous les composants graphiques partagent des fonctionnalités communes– Double-buffer– Tooltips– Extensible via les sous classes– Gère la touche tab pour le focus– Supporte les raccourcis clavier– Internationalisable
Module UV JavaPage 26 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Swing = Consistant (suite)
JButtons et JLabels peuvent contenir des icônes– construit à partir des fichiers GIF.
JPanels possèdent des bordures standards JMenus et JMenuBars peuvent être ajoutées à
n’importe quel container
Module UV JavaPage 27 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Nouveaux composants Swing
JTree– Liste Hiérarchique
JTable – Ligne-colonne– Re-dimensionnable / colonnes déplaçables
Module UV JavaPage 28 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Nouveaux composants Swing
JScrollPane– Possibilité de défilement pour n’importe quel composant ou
container, juste en l’ajoutant au JScrollPane
JToolbar– panel flottant contenant des petites icônes
JEditorPane– éditeur texte– rendu complet et fonctionnel HTML (!!!)
Module UV JavaPage 29 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Concepts Conception Swing
MVC– Possibilité d’utiliser ses propres modèles de données pour
quelque soit le composant graphique
– E.g. utilisation d’une base de données pour remplir une JTable Pluggable Look And Feel (“PLAF”)
– Affichage comme Macintosh ou Windows, ou Metal Events et Java Beans
– Utilise les standards JDK1.1
Module UV JavaPage 30 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
JFC vs. Swing
JFC = Swing + Drag-and-drop + Java2D + Accessibilité + d’autres services (navigation par le clavier, Undo, Redo).
Swing est dans JFC, mais JFC n’est pas Swing
Module UV JavaPage 31 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
JFC
Drag-and-drop– et copy-and-paste
Java2D– librairies graphiques - mises à l’échelle, rotations, fontes– ne fonctionnent pas parfaitement
Accessibilité– utilisateurs particuliers (aveugles, etc.)
Module UV JavaPage 32 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Le Framework Collections
Module Java
Module UV JavaPage 33 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Types de données Abstraits
Structures de données et algorithmes standards Facilement compréhensible Efficaces Exemples
– Piles, queue, liste liée
Module UV JavaPage 34 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Conception orientée Interface
Séparation de l’interface et de l’implémentation Polymorphisme
– List l = new LinkedList();
– Appel de l.add() invoque une méthode de la classe LinkedList
Module UV JavaPage 35 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Le Framework Collections
Architecture pour la définition et la manipulation de collections
Réduit les efforts pour apprendre les APIs Réduire l’effort nécessaire pour concevoir et implémenter
les APIs réutilisation
Module UV JavaPage 36 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Buts du Framework
Petites API en terme de :– Nombre d’interfaces– Nombre de méthodes par interface
Construction basée sur des collections existantes Java (Vector, Hashtable)
Possibilité de conversions avec des tableaux Java
Module UV JavaPage 37 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Résumé: Interfaces Noyaux
Collection Set List Map SortedSet SortedMap
Module UV JavaPage 38 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Java Entreprise
Java devient le standard pour l’informatique d’Entreprise.
Large, distribué, fiable, extensible, haute-performance, orienté bases de données, transaction, etc.
Module UV JavaPage 39 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Eléments Java Enterprise
CORBA (JavaIDL)– Maintenant un paquetage Java– ORB Java2 100% Pure Java
RMI– sockets Personnalisables (SSL, IIOP)– Activation d’objets distants
Module UV JavaPage 40 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Enterprise Java (cont.)
Transactions (OTS/JTS)– support de transactions distribuées– Compatible avec le standard CORBA
JDBC amélioré– pool de connections, rowsets (sorte de vue de bases de données
Bean), transactions distribuées, types de données supplémentaires, etc..
Module UV JavaPage 41 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Enterprise Java Beans
API Commune pour le développement de composants orientés business
serveurs EJB indépendant du Vendeur 100% Pure Java Sécurité
Module UV JavaPage 42 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Conclusion
Augmente la productivité– moins coûteux pour les décideurs
– plus intéressant pour les programmeurs (comparer) Langage d'avenir pour :
– les applications distribuées (portabilité, sécurité)
– le développement OO• simple, puissant, outillé, bibliothèques
– les applications embarquées Introduit tous les mécanismes des langages de programmation
modernes Langage universel
Module UV JavaPage 43 / 43
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Quelques adresses pour obtenir de l’Information:
sites Web
– http://www.Developer.com/ (Gamelan)– http://www.JavaWorld.com/ (magazine)– http://java.sun.com/ (sun)– http://www.alphaworks.ibm.com/alphaBeans