Vous êtes sur la page 1sur 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 ? raliser une application JEE dans projet de 40h par quipe de 4

Mettre en Pratique :

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, rapides et facilement adaptables

Systmes monolithique : gros, 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 DMZ Firewall Serveur d'application

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

Architecture: schma de principe


Serveurs web
Routeurs quilibrants

Serveurs prsentation
TOMCAT
rmi

Serveurs mtiers
JBOSS

APACHE

http

Conteneur Web

Conteneur EJB

Pages statiques, autres, ...

Intranet
http

Base de donnes
Cluster ORACLE

jdbc

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

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

Machine 2 UNIX

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

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 Au niveau de chaque composant Au niveau de chaque mthode

Modle de scurit applicable


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

Compatible JEE 1.4

Gamme IBM WebSphere

WebSphere V6

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

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

Site BEA sur 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 ICE
Polar Orbit

XML Protocol Xlink DOM Schema DTD CSS

eccentric orbit

XML signature XHTML XML Query XFrame Xpath SMIL

XML
low Earth orbit Geosynchronous orbit

Xpointer

XSL

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

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


la plate-forme (UNIX, Windows, ) limplmentation (VB, C#, Java, ) larchitecture sous-jacente (.NET, JEE, )

Dcrit par un WSDL


Dfinition d'une interface Web = contrat bas sur XML Dfinit un schma pour n'importe quel type d'interface permet de retrouver le service dynamiquement

Enregistr dans un annuaire UDDI

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

Annuaire UDDI
1:Je recherche un service WEB

2: Jai trouv! Voici le serveur hbergeant ce 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 5: Jai compris comment invoquer ton service et je tenvoie un document XML reprsentant ma requte XML

Serveur

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

Framework MVC Struts 1.1 Classes simple Java et design patterns Service

Couche Application (Business Delegate Layer)

Couche mtier (Business Layer)

Mtier : contrleur mtier Technique

Objet Mtier persistant (EJBs) Liaison avec entrept de donnes Gestion des oprations CRUD : Create, Read, Update, Delete. Entrept des donnes de lapplication Schema modele physique de base de donnes, schema XML,

Couche daccs aux donnes (Persistance layer)


Donnes (Physical Layer)


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

Framework Software Architecture


STRUTS Presentation Layout GUI/Navigation Service EJB 2.0 Treatments Business logic
EJB BMP ou CMP User 1 User context and session management

Data Persistence

User 2

Business Service Facade Stateless or Stateful Session

Data access logic

User 3

Technical Service Session Stateless or MDB

User X

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

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

Ce quil faut retenir :

Architecture JEE.

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

Animation : 30h encadrs partir du 7 mars 2006

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

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

Vous aimerez peut-être aussi