You are on page 1of 140

Formation Mars 2012

SERVEURS DAPPLICATIONS

Loc Rangon

Sommaire
I) II) Etat de lart Les architectures logicielles

III) Quattend-on des serveurs dapplications ? IV) V) VI) Les types de serveurs dapplications Les fonctionnalits des serveurs dapplications Panorama des serveurs dapplications A. B. C. D. E. .Net Server de Microsoft Oracle 9i Application Server de Oracle WebLogic Server de BEA Systems WebSphere Application Server de IBM JBoss (logiciel libre)
2

Loc Rangon VII) Carte des serveurs dapplications

Etat de lart (1/2)


Les limitations des modles clients serveurs, et des modles objets distribus ont favoris les architectures multi niveaux Le serveur dapplications constitue le noyau des architectures multi niveaux

Loc Rangon

Etat de lart (2/2)


Le rle dun serveur dapplications :
Assurer la logique mtier des applications en dcouplant celle-ci des prsentations et des accs aux donnes.

Loc Rangon

Les architectures Webs logicielles


s

Les architectures Webs statiques :

Les architectures Webs dynamiques :

Loc Rangon

Architecture logique trois niveaux


Objectifs : 1. Optimiser la rpartition des charges entre le poste de travail, et le serveur par linsertion dun niveau intermdiaire (serveur frontal) 2. Sparation de la prsentation (IHM, GUI) , des traitements et des donnes : modle MVC 3. Amliorer la disponibilit des applications par la rutilisation des briques existantes 4. Capitaliser sur lexistant 5. Permettre une volution des niveaux indpendamment des autres
Loc Rangon 6

Application Server logical architecture

Loc Rangon

Quattend-on dun serveur dapplications ?


Un environnement qui fournit les briques techniques ncessaires l'excution d'applications transactionnelles sur le web En dtaillant les fonctionnalits attendues pour couvrir ce besoin, on arrive la conclusion qu'un serveur d'applications doit :
S'interfacer avec un serveur HTTP (HTML, XML, WML pour WAP) Fournir un moteur d'excution des traitements (JVMs J2EE) S'ouvrir vers l'existant de l'entreprise (SGBDR, ERP, legacy) Rpondre aux contraintes induites par les architectures centralises :
Gestion de contextes (diffrencier les clients) La rpartition de charges et le pooling de connexions Les reprises sur incident Permettre l'ajout de briques techniques et mtiers
Loc Rangon 8

Les serveurs dapplications objet


La partie du moteur excutif charge d'assembler les pages ne se repose pas forcment sur un seul fichier contenant les lments de prsentation et les codes de traitements. Ils se basent sur plusieurs fichiers et sur plusieurs moteurs dont chacun possde un rle spcifique. Les traitements fonctionnels sont gnralement spars des traitements d'interface, eux-mmes pouvant tre spars des ressources d'interface Ce type de fonctionnement complexifie l'architecture applicative et avec elle sa propre modlisation. L'atout principal de ces serveurs d'applications : La modlisation objet Offrir une souplesse dans la rpartition et la gestion des traitements Rpartition des traitements choisis en environnement distribu, par exemple
Loc Rangon 9

Les serveurs dapplications J2EE

Aujourd'hui, parmi les serveurs d'applications objet se dmarque une solution majeure : J2EE. J2EE proposent une architecture et un mode de fonctionnement standardiss par des spcifications dites par Sun. A ce titre, toute implmentation des spcifications respectant J2EE constitue un serveur d'applications part entire.

Loc Rangon

10

JAVA
s

Langage de programmation multiplateformes Java peut tre spar en deux parties :


Votre programme crit en langage Java une machine virtuelle (JVM) qui va se charger de l'excution de votre programme Java.

C'est cette plateforme qui garantit la portabilit de Java. Il suffit qu'un systme ait une machine virtuelle Java pour que tout programme crit en Java puisse fonctionner.

Loc Rangon

11

JAVA HISTORIQUE DES VERSIONS


s

La version 1.3 en Mai 2000

La version 1.4 en Fvrier 2002

La version 1.5 ou 5.0 en Septembre 2004 => Version Majeure La version 1.6 ou 6.0 en Dcembre 2006
s

La version 7 See you Soon ;) JRE 7.0 est dj disponible


Loc Rangon 12

JAVA J2SE
J2SE

Java Edition Standard Dveloppement et dploiement dapplications Java Principaux produits : JDK, JRE

JDK ( Java Dveloppement Kit )

Dsigne l'ensemble des outils officiels de dveloppement ncessaires la cration et l'excution de programmes java. Ils contiennent notamment la JRE, avec ses outils : le compilateur javac, l'interprteur java, l'outil d'archivage jar,

JRE ( Java Runtime Environnement )

La JRE est constitue d'une JVM (Java Virtual Machine - Machine Virtuelle Java), le programme qui interprte le code Java (compil avec le JDK) et le convertit en code natif.
Loc Rangon 13

JAVA JVM

JVM
La Java Virtual Machine (JVM) est une machine virtuelle
Elle est en charge de :

Lindpendance du JDK vis--vis de lhardware et de lOS De la production, linterprtation et de lexcution du bytecode Java (classes Java compiles) De la scurit de la plate-forme

Loc Rangon

14

JAVA LE CLASSPATH

Il permet de prciser au compilateur et la JVM o ils peuvent trouver les classes dont ils ont besoin pour la compilation et l'excution d'une application. C'est un ensemble de chemins vers des rpertoires ou des fichiers .jar dans lequel l'environnement d'excution Java recherche les classes (celles de l'application mais aussi celles de tiers) et ventuellement des fichiers de ressources utiles l'excution de l'application.

Loc Rangon

15

JAVA

Loc Rangon

16

JAVA

C:\TEMP>jar cvf MonApplication.jar test.class C:\>java cp (ou classpath) MonApplication.jar MonApplication

Loc Rangon

17

JAVA Garbage Collector et mmoire

Loc Rangon

18

JAVA Garbage Collector et mmoire

PERMANENT STORAGE

Cet espace mmoire est allou directement au dmarrage de la JVM. Il contient les objets java permanent qui seront prsent pendant toute la dure d'excution. YOUNG GENERATION C'est l o sont cres les nouvelles instances des objets java. L'excution du GC sur cette partie de la mmoire reste assez performante. La young generation peut contenir des zones "survivor space" o les objets seront copis progressivement avant de migrer vers la old generation.
Loc Rangon 19

JAVA Garbage Collector et mmoire

OLD GENERATION

Contient des objets assez vieux qui ont survcu un certain temps dans la young generation. Lxecution du GC sur cette partie de la mmoire est trs couteuse et c'est ce type d'excution qu'il faut chercher viter. il faut donc mettre que les objets qui ne doivent pas tre effacs.

Loc Rangon

20

JAVA Garbage Collector et mmoire

OLD GENERATION

Contient des objets assez vieux qui ont survcu un certain temps dans la young generation. Lxcution du GC sur cette partie de la mmoire est trs couteuse et c'est ce type d'excution qu'il faut chercher viter. il faut donc mettre que les objets qui ne doivent pas tre effacs.

Loc Rangon

21

JAVA Garbage Collector et mmoire

OLD GENERATION

Contient des objets assez vieux qui ont survcu un certain temps dans la young generation. L'execution du GC sur cette partie de la mmoire est trs couteuse et c'est ce type d'excution qu'il faut chercher viter. il faut donc mettre que les objets qui ne doivent pas tre effacs.

Loc Rangon

22

JAVA JVM 64 bits

Processeurs 64 bits

Deux modes : Long : exploitation des registres 64 bits Legacy : excution de systme 32 bits sur un processeur 64 bits

La mmoire

OS 32 bits : Adressage mmoire de 4Go max OS 64 bits : Limite de 256 tbioctects virtuels
Loc Rangon 23

JAVA 7 nouveauts

Syntaxe La JVM Support de langage dynamiquement typs Zip file system provider Ajout de la mthode Close() la classe URLClassLoader Mise jour de la pile XML

Loc Rangon

24

XML Extensible Markup Language Langage de balisage extensible

XML drive d'un langage dvelopp dans les annes 80, le SGML. Ce langage tait complexe apprendre et utiliser quotidiennement. Une version allge, le HTML a donc t dveloppe. Le HTML ne peut tre tendu l'infini, au fur et mesure de l'augmentation des besoins des dveloppeurs. C'est alors que fut cr le XML.

Loc Rangon

25

XML Extensible Markup Language Langage de balisage extensible


Les objectifs de conception de XML sont les suivants:
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)

XML devrait pouvoir tre utilis sans difficult sur Internet XML devrait soutenir une grande varit d'applications XML devra tre compatible avec SGML Il devrait tre facile d'crire des programmes traitant les documents XML Le nombre d'options dans XML doit tre rduit au minimum, idalement aucune Les documents XML devraient tre lisibles par l'homme et raisonnablement clairs La conception de XML devrait tre prpare rapidement La conception de XML sera formelle et concise Il devrait tre facile de crer des documents XML La concision dans le balisage de XML est de peu d'importance
Loc Rangon 26

XML Prologue et dclaration de type de document

Tout document XML peut tre bas sur une DTD ou un Schma. XML permet de nettement sparer forme et fond. On peut donner aux informations contenues dans un tel fichier les tiquettes que l'on veut, et les ordonner selon son dsir. Il est galement possible d'effectuer des slections par tri, des gnrations automatiques de tables des matires et bien d'autres fonctions encore, grce au langage de feuilles de style XSLT.
Loc Rangon 27

XML Prologue et dclaration de type de document


EXEMPLE

<?xml version="1.0" encoding="ISO-8859-1"?> <!--La ligne ci-dessus est le prologue--> <!--lment racine--> <biblio> <!--Element racine--> <!--Premier enfant--> <livre> <!--lment enfant titre--> <titre>Les Misrables</titre> <auteur>Victor Hugo</auteur> <nb_tomes>3</nb_tomes> </livre> <livre> <titre>L'Assomoir</titre> <auteur>mile Zola</auteur> </livre> <livre lang="en"> <titre>David Copperfield</titre> <auteur>Charles Dickens</auteur> <nb_tomes>3</nb_tomes> </livre> Loc Rangon </biblio>

28

XML Notion de Bases

PROLOGUE

Un fichier XML pour tre valide comme obligatoirement par un prologue. Le prologue minimal est : <?xml version= 1.0 ?>

Loc Rangon

29

XML Notion de Bases

RACINE
La balise racine dun document XML est la premire balise trouve.

Une instruction de traitement


Est une instruction interprte par l'application servant traiter le document XML Les instructions de traitement qui servent le plus souvent sont la dclaration XML ainsi que la dclaration de feuille de style.

Ex Commentaires
<!-- ceci est correct --> <elt> <!-- ceci est correct aussi --> Un peu de texte </elt>
Loc Rangon 30

XML Notion de Bases


<!DOCTYPE biblio SYSTEM "bibliographie.dtd">

Le fichier associ est le suivant:

<!ELEMENTbiblio(livre*)> <!ELEMENTlivre(titre, auteur, nb_pages)> <!ATTLISTlivre type(roman | nouvelles | poemes | thtre)#IMPLIED langCDATA"fr" > <!ELEMENTtitre(#PCDATA)> <!ELEMENTauteur(#PCDATA)> <!ELEMENTnb_pages(#PCDATA)> Exemple de dclaration de DTD externe de type PUBLIC <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Loc Rangon 31

XML Notion de Bases EXO 1


XML permet de structurer une information. Il est donc ncessaire, avant d'envisager d'utiliser ce format, de se familiariser avec cette structuration. Le paragraphe suivant contient de l'information "en vrac". Rorganisez-la de manire mettre en vidence sa structure logique, sans forcment passer par une mise en forme XML : Une bouteille d'eau Cristalline de 150 cl contient par litre 71 mg d'ions positifs calcium, et 5,5 mg d'ions positifs magnsium. On y trouve galement des ions ngatifs comme des chlorures 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie St-Cyr la Source, dans le dpartement du Loiret. Son code barre est 3274080005003 et son pH est de 7,45. Comme la bouteille est sale, quelques autres matriaux comme du fer s'y trouvent en suspension. Une seconde bouteille d'eau Cristalline a t, elle, recueillie la source d'Aurle dans les Alpes Maritimes. La concentration en ions calcium est de 98 mg/l, et en ions magnsium de 4 mg/l. Il y a 3,6 mg/l d'ions chlorure et 2 mg/l de nitrates, pour un pH de 7,4. Le code barre de cette bouteille de 50 cl est 3268840001008. Une bouteille de mme contenance est de marque Volvic, et a t puise ... Volvic, bien connu pour ses sources donnant un pH neutre de 7. Elle comprend 11,5 mg/l d'ions calcium, 8,0 mg/l d'ions magnsium, 13,5 mg/l d'ions chlorures et 6,3 mg/l d'ions nitrates. Elle contient galement des particules de silice. Son code barre est 3057640117008. PS : Volvic est dans le Puy-de-Dme...
Loc Rangon 32

XML Notion de Bases


<?xml version="1.0" encoding="ISO-8859-1" ?> <cave> <bouteille> <marque>Cristaline</marque> <composition> <ion type="positif">calcium 71mg/l</ion> <ion type="positif">magnsium 5,5mg/l</ion> <ion type="negatif">chlorure 20mg/l</ion> <ion type="negatif">nitrate 1mg/l</ion> <autre type="metal">fer</autre> </composition> <source> <ville>St-Cyr la Source</ville> <departement>Loiret</departement> </source> <code_barre>3274080005003</code_barre> <contenance unit="cl">150</contenance> <ph>7,45</ph> </bouteille>
Loc Rangon 33

XML Notion de Bases


<bouteille> <marque>Cristaline</marque> <composition> <ion type="positif">calcium 98mg/l</ion> <ion type="positif">magnsium 4mg/l</ion> <ion type="negatif">chlorure 3,6mg/l</ion> <ion type="negatif">nitrate 2mg/l</ion> </composition> <source> <ville>Aurle</ville> <departement>Alpes Maritimes</departement> </source> <code_barre>3268840001008</code_barre> <contenance unit="cl">50</contenance> <ph>7,4</ph> </bouteille>

Loc Rangon

34

XML Notion de Bases


<bouteille> <marque>Volvic</marque> <composition> <ion type="positif">calcium 11,5mg/l</ion> <ion type="positif">magnsium 8mg/l</ion> <ion type="negatif">chlorure 13,5mg/l</ion> <ion type="negatif">nitrate 6,3mg/l</ion> </composition> <source> <ville>Volvic</ville> <departement>Puy-de-Dme</departement> </source> <code_barre>3057640117008</code_barre> <contenance unit="cl">50</contenance> <ph>7</ph> </bouteille> </cave>

Loc Rangon

35

XML Notion de Bases EXO 2


Rdiger une DTD pour une bibliographie. Cette bibliographie contient des livres et des articles. Les informations ncessaires pour un livre sont : Son titre gnral Les noms des auteurs Ses tomes et pour chaque tome, leur nombre de pages Des informations gnrales sur son dition comme par exemple le nom de l'diteur, le lieu d'dition, le lieu d'impression, son numro ISBN. Les informations ncessaires pour un article sont : Son titre Les noms des auteurs Ses rfrences de publication : nom du journal, numro des pages, anne de publication et numro du journal. on rservera aussi un champ optionnel pour un avis personnel. Tester cette DTD avec un fichier XML que l'on crira ex-nihilo et validera.
Loc Rangon 36

J2EE
J2EE (Java 2 Enterprise Edition)

Est une norme propose par la socit Sun, porte par un consortium de socits internationales, visant dfinir un standard de dveloppement d'applications d'entreprises multi-niveaux, bases sur des composants. J2EE dfinit finement les rles et les interfaces pour les applications ainsi que l'environnement dans lequel elles seront excutes.

Loc Rangon

37

JEE

Les composants
On distingue habituellement deux familles de composants : 1) Les composants web Servlets et JSP (Java Server Pages). Il s'agit de la partie charge de l'interface avec l'utilisateur (on parle* de logique de prsentation). 2) Les composants mtier EJB (Enterprise Java Beans). Il s'agit de composants spcifiques chargs des traitements des donnes propres un secteur d'activit (on parle de logique mtier ou de logique applicative) et de l'interfaage avec les bases de donnes

Loc Rangon

38

JEE SERVLETS

Les servlets sont la base de la programmation Web J2EE. Une servlet est un programme Java qui tourne sur la machine o est install le serveur J2EE, et qui est invoqu lorsquun navigateur client appelle lURL lie ce programme. EX : la servlet ServletCoucou.java (qui sera compile en ServletCoucou.class), et je dcide que lorsque jappelle la page HTML salut.htm, cest la servlet ServletCoucou.java qui sexcute.

Loc Rangon

39

JEE web.xml
Le fichier web.xml est le fichier le plus important dune application J2EE car il contient le paramtrage des servlets de lapplication. Chaque servlet de lapplication doit tre dcrite dans le fichier web.xml, et le lien de la servlet avec lURL y figure galement. Le fichier web.xml sappelle le descripteur de dploiement. On peut y indiquer autant de servlets que lon veut.
Loc Rangon 40

JEE web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/webapp_2_3.dtd"> <web-app> <servlet> <servlet-name>coucou</servlet-name> <servlet-class>ServletCoucou</servlet-class> </servlet> <servlet-mapping> <servlet-name>coucou</servlet-name> <url-pattern>/salut.htm</url-pattern> </servlet-mapping> </web-app>

Loc Rangon

41

JEE Web.xml

La dclaration de la servlet se fait dans llment XML <servlet> : <servlet-name> est le nom interne de la servlet : identifiant unique. <servlet-class> est la classe Java associe la servlet <servlet-mapping> (utilis lors de linvocation de lURL uniquement): <servlet-name> (qui doit tre identique celui indiqu dans llment <servlet>) <url-pattern> est lURL permettant de faire le lien avec la servlet.

Loc Rangon

42

JEE web.xml

chaque servlet de lapplication doit correspondre un lment <servlet> dans le fichier web.xml, sinon la servlet nexistera pas pour le serveur dapplications. Il est possible davoir plusieurs mappings pour une servlet.

Loc Rangon

43

JEE web.xml
Par lURL lie la servlet On tape ladresse suivante dans le navigateur : http://localhost:8100/salut.htm Ceci ne peut fonctionner que si le mapping de la servlet avec lURL a t correctement effectu dans le fichier web.xml lURL peut aussi tre accde par lintermdiaire dun lien, ou par lintermdiaire dun bouton de validation de formulaire (qui activerait la servlet)

Loc Rangon

44

JEE web.xml

Par lappel direct de la servlet Non portable, car elle dpend du systme dexploitation utilis. EXEMPLE sous Windows, on crira : http://localhost:8100/servlet/ServletCoucou sous Linux on crira : http://localhost:8100/servlet/coucou Dans un cas on utilise le contenu de <servlet-class>, dans lautre on utilise le contenu de <servlet-name>

Loc Rangon

45

JEE web.xml

La racine "/servlet" indique dans "/servlet/ServletCoucou" ou dans "/servlet/coucou" est obligatoire, et ne correspond pas un rpertoire sur le serveur. Dans ce cas, on na pas besoin davoir effectu le mapping de la servlet dans web.xml. Seule la dclaration de la servlet est obligatoire (par llment <servlet>). Conclusion Cette mthode fonctionne mais nest pas portable, donc il est prfrable de ne pas lutiliser

Loc Rangon

46

JEE JSP
Principe de base Permet d'crire des pages hybrides HTML/Java (comme PHP) XML tags et scripts en Java: Compile et excute la source comme "servlet" La traduction se fait automatiquement pour tous les fichiers *.jsp le rsultat (servlet source et classe) est place dans un rpertoire du systme Aprs chaque update d'un fichier *.jsp la classe servlet est recompile

Loc Rangon

47

JEE JSP
Utilit Cration de pages "design" Analyse de formulaires Possibilit d'interfaage avec des "vrais" servlets Accs toute classe Java mise disposition (notamment des "beans")

Loc Rangon

48

JEE JSP
EXEMPLE Programme: http://tecfa.unige.ch/guides/jsp/ex/demo1.jsp Source: http://tecfa.unige.ch/guides/jsp/ex/demo1.jsp.text <BODY> <H1>JSP Test</H1> <ul> <% for (int i = 0; i < 5; i++) out.println ("<li>" + i); %> </ul> </BODY> Out est un objet "gratuitement" mis votre disposition pour les "sorties"

Loc Rangon

49

JEE Traitement d'une URL


FONCTIONNEMENT ETAPE1 client --> serveur + moteur (2 faons:) 1) le client charge une URL http:// www. univ-mlv. fr/ prog.jsp - le navigateur construit une commande HTTP GET GET /prog. jsp HTTP/ 1.1 ou 2) le client saisit des informations dans un formulaire et clique sur envoi - le navigateur construit une commande HTTP POST avec les donnes du formulaire (chane de caractres) POST /prog. jsp HTTP/ 1.1 Nom= Jourdan&Prenom= Cedric
Loc Rangon 50

FONCTIONNEMENT Etape 2 serveur + moteur --> JSP

JEE Traitement d'une URL

Le "moteur" A la 1re invocation, cre une classe, la compile et l' instancie. Si la classe existe dj et est aussi rcente que la page HTML, on lutilise. Cre un thread Invoque une mthode de la classe contenant le code excuter La JSP S'excute sur le serveur Web

Loc Rangon

51

Etape 3 JSP --> serveur + moteur La JSP Produit son rsultat Etape 4 Serveur + moteur --> Client

JEE Traitement d'une URL

Le serveur Propage le rsultat au client dans une rponse HTTP

Loc Rangon

52

JEE EJB
Quest-ce que les EJB ?

Architecture permettant la cration dapplications distribues. Composant (brique applicative) excut sur un serveur et appel par un client distant. Les EJB sont des extensions des Java Beans : une technologie utilise pour dvelopper des composants Java rutilisables crit une fois, s excute partout . Des modules capables de prendre en charge requtes, transactions et messages. Une enveloppe logicielle standard dans laquelle glisser un composant afin qu'il puisse fonctionner au sein d'un environnement comprenant J2EE.

Loc Rangon

53

JEE EJB

ATTENTION!

A ne pas confondre avec les JavaBean qui sont des composant ct client qui sont des classes java rutilisables devant respecter un certain nombres de rgles

Loc Rangon

54

J2EE EJB Comment fonctionnent-t-ils ?


Les EJB s'appuient d'une part sur les servlets : Un programme Java qui excute, ct serveur, les requtes d'un navigateur - ce qui permet, par exemple, de proposer des pages HTML gnres dynamiquement. Et d'autre part sur la technologie JDBCTM, qui offre un modle pour connecter le client un systme de base de donnes. Les EJB sont notamment utiliss dans les domaines des transactions scurises, et du stockage d'objets java (units de programme structures)

Loc Rangon

55

J2EE

EJB (Enterprise Java Bean)

Loc Rangon

56

J2EE

EJB3

Loc Rangon

57

J2EE

EJB3
Dans les versions antrieures des spcifications, les interactions entre le bean et le conteneur pour la gestion de son cycle de vie taient ralises via les mthodes ejbRemove(), setMessage(), setSessionContext(), ejbActivate(), et ejbPassivate() des classes javax.ejb.SessionBean and javax.ejb.MessageDrivenBean. Mme inutiles, ces mthodes devaient tre crites.

La version 3.0 des EJB propose une simplification de leur dveloppement. Le travail des dveloppeurs est rduit au profit d'une augmentation des traitements pris en charge par le conteneur Le nombre de classes et d'interfaces crire est rduit. Le descripteur de dploiement est optionnel car il n'est plus utile que pour besoin spcifique. Pour cela, la dfinition des composants utilise les annotations et l'injection de dpendance. Les EJB entits sont plus facile dvelopper en faisant usage de la nouvelle API Java Persistence API pour le mapping O/R. Les intercepteurs permettent de proposer des traitements avant ou aprs l'appel de mthodes l'image de ce que peuvent proposer certaines fonctionnalits de l'AOP.
Loc Rangon

58

Dans la version 3.0, il suffit simplement d'utiliser les annotations dfinies dans les spcifications de Java EE dont voici les principales :
tag @Stateless @Stateful @PostConstruct @PreDestroy @PostActivate @PrePassivate @EJB @WebServiceRef @Resource @MessageDriven @TransactionAttribute @TransactionManagement @RolesAllowed, @PermitAll @DenyAll @RolesReferenced @RunAs Rle annote une classe qui est un composant de type EJB session stateless annote une classe qui est un composant de type EJB session stateful annote un EJB qui sera injecte par le conteneur annote un service web qui sera inject par le conteneur annote une ressource diffrente d'un EJB ou d'un service web qui sera injecte par le conteneur annote une classe qui est un composant de type EJB Message Driven

J2EE

annote une classe (dans ce cas toutes ses mthodes) ou une mthode pour prciser les attributs d'appartenance une transaction annote une mthode pour indiquer ses permissions d'utilisation

Loc Rangon

59

J2EE

EJB (Enterprise Java Bean)


Session beans ou EJB session
Sont non persistant (short-lived) Associ un seul client Un flot dexcution est cr pour : Chaque appel de mthode : Stateless sessions bean (sans tat) Pas de donne interne, inutile de le rendre passif, peut tre partag par plusieurs clients. Plusieurs appels de mthodes en provenance du mme client : Stateful sessions bean (avec tat) Dtruits aprs un arrt (ou une panne) du serveur EJB.

Loc Rangon

60

J2EE

Entity beans ou EJB entit

EJB (Enterprise Java Bean)

Reprsentent les donnes dune base de donnes En gnral, une ligne d une table relationnelle (SGBD-R) ou un objet persistant (SGBD-OO) Sont persistant (long-lived) La gestion de la persistance peut tre faite par le bean (bean managed persistence) ou dlgue son conteneur (container managed persitence). Acceptent les accs multiples effectus par plusieurs clients Gestion de la concurrence Diffrents niveaux disolation Peuvent participer des transactions Survivent aux pannes dun serveur EJB Les pannes sont transparentes aux clients Deux types : Container-Managed Persistence (CMP) Bean dont la persistance est directement assure par le conteneur d'EJB. Bean-Managed Persistence (BMP) Bean dont la persistance a d tre programme par le Dveloppeur. 61

J2EE

EJB (Enterprise Java Bean)


Un EJB MDB est une EJB qui peut recevoir des messages Il consomme des messages depuis les queues ou topics, envoys par les clients JMS Un client n'accde pas un MDB via une interface, il utilise l'APIJMS. Un MDB n'a pas d'interface Home, Local Home, Remote ou Local Les MDB sont stateless Les MDB possdent une seule mthode, faiblement type : OnMessage() Elle accepte un message JMS (BytesMessage, ObjectMessage, TextMessage, StreamMessage ou MapMessage)

Pas de vrification de types la compilation.


Loc Rangon 62

J2EE

EJB (Enterprise Java Bean)


Les MDB peuvent tre des abonns durables ou non-durables (durable or nondurable subscribers) un TOPIC. Durable Reoit tous les messages, mme si l'abonn est inactif. Dans ce cas, le message est rendu persistant et sera dlivr lorsque l'abonn sera de nouveau actif. Non-durable Messages perdus lorsque abonn inactif. Le consommateur (celui qui peut les dtruire) des messages est en gnral Le Container C'est lui qui choisit d'tre durable ou non-durable. S'il est durable, les messages rsistent au crash du serveur d'application.
Loc Rangon 63

J2EE

EJB (Enterprise Java Bean)


Lapplication Client dpose un message dans une file de message. Lapplication EJB traite le message. Ces 2 applis ne se connaissent pas .

A travers un pool dEJB, le conteneur EJB gre lcoute et le traitement dun message arrivant dans la file de message. Loc Rangon 64

J2EE

EJB (Enterprise Java Bean)

Loc Rangon

65

J2EE

EJB MDB Exemple


Un MDB qui fait du logging, c'est--dire, affiche des messages de textes l'cran chaque fois qu'il consomme un message.
package examples; import javax.ejb.*; La classe LogBean import javax.jms.*; /** Sample Message-Driven Bean */ public class LogBean implements MessageDrivenBean, MessageListener { protected MessageDrivenContext ctx; /** Associates this Bean instance with a particular context. */ public void setMessageDrivenContext(MessageDrivenContext ctx) { this.ctx = ctx; } /** Initializes the bean */ public void ejbCreate() { System.err.println("ejbCreate()"); } ...
Loc Rangon 66

J2EE

EJB MDB Exemple


/** Our one business method */ public void onMessage(Message msg) { TextMessage tm = (TextMessage) msg; try { String text = tm.getText(); System.err.println("Received new message : " + text); } catch(JMSException e) { e.printStackTrace(); } } /** Destroys the bean */ public void ejbRemove() { System.err.println("ejbRemove()"); } }
Loc Rangon 67

J2EE

EJB MDB Exemple


Le descripteur de dploiement
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd"> <ejb-jar> <enterprise-beans> <!-For each message-driven bean that is located in an ejb-jar file, you have to define a <message-driven> entry in the deployment descriptor. --> <message-driven> <!-- The nickname for the bean could be used later in DD --> <ejb-name>Log</ejb-name> <!-- The fully qualified package name of the bean class --> <ejb-class>examples.LogBean</ejb-class> <!-- The type of transaction supported (see Chapter 10) --> <transaction-type>Container</transaction-type> <!-- Whether I'm listening to a topic or a queue --> <message-driven-destination> <destination-type>javax.jms.Topic</destination-type> </message-driven-destination> </message-driven> </enterprise-beans> </ejb-jar> Loc Rangon

68

J2EE

ARCHITECTURE
L'architecture J2EE permet de sparer : 1. La couche prsentation, correspondant l'interface homme-machine. (IHM) 2. La couche mtier contenant l'essentiel des traitements de donnes en se basant dans la mesure du possible sur des API existantes. 3. La couche de donnes correspondant aux informations de l'entreprise stockes dans des fichiers, dans des bases de donnes relationnelles ou XML, dans des annuaires d'entreprise ou encore dans des systmes d'information complexes.
Loc Rangon 69

J2EE

ARCHITECTURE

Loc Rangon

70

J2EE

ARCHITECTURE
Les services, pouvant tre classs par catgories : Les services d'infrastructures JDBC (Java DataBase Connectivity) est une API d'accs aux bases de donnes relationnelles. JNDI (Java Naming and Directory Interface) est une API d'accs aux services de nommage et aux annuaires d'entreprises tels que DNS, NIS, LDAP, etc. JTA/JTS (Java Transaction API/Java Transaction Services) est un API dfinissant des interfaces standard avec un gestionnaire de transactions. JCA (J2EE Connector Architecture) est une API de connexion au systme d'information de l'entreprise, notamment aux systmes dits Legacy tels que les ERP. JMX (Java Management Extension) fournit des extensions permettant de dvelopper des applications web de supervision d'applications.

Les services de communication JAAS (Java Authentication and Authorization Service) est une API de gestion de l'authentification et des droits d'accs. JavaMail est une API permettant l'envoi de courrier lectronique. JMS (Java Message Service) fournit des fonctionnalits de communication asynchrone (appeles MOM pour Middleware Object Message) entre applications. RMI-IIOP est une API permettant la communication synchrone entre objets.
Loc Rangon 71

J2EE

ARCHITECTURE

Loc Rangon

72

J2EE

Application
Les applications J2EE se comporte typiquement de la manire suivante : 1. Un client accde par lintermdiaire de son navigateur WEB un site bas sur la technologie Servlet/JSP. 2. Les servlets et les JSP utilisent les JavaBeans afin de daccder aux EJB de lapplication. 3. Les JavaBeans sont chargs dappeler et dutiliser les EJB session, garant de la logique mtier. 4. Les EJB sessions fournissent les mthodes mtiers de lapplication en se servant des donnes de lentreprise, elle-mme gre par les EJB entits. 5. Les EJB entit se prsentent comme une interface daccs aux donnes de lentreprise afin de grer les accs et les transactions sur ces donnes.

Loc Rangon

73

J2EE

Application

Loc Rangon

74

J2EE

Application

Loc Rangon

75

J2EE

Application : Structure EAR


Selon les standards Java (http://java.sun.com/xml/ns/javaee/), pour se dployer, les applications J2EE sont packages dans un fichier d'archive appel un fichier EAR (Enterprise Archive). Ce fichier peut contenir les informations suivantes : Les composants web (war) Un ou plusieurs wars contiennent les composants web de l'application J2EE. Les composants EJB (ejb-jar) Un ou plusieurs ejb-jars, qui contiennent les beans de l'application J2EE. Les bibliothques (jar) Un ou plusieurs jars qui contiennent les bibliothques utilises par l'application J2EE. Le descripteur de dploiement J2EE Le descripteur de dploiement standard XML au format dfini dans les spcifications J2EE 1.3. !Ce descripteur de dploiement doit tre enregistr avec le nom META-INF/application.xml dans le fichier EAR.
Loc Rangon 76

J2EE

Application : Structure EAR

Type de module J2EE

Nom du fichier du descripteur de dploiement dans le module

Schma XML pour le descripteur de dploiement

Application Web (WAR) Application d'entreprise (EAR) EJB (JAR) Connecteurs J2EE (RAR) Application client

WEB-INF/web.xml

web-app_2_5.xsd

META-INF/application.xml META-INF/ejb-jar.xml META-INF/ra.xml META-INF/application-client.xml

application_5.xsd ejb-jar_3_0.xsd connector_1_5.xsd

Loc Rangon

application-client_5.xsd

77

J2EE

Application : Structure EAR

Loc Rangon

78

J2EE

Application : Structure EAR

Loc Rangon

79

J2EE

Application.xml
Cest le descripteur de dploiement fourni par le dveloppeur de lapplication. Fichier XML conforme la DTD telle que dfinie dans les spcifications J2EE version 1.3. Un et un seul descripteur de dploiement pour lapplication.

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN' 'http://java.sun.com/dtd/application_1_3.dtd'> <application> <display-name>Simple example of application</display-name> <description>Simple example</description> <module> <ejb>ejb1.jar</ejb> </module> <module> <ejb>ejb2.jar</ejb> </module> <module> <web> <web-uri>web.war</web-uri> <context-root>web</context-root> </web> </module> Loc Rangon </application>

80

J2EE

JNDI = Java Naming and Directory Interface

Loc Rangon

81

J2EE

JNDI = Java Naming and Directory Interface

Loc Rangon

82

J2EE

JNDI = Java Naming and Directory Interface

Indpendance avec les drivers


Une application doit ignorer le type ou la version dune base de donne dont elle a besoin, le type de serveur JMS exploit, si la messagerie est POP3, IMAP, Lotus, etc Les sources de donnes sont dclares dans le serveur JNDI par le serveur dapplication. Lapplication na plus qua y piocher pour obtenir une instanceDataSource dont elle ignore la provenance.

Loc Rangon

83

J2EE

JNDI = Java Naming and Directory Interface


Exemple ... import javax.naming.*; ... public void createName() throws NamingException { Context context = new InitialContext(); // bind an Object context.bind("/config/myApplication", "une valeur"); } ... ... import javax.naming.*; ... public String getValue() throws NamingException { Context context = new InitialContext(); return (String) context.lookup("/config/myApplication");
Loc Rangon 84

J2EE

JNDI = Java Naming and Directory Interface ARCHITECTURE


Elle se compose :
o De lAPI JNDI compose de classes et surtout dinterfaces. o Du SPI (Service Provider) o Les pilotes assurent linterface vers les annuaires. o Les pilotes DNS, LDAP, RMI et CORBA sont inclus d'office dans la JRE. o Les autres pilotes doivent tre rcuprs et ajouts.

Loc Rangon

85

J2EE

JNDI = Java Naming and Directory Interface

Loc Rangon

86

J2EE

JNDI = Java Naming and Directory Interface ARCHITECTURE

Loc Rangon

87

J2EE

JNDI = Java Naming and Directory Interface


JNDI : Masque lhtrognit des services dannuaires Une API pour de multiples services Notion dURL JNDI : Accs simultan plusieurs services dannuaire Mais ne masque pas la localisation du service dannuaire Mais ne masque pas le type du service dannuaire Le conteneur composant prend en charge : laccs aux service de nommage Masquage des noms rels via le schma dURL java + fichier dploiement Construction avance distribue pour tolrance aux pannes/rpartition charge

Loc Rangon

88

J2EE

JDBC (Java Data Base Connectivity)

JDBC est un package contenant des classes et interfaces permettant d'accder une base de donne partir d'un programme Java. Seule la phase de connexion au SGBDR change. Permet de faire tout type de requtes Slection de donnes dans des tables Cration de tables et insertion d'lments dans les tables Gestion des transactions

Packages : javax.sql connexion une base de donnes expression de requtes relationnelles en SQL encapsulation des rsultats des requtes
Loc Rangon 89

J2EE

JDBC (Java Data Base Connectivity)


L'interaction avec une base de donnes se droule principalement en ces quatre phases successives : 1. 2. 3. 4. Chargement et configuration du client qui veut interroger une base de donne. Connexion la base de donnes. Excution des commandes SQL. Inspection des rsultats (si disponible).

A chacune de ces phases, correspond une classe Java que l'on trouvera dans le package java.sql : DriverManager Connection Statement ResultSet

JDBC fournit un moyen de communication de bas niveau avec les bases de donnes: Java se contente d'envoyer des commandes SQL la base de donnes.

Loc Rangon

90

J2EE

JDBC DRIVER
L'htrognit des bases de donnes empche une connexion directe entre une base de donnes et une application Java. Il faut utiliser un pilote qui "traduit" des commandes Java pour une base de donnes : Chaque pilote est propre une base de donnes. Un pilote implmente l'interface java.sql.Driver. Les passerelles JDBC-ODBC Microsoft propose une API permettant d'accder diverses bases de donnes. Cette API , appel ODBC (Open DataBase Connectivity ) est trs certainement l'API la plus rpandue dans le monde. Le pilote ODBC appartient une base de donnes. Le pilote convertit les appels de donnes Java en appel ODBC valide, et les excute ensuite l'aide du pilote ODBC : un mlange de pilotes natifs et de pilotes Java. Un serveur convertit ensuite ceux-ci dans le protocole SGBD requis (modle 3 couches) Les bases de donnes disposent pratiquement toutes d'un pilote ODBC, tant donn que nombre d'entreselles ont t dveloppes partir d'interfaces Microsoft.
Loc Rangon 91

J2EE

La technologie ODBC
ODBC signifie Open Database Connectivity. Il s'agit d'un format propritaire dfini par Microsoft permettant la communication entre des clients pour des bases de donnes fonctionnant sous Windows et les SGBD du march. Etant donn qu'il existe diffrents types de bases de donnes, et que chacune d'entre-elles possde sa propre faon de traiter les requtes SQL et de renvoyer les rsultats

ODBC permet d'obtenir des rsultats identiques quel que soit le type de base de donnes, sans avoir modifier le programme d'appel qui transmet la requte. ODBC n'est toutefois pas la solution miracle, tant donn d'une part qu'il ne s'agit pas d'une technologie libre (Microsoft la fait voluer son gr), d'autre part qu'il ne s'agit que d'une interface "alternative" celle fournie par les constructeurs et demeure complique matriser

Loc Rangon

92

J2EE

JDBC (Java Data Base Connectivity)

Loc Rangon

93

J2EE

JDBC (Java Data Base Connectivity)

Loc Rangon

94

J2EE

JMS (Java messaging Service)


Qu'est ce que JMS ?
JMS (Java Message Service), est la spcification de Sun pour la gestion des messages de la plateforme Java EE (Nouvelle dnomination de J2EE). Depuis la version 1.3 de J2EE, JMS en est partie intgrante. La raison de son intgration dans la spcification Java EE tait de rendre accessible le monde des MOM, constitu l'poque de produits comme MQ Series crits en Langage C, depuis les applications Java et notamment depuis un serveur d'applications Java EE. JMS est aux Middleware Orients Message ce que JDBC est aux bases de donnes relationnelles. Un provider est un diteur de MOM qui a implment une API conformment aux recommandations de la norme JMS de Sun Microsystems.

Loc Rangon

95

J2EE

JMS (Java messaging Service)


On peut utiliser JMS dans Java EE depuis les composants suivants : EJB, composants Web ou, ce qui est plus rarement utilis, les applications clientes serveur. externes au

Les Enterprise Java Bean Messages ou Message Driven Bean qui ragissent au dpt d'un message leur tant destin. Via un connecteur JCA (depuis la version 1.4 de J2EE - Java EE 4) fourni par le provider JMS.

L'avantage des connecteurs JCA est qu'ils permettent d'utiliser un provider JMS externe celui du serveur d'applications.

Loc Rangon

96

J2EE

JMS (Java messaging Service)


Un systme utilisant l'API JMS met en uvre 4 acteurs. 1. 2. Le premier acteur est le message qui va tre chang entre les deux applications. Les applications elles mmes utilisatrices de JMS qui vont envoyer et recevoir des messages. Un applicatif JMS est ncessairement crit avec le langage Java. Il peut tre un client Java extrieur au serveur d'applications ou un composant Java EE tel qu'un EJB ou une page JSP. Les applications JMS vont communiquer par l'intermdiaire du provider JMS charg de garder et de retrouver les messages qui lui sont adress. Le provider JMS fournit aussi des outils d'administration qui permettent par exemple de: crer des files d'attente, lister celles existantes, consulter le nombre de messages de certaines files, etc ... Le dernier acteur dans une architecture JMS est ce qu'on appelle les objets administrs, et qui sont les ressources rechercher dans l'annuaire JNDI du provider ou du serveur d'applications. Au sein d'une architecture JMS, il y a deux types d'objets administrs: A. Les "Connection Factory" ou usines connexions qui constituent les objets de base permettant de crer tous les autres dans JMS. B. Les sources, c'est dire les Queue et les Topic.

3. 4.

Loc Rangon

97

J2EE

JMS (Java messaging Service)

Modes de communication La spcification JMS introduit deux modes de communication, les domaines JMS : les topics d'une part, les queues d'autre part.

Loc Rangon

98

J2EE

JMS (Java messaging Service)


Dans le mode queue, on peut imaginer quun message reprsente une unit de traitement. Lapplication destinatrice reoit le message et effectue un traitement partir du message, et dans ce cas il faut que le traitement ne soit pas excut deux fois. Les messages peuvent tre persistants ou non persistants (seul un message persistant survit la dfaillance du serveur qui gre la queue)

Loc Rangon

99

J2EE

JMS (Java messaging Service)

1. l'metteur envoie son message dans une queue 2. le destinataire prlve un message dans une queue (chaque message n'est reu que par un seul destinataire). Les messages sont prlevs dans l'ordre FIFO. 3. les messages peuvent tre persistants ou non persistants (seul un message persistant survit la dfaillance du serveur qui gre la queue)
Loc Rangon 100

J2EE

JMS (Java messaging Service)

1. 2. 3.

le "publisher" adresse son message un sujet un souscripteur souscrit un sujet un message peut tre reu par de multiples destinataires (les diffrents souscripteurs) un souscripteur qui souscrit l'instant t ne reoit que les messages publis aprs t. Par ailleurs, le souscripteur doit rester actif pour continuer recevoir les messages publis.

souscription durable: permet au souscripteur de recevoir les messages publis pendant les priodes ou le souscripteur n'est pas actif les messages peuvent tre persistants ou non persistants (seul un message persistant survit la dfaillance du serveur qui gre le sujet) NB La durabilit est une proprit lie au souscripteur, alors que la persistance est une proprit lie au serveur qui Loc Rangon 101 gre le sujet

J2EE

JMS (Java messaging Service)


Rception de messages
Rception synchrone Le destinataire (modle PTP) ou le souscripteur (modle pub/sub) appelle la mthode receive. L'appel est bloquant jusqu' ce qu'un message soit obtenu. Il est possible de spcifier un timeout. Rception asynchrone Le destinataire (PTP) ou le souscripteur peut enregistrer un message listener, qui est un objet contenant une mthode OnMessage. Cette mthode est appele lors de la rception d'un message.

Loc Rangon

102

J2EE

JMS (Java messaging Service)


Quelques dfinition JMS introduit diffrents termes et concepts que nous allons rapidement parcourir: JMS Client Un client JMS est une application crite en Java envoyant et/ou recevant des messages au moyen de lAPI JMS. Non-JMS Client Un client non-JMS est une application envoyant et/ou recevant des messages en communiquant avec le JMS Provider selon son protocole particulier, soit en direct, soit par lintermdiaire des fonctions dune API. Cette application n'est pas crite en Java. JMS Provider Un Fournisseur JMS est une implmentation des services JMS crite en Java. Ainsi les MOMs que nous tudierons plus loin sont des JMS Providers. JMS Consumer Un Consommateur JMS est une application qui reoit et traite des messages JMS.
Loc Rangon 103

J2EE

JMS (Java messaging Service)


JMS Producer Un Producteur JMS est une application qui cre et envoie des messages JMS. Une mme application peut tre la fois JMS Producer et Consumer. JMS Message Le message JMS est l'unit fondamentale de JMS. Il est envoy et reu par des Client JMS. JMS Domains Les deux domaines JMS correspondent aux deux modes de communication dj voqus : point point avec les queues ou publish-subscribe avec les topics. Destination Les objets destinations sont des objets servant identifier la cible des messages envoyer ou recevoir, c'est--dire des domaines, queues

Loc Rangon

104

J2EE

JMS (Java messaging Service)

Loc Rangon

105

WAS Websphere Application Server


Cest un serveur applicatif respectant la norme J2EE. Il est certifi J2EE 1.3 et permet dans sa version la plus rcente (6.1) le support de J2EE 1.4 et J2SE 1.5 Il couvre lensemble des spcifications J2EE standard (lensemble des EJB (dont EJB 3.0),JMS, Web services, SOAP ). Il supporte les pages JSP et servlet pour les applications web. Il offre un bonne interoprabilit avec la plupart des bases de donnes (oracle, postgres), annuaire (Active directory, OpenLdap) et les outils de reporting. WAS intgre son propre serveur web, IBM http Server, mais il est permet lutilisation dautres serveurs, via plugin, tel quApache, IIS Son principal concurrent sur les serveurs dapplication J2EE est JBoss du fait quil soit OPEN SOURCE

Loc Rangon

106

WAS Websphere Application Server

Loc Rangon

107

WAS Websphere Application Server


La solution WebSphere se compose de 4 versions 1. 2. 3. 4. Express Base Entreprise Network Deployment.

Ces versions ont des architectures diffrentes et vont dpendre du besoin du client.

Loc Rangon

108

A. Environnements single-server
B. C. D. E. F. Pas dadministration centralise Pas de gestion de flux Pas de load balancing Pas de container EJB Pas support pour le messaging JMS

WEBSPHERE WebSphere Express

Loc Rangon

109

WEBSPHERE WebSphere Base


La version Base est un serveur d'application J2EE, puisqu'il dispose d'un container EJB, du support du messaging Pas d'administration centralise des serveurs Pas de gestion des flux (rpartition de charges)

Loc Rangon

110

WEBSPHERE WebSphere Network Deployment


Administration centralise Rpartition de charges par la mise en place de loadbalancing Proxy cache et cluster Constitu de une ou plusieurs versions Base et d'un manager de dploiement La version de base est ajoute ce qu'on appel une cellule qui est grer par le Deployement Manager

Loc Rangon

111

WEBSPHERE WebSphere Entreprise


Constitu de une ou plusieurs versions Base et d'un manager de dploiement Comporte en plus le Programming Model Extensions (PME) pour le serveur d'application

Loc Rangon

112

Les fonctions dun serveur dapplications


La plupart des grandes fonctionnalits attendues dun serveur dapplications sont :
1) 2) 3) 4) 5) 6) 7) 8) 9)

