Support de formation de l'initiation Java web
Conception
Pascal Cauquil
Modifications
Fabrice Benedet
Date création :
21/05/08
Référence:
-
Dernière modif. :
25/06/08
Pages
44
Diffusion : IS, formateurs et participants à la formation Bases de données scientifiques
Présentation/résumé
Ce fichier (support_cours_v1.2.odt) est le support de cours de l'initation Java/web
pour la formation IS/DSI Bases de données scientifiques.
Durée : ½ journée.
Il aborde :
une présentation de Java
les méthodes de développement d'applications web avec Java
un TP d'initiation au framework Struts 2
Note : Certaines définitions sont tirées de Wikipédia.
25 juin 2008 – IRD-IS/DSI - support_cours_v1.2.odt
1/44
1. Découverte de Java
1. Qu'est-ce que Java ?
Java est un langage de programmation mis au point par Sun Microsystems dans les années
90. La première version sort en 1995.
A présent, il est plus juste de considérer que Java est non seulement un langage de pro-
grammation, mais surtout une sphère autour de laquelle gravitent des concepts, des techno-
logies, des acteurs industriels, des serveurs, dont le but est de permettre l'application du lan-
gage Java à un ensemble très varié de contextes d'utilisation.
2. Particularités
Comparé à d'autres langages, Java présente les caractéristiques suivantes.
1. Indépendance vis-à-vis de la plate-forme d'exécution
Le code compilé par le compilateur, appelé bytecode Java, est indépendant de la plate-
forme d'exécution (du matériel comme du système d'exploitation).
Cette caractéristique n'est rendue possible que par l'entremise d'une machine virtuelle
(JVM), à savoir un programme qui s'intercale entre le programme Java à exécuter et le sys-
tème d'exploitation, et dont le rôle est de traduire le bytecode Java dans un code compré-
hensible par le système cible.
La machine virtuelle, quant à elle, reste évidemment spécifique à chaque couple
machine/système d'exploitation. Cependant, cette dépendance est à relativiser car des ma-
chines virtuelles existent pour une grande variété de systèmes :
PC sous Windows et Linux
Macintosh : architectures PPC et x86
Systèmes Unix : IBM AIX, HP-UX, Sun Solaris...
Périphériques mobiles sous Symbian, Linux, Windows Mobile...
et bien d'autres...
25 juin 2008 – IRD-IS/DSI - support_cours_v1.2.odt
2/44
Illustration 1 : Pricincipe d'exécution du bytecode Java
La contrepartie de cette architecture est une vitesse d'exécution notablement inférieure à
celle d'un code natif.
2. Un environnement libéré
Initialement, Java n'est pas une technologie libre. Jusqu'en novembre 2006, les codes
sources du compilateur et de la machine virtuelle HotSpot VM, machine de référence, sont la
propriété de Sun Microsystems. Pour autant, leur utilisation est gratuite, même en environne-
ment professionnel ou à but commercial.
Par ailleurs, s'il est vrai que le code source de la JVM de Sun est privé, Sun publie l'en-
semble des spécifications qui permettent à des tiers la conception de leur propre machine
virtuelle.
Ces deux facteurs ont permis l'émergence d'un marché décentralisé et même d'une commu-
nauté autour de cette technologie, malgré ses aspects propriétaires.
En novembre 2006, Sun annonce qu'il va progressivement libérer tous les aspects de la
plate-forme : codes sources du compilateur, de sa JVM, du serveur J2EE GlassFish et tout
le code Java son désormais sous licence GNU GPL1. Ceci laisse espérer un accroissement
de la communauté.
3. Développement exclusivement orienté objet
Certains langages, comme le PHP, permettent de programmer en objet, sans y contraindre.
L'objet lui est une surcouche. D'autres, comme le C++, sont une évolution objet d'un langage
procédural. A l'inverse, l'approche objet a dicté la conception de Java, et il n'est pas envisa-
geable de programmer avec ce langage dans le style procédural.
3. Les applications possibles
Java est un langage versatile. Il s'applique à une grande variété d'utilisations.
1. Les applications web
C'est actuellement le domaine dans lequel Java se développe le plus. Beaucoup de sites
web d'envergure fonctionnent avec cette technologie.
En programmation Internet se pose toujours la question de la plate-forme d'hébergement,
souvent imposée par le fournisseur de service. Par son indépendance vis-à-vis de la plate-
forme d'exécution, Java répond bien à cette problématique.
2. Les application graphiques dites "lourdes"
Java permet de construire des applications fenêtrées traditionnelles, avec le principe d'indé-
pendance par rapport au système hôte.
Néanmoins, l'utilisation de Java pour le développement d'application fenêtrées est toujours
restée, jusqu'à présent, assez limitée.
Sun propose depuis longtemps deux librairies graphiques :
AWT : c'est la bibliothèque historique. Elle exploite les composants2 natifs de la plate-
forme d'exécution. L'avantage est que la réactivité de l'interface est bonne, compa-
rable aux autres types d'interfaces. Mais comme l'application doit pouvoir s'exécuter
1L'extension ClassPath à la licence GNU GPL permet d'utiliser cette JVM GPL sans pour au-
tant que les applications soient elles aussi nécessairement sous licence GPL
2boutons, listes déroulantes, champs texte...
25 juin 2008 – IRD-IS/DSI - support_cours_v1.2.odt
3/44
sur toutes les systèmes, on ne peut utiliser que les composants graphiques représen-
tant le dénominateur commun à toutes les plates-formes : on est donc très limité.
Swing : Au lieu de faire appel aux éléments graphiques (widgets) proposés par le
système hôte, Swing les dessine elle-même3. Il n'y a donc plus de limite à la créativié.
Par contre cela induit une lourdeur et des temps d'affichage qui grèvent les perfor-
mances de façon non négligeable. Par ailleurs, Swing n'est pas esthétiquement très
flatteur.
Depuis quelques années, IBM propose une alternative intéressante : SWT. SWT réunit le
meilleur des deux mondes en utilisant les composants natifs lorsqu'ils existent, et en dessi-
nant elle-même les widgets lorsque c'est nécessaire. Les applications SWT sont esthétiques
et performantes. Le frein à la démocratisation de SWT est à imputer à Sun qui refuse tou-
jours d'inclure SWT comme bibliothèque standard dans les spécifications Java.
L'environnement de développement Eclipse est bâti sur SWT4.
3. Les applications mobiles
Des JVM existent pour les terminaux de petite taille. On distingue deux types de terminaux :
Ceux dont la puissance est suffisante pour implémenter la totalité des spécifications
Java, comme les PDA ou les téléphones portables évolués (smart phones)5. Dans ce
cas la portabilité des applications entre ces terminaux et le reste des plates-formes
plus conventionnelles est assurée.
Ceux dont la puissance est limitée et qui n'implémentent qu'une partie des spécifica-
tions Java6. Ces terminaux ne peuvent exécuter que des applications de type CLDC.
A titre d'exemple, les jeux pour téléphones portables, de même que le navigateur
OperaMini ou GoogleEarth Mobile sont développés en Java CLDC.
3On parle de composants pur Java
4C'est d'ailleurs pour réaliser Eclispe qu'IBM a développé SWT
5plates-formes dites CDC
6plates-formes dites CLDC
25 juin 2008 – IRD-IS/DSI - support_cours_v1.2.odt
4/44
Illustration 2 : Exemple d'application Swing s'exécutant sous
Linux : PDFSAM
4. Les applications en ligne de commande
Il est tout à fait possible de réaliser des applications de type console, qui peuvent s'exécuter
sur des systèmes sans interface graphique, voir même sans système d'affichage (modem,
robot...).
5. Convergence des technologies
Quelque soit le média visé, on emploie le même langage de programmation. Ainsi, en déve-
loppement web, on programme la couche métier des applications web avec le même lan-
gage et les mêmes bibliothèques de fonctions que l'on utiliserait pour développer une appli-
cation fenêtrée traditionnelle.
Un corollaire intéressant est que l'on peut réutiliser pour le web les bibliothèques de fonc-
tions qui ont été développées pour une application fenêtrée, et vice-et-versa.
Autre atout intéressant : on dispose pour le web de toutes bibliothèques de fonctions Java
existantes7. Quelques exemples :
statistiques : Apache Common Math
création de graphiques : jFreeCharts
mapping objet-relationnel : Hibernate, Oracle Toplink
tous les pilotes de bases de données JDBC
Par exemple, un organisme en charge d'un système d'information peut bâtir sa stratégie de
développement sur ce principe de réutilisabilité. Imaginons que nous ayons une base de
données destinée à la gestion d'enquêtes :
Nous développons dans un premier temps un logiciel de saisie pour cette base, sur
poste de travail. En bons développeurs, nous adoptons une architecture modulaire et
externalisons les fonctions qui le méritent dans des bibliothèques externes, particuliè-
rement les composants de la couche d'accès au données.
Puis se fait sentir la nécessité de publier les résultats des enquêtes sur le web. Nous
développons la couche de présentation, spécifique au web. Mais la couche d'accès à
la base de données est déjà prête. Il suffit de l'importer dans le projet web et de la
connecter aux composants de présentation.
Enfin, pour optimiser la collecte de données, nous développons une application sur
ordinateur de poche (PDA). aussi, la couche d'accès aux données est réutilisée.
Seule l'interface graphique doit être adaptée à la petite surface d'affichage du termi-
nal.
7le plus souvent libres, parfois commerciales
25 juin 2008 – IRD-IS/DSI - support_cours_v1.2.odt
5/44
Illustration 3 : Schéma d'une appli -
cation web Java
1 / 44 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !