Vous êtes sur la page 1sur 47

Java et le dveloppement dapplications web J2EE

EL Moukhtar ZEMMOURI
Licence Professionnelle en Informatique Facult des Sciences - UMI

Contenu du cours
Architectures Multi-tiers Larchitecture J2EE JDBC Les servlets JSP : Java Server Page JavaBeans et EJB Struts et le modle MVC Les serveurs dapplications : Tomcat et WebSphere Rgles de conception.
2

Larchitecture J2EE Java 2 Entreprise Edition

Plan
Principes J2EE Les composants utiliss Topologies d'une application J2EE Technologies utilises

Principes de J2EE
Larchitecture J2EE est une architecture dapplication distribue base de composants Elle identifie et donne les spcifications des composants de lapplication : composants logiciels ou beans (EJB), conteneur serveurs clients
5

Principes de J2EE

Principes de J2EE
Les conteneurs isolent les beans du client et dune implmentation spcifique du serveur. Les beans sont installs dans la partie serveur dune application J2EE. Les beans constituent les composants mtiers de larchitecture J2EE

Principes de J2EE
Les conteneurs et serveurs implmentent les mcanismes de bas niveau utiliss par les applications :
transactions, persistance, gestion de la mmoire, scurit

Principes de J2EE
Les spcifications J2EE sintressent aux activits dune application lies :
au dveloppement, au dploiement, Et lexcution

Composant J2EE
C'est une unit logicielle de niveau applicatif. En plus des JavaBeans, qui font partie du J2SE, J2EE supporte les types de composants suivants :
applets & applications clientes, composants Enterprise JavaBeans (EJB), composants Web (servlets et JSP),
10

Composant J2EE
Les applets et applications clientes sont excutes sur le poste du client Les composants EJB et Web fonctionnent sur le serveur Les concepteurs et dveloppeurs d'applications dveloppent les composants d'une application J2EE.
11

Conteneur de composants J2EE


Tous les composants J2EE dpendent l'excution d'une entit systme appele conteneur (container). Les conteneurs fournissent aux composants des services de bases comme :
la gestion du cycle de vie, la scurit, l'excution en thread.
12

Conteneur de composants J2EE


Comme c'est le conteneur qui gre ces services, la plupart des paramtres de configuration de ces services peuvent tre configurs lors du dploiement des composants en fonction de la plate-forme d'accueil: Par exemple un fournisseur d'Enterprise Java Bean peut spcifier un nom de base de donnes auquel le composant doit accder et c'est seulement lors du dploiement que les informations d'accs la base (nom d'utilisateur et mot de passe ) seront configures.

13

Les composants clients J2EE


La plate-forme J2EE prvoit plusieurs types de clients pour accder une mme application et interagir avec les composants ct serveur :
les Applets, les applications autonomes

14

Composants client : les applets


Ce sont des clients Java qui s'excutent dans un navigateur Web et qui ont accs toutes les possibilits du langage Java. Les applications J2EE les utilisent pour avoir des interfaces utilisateurs plus puissantes que celles connues en HTML (+ scurit). Les applets communiquent avec le serveur par HTTP.

15

Composants client : application autonome S'excutent dans leur propre conteneur client. Le conteneur client est un jeu de librairies et d'API qui supportent le code client, et mettent sa disposition un moyen d'accder aux composants mtiers de l'application (serveur). Les applications clientes ont des interfaces utilisateurs qui peuvent directement interagir avec le tier EJB en

16

Composants client : application autonome Les clients ont un accs complet aux services de la plate-forme J2EE comme :
les services de nommage JNDI, l'envoi de messages et JDBC.

Le conteneur client gre l'accs ces services et les communications RMI.
17

Les composants web J2EE


Un composant Web est une entit logicielle qui fournit une rponse une requte. Les composants Web gnrent habituellement l'interface utilisateur d'une application Web. La plate-forme J2EE dfinit 2 types de composants Web :
les servlets et les JavaServer Pages (JSP).
18

Les servlets
Une servlet est un composant qui tend les fonctionnalits d'un serveur Web de manire portable et efficace. Un serveur Web hberge des classes Java servlets qui sont excutes l'intrieur du container Web. Le serveur Web associe une ou plusieurs URLs chaque servlet et lorsque ces URLs sont appeles via une requte HTTP de l'utilisateur, la servlet est dclenche (excute).
19

Les servlets
Quand la servlet reoit une requte du client, elle gnre une rponse, ventuellement en utilisant la logique mtier contenue dans des EJBs ou en interrogeant directement une base de donnes. Elle retourne alors une rponse HTML ou XML au demandeur (clients).
20

Les JSP
La technologie Java Server Pages (JSP) fournit un moyen simple et extensible pour gnrer du contenu dynamique pour le client Web. Une page JSP est un document texte qui dcrit comment traiter la requte d'un client et comment crer une rponse.

21

Les JSP
Une page JSP contient :
Des informations de formatage (modle) du document Web, habituellement en HTML ou XML.
Les concepteurs Web peuvent modifier cette partie de la page sans affecter les parties dynamiques. Cette approche permet de sparer la prsentation du contenu dynamique.

22

Les JSP
Une page JSP contient (suite) :
Des lments JSP et de script pour gnrer le contenu dynamique du document Web.
La plupart des pages JSP utilisent aussi des JavaBeans et/ou des Enterprise JavaBeans pour raliser les oprations complexes de l'application. Les JSP permettent en standard d'instancier des beans, de modifier ou lire leurs attributs et de tlcharger des applets.

23

Les JSP
La technologie JSP est extensible en utilisant des balises personnalises qui peuvent tre encapsules dans des bibliothques de balises personnalises (taglibs)

24

Conteneurs web
Les composants Web sont hbergs dans des conteneurs de servlets, conteneurs de JSP et conteneurs Web. En plus des fonctionnalits normales d'un conteneur de composants, un conteneur de servlets (servlets container) fournit les services rseaux par lesquels les requtes et rponses sont mises. Il dcode galement les requtes et formate les rponses dans le format appropri.
25

Conteneurs web
Tous les conteneurs de servlets doivent supporter le protocole HTTP et peuvent aussi supporter le protocole HTTPS. Un conteneur de JSP (JSP container) fournit les mmes services qu'un conteneur de servlets. Ces conteneurs sont gnralement appels conteneurs Web (Web containers ou moteurs).
26

Topologies d'une application J2EE

27

Architecture multi-tiers J2EE

28

Client autonome

29

Client autonome EJB centric

30

Application web

31

Application web

32

La plate-forme J2EE
La plate-forme J2EE, comme la plateforme J2SE, inclue (offre) un grand nombre de bibliothques de code (API) prdfinies pour les fonctions de base d'une application.

33

La plate-forme J2EE

34

La plate-forme J2EE
Les diffrents rectangles dfinissent les conteneurs J2EE qui fournissent les services pour les diffrents composants (reprsenter par des rectangles dans les rectangles) Les flches reprsentent les types daccs que lapplication peut avoir avec les autres applications distantes
Par exemple, lapplication client peut se connecter au Web Container par lintermdiaire de HTTP ou HTTPS, elle peut galement se connecter EJB Container par RMI
35

La plate-forme J2EE
On distingue 3 grands types doutls:
Composants Services dinfrastructures Services de communications

36

Les composants:
Clients
Applets Applications autonomes

Web
JSP Servlets

Mtiers
EJB
37

Services dinfrastructures
J2EE Connector est l'infrastructure pour interagir avec une grande varit de systmes d'information d'entreprise tels que des SGBD, Annuaires, et autres progiciels.
L'API JDBC est utilise pour accder des donnes relationnelles partir de programmes Java
38

Services dinfrastructures
La Java Transaction API (JTA) est utilise pour grer et coordonner les transactions entre un ensemble htrogne de systmes d'information d'entreprise. L'API Java Naming and Directory Interface (JNDI) est utilise pour accder aux services de nommage et d'annuaire de l'entreprise.
39

Services dinfrastructures
JMX (Java Management eXtension) : Cette API fournit des extensions permettant de dvelopper des applications web de supervision d'applications.

40

Services de communications
L'API Java Message Service (JMS) est utilise pour mettre et recevoir des messages via les systmes de messagerie d'entreprise La JavaMail API est utilise pour mettre et recevoir des mails. RMI (Remote Method Invocation) est une API permettant la communication synchrone entre objets.
41

J2EE et web-tiers
Le serveur Web dune application J2EE (Web tiers) rend disponible la logique d'une application sur le Web. Cest le serveur Web qui gre la communication avec les clients Web et qui rpond leurs requtes.

42

Architecture web-tiers J2EE

43

Les serveurs web : rles


Un serveur Web traite des requtes HTTP. Dans le cadre dune application J2EE, le serveur Web (Web tiers) gre les relations entre les clients Web et lapplication. Le serveur Web produit typiquement du contenu HTML ou XML. Larchitecture J2EE prvoi dimplmenter la logique mtier dans le serveur dEJB mais il est possible dimplmenter la logique mtier directement sur le serveur Web.
44

Fonctionnalits dun SW
Mise disposition de la logique mtier sur le Web: le serveur gre les relations entre les clients Web et la logique mtier de lapplication cration dynamique de contenu: le serveur Web gnre dynamiquement du contenu, dans nimporte quel type de format: HTML, images, sons, video,
45

Fonctionnalits dun SW
Prsentation et collecte des donnes: le serveur Web transforme les requtes HTTP PUT et GET dans une forme comprhensible par la couche mtier de lapplication et prsente les rsultats contrle du flux de navigation: la logique implante dans le serveur Web dtermine quel cran de lapplication envoyer au client. En effet cest souvent le serveur Web qui adapte la prsentation et lenchanement des crans en fonction des capacits du client
46

Fonctionnalits dun SW
Maintien des informations dtat : le serveur Web dispose dun mcanisme simple et flexible pour conserver des informations durant toute la dure dune session utilisateur support de plusieurs clients implmentation de la logique mtier
47