Le support des plates-formes La rpartition de charges La reprise sur incident Le pooling de connexions L'ouverture vers l'existant, le respect des standards La gestion de contexte La scurit (cryptage, LDAP, SGBDR, etc.) L'administration La productivit

Loc Rangon

113

Les fonctions dun serveur dapplications

Loc Rangon

114

La rpartition de la charge
Cette approche consiste gnralement a excuter plusieurs instances rparties sur diffrentes machines.

Loc Rangon

115

La disponibilit
La reprise sur incident : L'application est rplique sur plusieurs serveurs physiques. En cas de "plantage" au niveau applicatif ou serveur : La requte utilisateur est redirige vers un serveur disponible de manire transparente. Le serveur d'applications doit tre alors maintenir l'ensemble des oprations effectues par l'utilisateur :
s s

Sauvegarde du contexte utilisateur Rplication des sessions utilisateur sur une autre machine Soit en base de donnes, soit sur disque, soit en mmoire. Les serveurs d'applications les plus avancs automatisent la gestion de reprise sur incident au niveau session.

Loc Rangon

116

Le pooling de connexions

En architecture web, l'ensemble des utilisateurs accde la base de donnes depuis le serveur d'applications de faon Ponctuelle. => Temps de rponses catastrophiques Le pooling consiste dmarrer un nombre prdfini de connexions vers un SGBDR :
1. 2. 3.

Le serveur d'applications dirige les demandes utilisateurs vers le pool Rpartition des diffrentes requtes sur les connexions disponibles Evite le goulet dtranglement
Loc Rangon 117

