You are on page 1of 47

Architecture JEE.

Objectifs attendus

Serveurs dapplications JEE


Systmes distribus

Architectures JEE
Normes JEE

couches logicielles, n-Tiers


framework JEE et design patterns

2007/02/28 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p1

Objectifs atteindre .

Rpondre la question

quest ce que larchitecture JEE ?

Mettre en Pratique :

raliser une application JEE dans


projet de 40h par quipe de 4

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p2

Cible JEE.
JEE , pour quelle informatique?
Quest-ce quun serveur dapplications JEE ?

2007/02/28 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p3

Systmes distribus.

Division des traitements en modules


indpendants

plus disponible
plus volutif
plus maintenable

Systmes distribus : petits,

Systmes monolithique : gros,

rapides et facilement adaptables

lents et inadaptables

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p4

Systmes distribus.

Disponibilit

Dfinition
Haute disponibilit

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p5

Systmes distribus.

volutivit

Dfinition
Capacits de traitement

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p6

Systmes distribus.

Maintenabilit

Dfinition
Solution

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p7

Serveurs d'applications JEE.

Architecture Web

Base de
donnes
Client
Web

Firewall

Serveur
Web

Firewall

DMZ

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p8

Serveur
d'application

Architecture: schma de principe


Serveurs web

Serveurs prsentation

APACHE
Routeurs
quilibrants

http

Serveurs mtiers

TOMCAT

JBOSS
rmi

Conteneur Web

Conteneur EJB

Pages statiques,
autres, ...

Intranet
http

Base de donnes
Cluster
ORACLE

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p9

jdbc

Serveurs d'applications JEE.

Client Web

un navigateur
interprte les pages HTML ou XML
excute les applets ou du code
JavaScript
possde diffrents niveaux de
scurit configurable
peut interagir avec un serveur dapplication via HTTP

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p10

Serveurs d'applications JEE.

Application cliente

applications autre quun navigateur


communique via JRMP, IIOP, TCP/IP, ...

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p11

Serveurs d'applications JEE.

Serveur Web

fourni du contenu Web (HTML, )


communique via HTTP, ...
traite des requtes CGI
peut tre un proxy frontal dun serveur dapplications

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p12

Serveurs d'applications JEE.

Machine

machine physique sur laquelle est install une ou


plusieurs instances de WebLogic Server
diffrence entre les machines UNIX et machines nonUNIX (NT)

Machine 1
NT

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p13

Machine 2
UNIX

Apport des serveurs d'applications.


(1/2)

Permettent d'excuter des composants

Conformes aux technologies JEE


Indpendants du visuel et de laccs aux donnes
Dployables dans un environnement

Permettant une large possibilit dextension de puissance


Saffranchissant du lieu

Le composant le plus volu est un


Enterprise Java Bean

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p14

Apport des serveurs d'applications.


(2/2)

Services d'administration

Dploiement de servlets et de composants


Structuration en serveur, application
Gestion d'annuaires JNDI
Gestion de Pools et de Data sources

Modle de scurit applicable

Au niveau de chaque composant


Au niveau de chaque mthode

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p15

Implementation de
Serveurs d'applications JEE.

Gamme WebLogic

WebLogic Server 9.1

Gamme IBM WebSphere

WebSphere V6

Compatible JEE 1.4

Compatible JEE 1.3

Gamme OpenSource

Jboss AS v5

Compatible JEE 1.4, EJB3

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p16

Ressources.

Site Sun sur JEE

Site BEA sur JEE

http://java.sun.com/JEE/

http://dev2dev.bea.com/products/wlserver81/index.jsp

Your JEE Community

http://www.theserverside.com/

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p17

Focus.

Implmentation IBM WebSphere

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p18

Architecture de WebSphere 4/JEE 1.3

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p19

Web container

Moteur de servlet 2.3 et JSP 1.2

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p20

EJB container

EJB container

EJB modules selon la spcification EJB 2

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p21

Web administrative console

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p22

Fin Prsentation JEE.


Ce quil faut retenir :

Systmes distribus : disponible, volutif et maintenable


Normes JEE : des nombreuses technologies JAVA
qui voluent
Serveur dapplication JEE : un web container, un EJB
container et une collection de services mis disposition
des applications

2007/02/28 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p23

Architecture JEE.

Normes JEE
Les principales technologies JEE

Dveloppement distribu JEE

n tiers, n couches logicielles


Design Patterns

2007/02/28 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p24

Normes JEE

Dfinition de Java 2 Platform Entreprise Edition


(JEE)
Les applications dployes avec JEE

adhrent aux standards JEE


suivent les spcifications JEE
sont crites en Java
sont dployables sur tous les serveurs implmentant JEE

Niveau Technologies JEE : JEE 5 et JDK 6

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p25

Architecture JEE.

Une application JEE se compose de

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p26

Architecture JEE.

Une architecture JEE se dcompose en n-tiers :

partie cliente
un Web Container
un EJB Container
partie mtier

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p27

JEE : 4 types de conteneur

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p28

Normes JEE 1.3.

Un serveur dapplication JEE 1.3 supporte


les technologies JAVA

1 Java Data Base Connectivity 2.0


2 Java Naming Directory Interface 1.2
3 Remote Method Invocation (RMI-IIOP) 1.0
4 Java Interface Definition Language
5 Servlet 2.3
6 Java Server Pages 1.2
7 Enterprise Java Beans 2.0

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p29

Normes JEE 1.3.

8 Java Transaction Architecture / Java Transaction Service


(JTA/JTS) 1.1
9 JavaMail 1.2 includes Java Activation Framework 1.0
10 Java Message Service (JMS) 1.0.2
11 eXtended Markup Language
12 Java API for XML Parsing (JAXP) 1.1
13 Java API for XML-Based RPC (JAX-RPC) 1.0 (Web Services)
14 JEE Connector Architecture (JCA) 1.0
15 Java Management Extensions (JMX) 1.0
Et les services Web

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p30

Normes JEE .

Java Data Base Connectivity (JDBC)

interface daccs aux bases de donnes


spcifications sur les liens entre API et pilote de la base
donnes

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p31

Normes JEE.

Java Naming & Directory Interface (JNDI)

API Java daccs au service de nommage et de


rpertoires
construit comme un pont vers des fournisseurs
dannuaire (DNS, LDAP, )

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p32

Normes JEE .

Servlets

mcanisme de traitement de requtes/rponses


servlets HTTP

invoques par des requtes HTTP


dployables sur un serveur Web
leur rsultat est un flux HTML envoy au navigateur
peuvent grer des donnes de niveau session

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p33

Normes JEE .

Java Server Page (JSP)

gnre des pages Web dynamiquement


compose de :

code HTML pour la reprsentation des donnes


directives JSP
scriptlets (code Java insr dans la page JSP)

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p34

Normes JEE .

Entreprise Java Beans (EJB)

composants distribus crits en Java


fournissent des services distribuables et dployables
rutilisables sur les diffrents serveurs dapplications
excuts dans un conteneur (EJB container)
intrts des EJB :

distribution
scurit
transactionnel

WebLogic Server (>= 7.0) supporte les EJB 1.1 et les


EJB 2.0

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p35

Normes JEE .

Java Transaction API (JTA)

API Java de gestion des transactions


WebLogic Server supporte les transactions locales et
distribues

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p36

Normes JEE .

Java Message Service (JMS)

API Java daccs un middleware de messagerie


supporte :

le domaine Point Point


le domaine diteur/Abonn
lacheminement garantie des messages
les sessions transactionnelles

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p37

Normes JEE .

Java Management Extension (JMX)

dfinit un standard de gestion dinfrastructure en Java


dissocie les lments administrs de loutil
dadministration
les spcifications dcrivent les Mbeans
ladministration interne de WebLogic Server est base
sur JMX

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p38

La galaxie XML
Xbase

SGML

eccentric
orbit

Polar Orbit

ICE

XML Protocol
Xlink

DOM

XML

XML signature

Schema

XHTML
XML Query
XFrame

low Earth
orbit

DTD

Geosynchronous
orbit

Xpath

Xpointer

SMIL
2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p39

XSL

CSS

Quest-ce quun Web Service?

Une unit logique applicative accessible en utilisant les


protocoles standard dInternet

Rutilisable et bas sur un protocole (SOAP)


Indpendamment de

Dcrit par un WSDL

la plate-forme (UNIX, Windows, )


limplmentation (VB, C#, Java, )
larchitecture sous-jacente (.NET, JEE, )

Dfinition d'une interface Web = contrat bas sur XML


Dfinit un schma pour n'importe quel type d'interface

Enregistr dans un annuaire UDDI

permet de retrouver le service dynamiquement

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p40

Annuaire
UDDI

2: Jai trouv! Voici le serveur


hbergeant ce service web

1:Je recherche
un service WEB

3: Quel est le format dappel du


service que tu proposes?

URL
du
web
service

4: Voici mon contrat (WSDL)


XML

Client

XML

Serveur

5: Jai compris comment invoquer


ton service et je tenvoie un document
XML reprsentant ma requte
XML
6: Jai excut ta requte et je te retourne le rsultat
2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p41

Dfinition des couches

Couche prsentation

Couche Application (Business Delegate Layer)

Framework MVC Struts 1.1


Classes simple Java et design patterns

Couche mtier (Business Layer)

Service

Objet Mtier persistant (EJBs)

Couche daccs aux donnes (Persistance layer)

Mtier : contrleur mtier


Technique

Liaison avec entrept de donnes


Gestion des oprations CRUD : Create, Read, Update, Delete.

Donnes (Physical Layer)

Entrept des donnes de lapplication


Schema modele physique de base de donnes, schema XML,

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p42

Framework Software Architecture


STRUTS

EJB 2.0

Presentation
Layout

GUI/Navigation

Data

Treatments
Service

Business logic

Persistence

EJB BMP ou CMP

User 3

User X

Business Service
Facade
Stateless or Stateful
Session

Technical Service
Session Stateless
or MDB

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p43

Data access logic

User 2

User context and session management

User 1

Vue gnrale
Patterns principaux utiliss

Business Delegate
(http://java.sun.com/blueprints/patterns/BusinessDelegate.html)

Reduce coupling between Web and Enterprise JavaBeansTM tiers

Data Access Object (DAO)


(http://java.sun.com/blueprints/patterns/DAO.html)

Abstract and encapsulate data access mechanisms

Service Locator
(http://java.sun.com/blueprints/patterns/ServiceLocator.html)

Simplify client access to enterprise business services

Session Facade
(http://java.sun.com/blueprints/patterns/SessionFacade.html)

Coordinate operations between multiple business objects in a workflow

Data Transfer Object


(http://java.sun.com/blueprints/patterns/TransferObject.html)

Transfer business data between tiers

Fast Lane Reader


(http://java.sun.com/blueprints/patterns/FastLaneReader.html)

Improve read performance of tabular data

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p44

Architecture JEE.

Ce quil faut retenir :

Norme JEE : ensemble de technologies JAVA (~15) qui


voluent
Dveloppement application JEE distribue
4 containers : applet, client, web, EJB
Application dentreprise JEE (EAR)
structure JEE de rpertoires respecter
Dclaration des modules qui la composent par
descripteurs de dploiement XML :

application.xml, client-application.xml, web.xml, ejbjar.xml.


Architecture n tiers, couches logicielles distribus
Framework JEE et design patterns.

2007/02/28 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p45

Objectifs atteints.

Vous savez rpondre


maintenant la question

quest ce que larchitecture


JEE ?

Mise en Pratique : projet


de 40h par quipe de 4

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p46

Animation : 30h encadrs


partir du 7 mars 2006

Objectifs Module enseignement TD

Objectifs Module enseignement TD

Mettre en uvre un serveur dapplications JEE


Dcrire une architecture gnrale X-Net JEE
Utiliser les technologies JEE 1.4
Prototyper une application JEE 1.4

Pr requis initiaux

Programmation objet avec Java


Dveloppement Web avec Java
Comprhension de la notation UML
Connaissance des techniques de gestion de projet

2006/03/08 Eric Hbert.eheb@yahoo.fr / ifsic-DIC2-ARC-LSI-Architecture JEE / p47

You might also like