La gestion de contexte
Le principe de gestion de contexte consiste conserver le temps d'une session les donnes propres l'utilisateur lorsquil est identifi. Trois mthodes automatiques didentification :
1. 2. 3.

Le cookie L'URL long La variable cache

Cration dun espace mmoire ddi chaque utilisateur (objet session) valable selon une dure.

Loc Rangon

118

Ladministration
Les serveurs d'applications sont livrs avec un outil d'administration :

Sous la forme d'une interface web ou d'une console

Cet outil doit favoriser le rglage du serveur d'applications :


D'adapter et d'ajuster les applications en cas de montes en charge importantes Configuration du rpartiteur de charge, cluster, etc. Dimensionnement du pool de connexions Configuration des logs et des outils de statistiques
Loc Rangon 119

La productivit
La productivit est troitement lie la maturit de l'outil de dveloppement et du serveur dapplications. L'atelier de dveloppement doit offrir aux dveloppeurs le moyen de raliser des applications Web fiables dans un minimum de temps et d'effort:

Une interface avec les outils de gestion des dveloppements en quipe Un pont vers les outils de modlisation tels que Rational Rose Des assistants pour les connexions SGBD, les crations de composants mtiers et Webs Un systme de dboguage

Loc Rangon

120

Panorama des serveurs dapplications

LES OFFRES PHARES :


Borland AppServer 4.5 et BES Cold Fusion 4.5 Enhydra 3.5 HahtSite Scenario Server 5.1 iPlanet Application Server 6.5 .Net Server Oracle9i AS WebLogic Server 6.0 WebSphere Application Server 4.0 JBoss JRun SilverStream Application Server

Borland Allaire (Macromedia) Lutris Technologies Haht Commerce iPlanet (Sun) Microsoft Oracle BEA Systems IBM Logiciel Libre Allaire (Macromdia) SilverStream

Net Server (DNA) de Microsoft


En matire d'architecture web, Microsoft met en avant depuis maintenant deux ans son offre DNA (Distributed interNet Application) . Il s'agit plus d'un conglomrat d'outils spars, que d'une offre entirement package. Microsoft ne propose donc pas d'offre "serveur d'applications" proprement parler. La ralisation d'applications web passe par l'utilisation du couple IIS/ASP et COM+ (un framework transactionnel de dveloppement de composants).

Loc Rangon

122

lateforme .Net

Loc Rangon

123

rchitecture technique

Loc Rangon

124

ositionnement de .Net (DNA)

Tarification Dveloppement : 10 990 FF HT (1 675 HT) pour Microsoft Visual Studio Enterprise Edition 6.0 Dploiement : IIS, ASP, COM+ et MTS sont fournis avec les systmes d'exploitation Windows NT4 Server (+ Option Pack 4), Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Data Centeret Windows XP Pro ou XP .Net Server. 7 290 FF HT (1 111 HT) pour Windows 2000 Server et 27 990 FF HT (4 267 HT) pour Windows 2000 Advanced Server. Rangon Loc 125

racle 9i Application Server


Les premires versions : Oracle Web Server et Web Application Server s'appuyrent sur le classique PL/SQL. Puis, Oracle plongea son tour dans la vague Java. Aujourd'hui, Oracle offre un serveur d'applications Java accompagn des services de portail et dcisionnels avec Oracle9i AS. Oracle 9i As prend en compte:
A. B. C. D. E. F.

Le standard J2EE, Gestion de cache de donnes et HTTP, Moteur de servlets JServ, Perl, moteur PL/SQL, Les BC4J (Business components for Java), Intgration du wireless, Accompagn de lenvironnement de dveloppement JDeveloper

Loc Rangon

126

racle 9i Application Server

Loc Rangon

127

rchitecture technique

Loc Rangon

128

ositionnement de Oracle 9i AS

Tarification Dveloppement : environ 21 000 FF HT (3 201 HT) pour une licence valable quatre ans; environ 35 000 FF HT (5 335 HT) pour une licence valable vie Dploiement : environ 126 000 FF HT (19 209 HT) pour une CPU de 1 GHz pour une licence valable quatre ans
Loc Rangon 129

WebLogic Server fait office de rfrence aujourd'hui dans le milieu des serveurs d'applications Java.

ebLogic Server 6.x, de BEA Systems

Arriv maturit avant les autres acteurs (WebSphere OSS monde du libre), WebLogic a russi prendre une part importante du march un moment o la demande tait forte. L'offre la plus rpandue reste WebLogic Server, qu'il s'agisse de la version cluster ou non. BEA a cr une filiale indpendante, WebGain, autour de Visual Caf pour proposer un environnement de dveloppement intgrant

Le langage Java et J2EE Outils de dploiement sur BEA, iPlanet et WebSphere Intgration avec DreamWeaver Loutil dassistance TopLink pour le mapping objet-relationnel Loutil de modlisation Structure Builder
Loc Rangon 130

ebLogic Server

Loc Rangon

131

rchitecture technique

Loc Rangon

132

ositionnement de WebLogic Server

Tarification Dveloppement : environ 20 000 FF HT (3 048 HT) par poste (Visual Caf + Structure Builder) Dploiement : environ 100 000 FF HT (15 245 HT) par CPU pour WebLogic Server ; environ 170 000 FF HT (25 916 HT) par CPU pour WebLogic Server en mode cluster
Loc Rangon 133

ebSphere Application Server, de IBM


WebSphere constitue la pierre angulaire de l'architecture web de IBM. Dclin en plusieurs versions allant du moteur de servlets aux solutions packages de commerce lectronique. WebSphere Application Server Advanced Edition, reprsente la solution la plus souvent retenue par les entreprises car elle intgre :

Respect du standard J2EE, Reprise sur incidents, Rpartition de charges, serveurs dEJBs, s'intgre l'existant avec entre autres les produits NotesDomino ou encore l'aide de MQSeries, pour la version Server Enterprise Edition.

Loc Rangon

134

ebSphere Application Server

Loc Rangon

135

rchitecture technique

Loc Rangon

136

ebSphere Application Server Positionnement

Tarification Dveloppement : environ 20 000 FF HT (3 048 HT) par poste (VisualAge for Java + WebSphere Studio) Dploiement : environ 70 000 FF HT (10 671 HT) par CPU pour WebSphere Application Server Advanced Edition
Loc Rangon 137

Boss en Open Source


JBoss est un serveur et un conteneur EJB qui implmente les spcifications J2EE de Sun. JBoss 1.0 supporte les EJB 1.1 et peut excuter les EJB Entity (CMP et BMP) et Session. JBoss 2.0 est coupl avec le moteur de servlets Tomcat pour couvrir galement la couche de prsentation. JBoss 2.0 propose de nombreux modules :

JBossMQ, JBossNS, JBossCX, JBossTX et JBossSX qui sont respectivement des implmentations de JMS, de JNDI, de JCA, de JTA/JTS et de JAAS. Dispose de connexions JDBC pour le back office (sans fournir les pilotes) Il est possible de coupler JBuilder avec JBoss (pas dIDE)

Loc Rangon

138

Boss

Loc Rangon

139

ositionnement de JBoss

Loc Rangon

140