Académique Documents
Professionnel Documents
Culture Documents
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
Loc Rangon
Loc Rangon
Loc Rangon
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
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
La version 1.5 ou 5.0 en Septembre 2004 => Version Majeure La version 1.6 ou 6.0 en Dcembre 2006
s
JAVA J2SE
J2SE
Java Edition Standard Dveloppement et dploiement dapplications Java Principaux produits : JDK, JRE
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,
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
Loc Rangon
17
Loc Rangon
18
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
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
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
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
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 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 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
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 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
PROLOGUE
Un fichier XML pour tre valide comme obligatoirement par un prologue. Le prologue minimal est : <?xml version= 1.0 ?>
Loc Rangon
29
RACINE
La balise racine dun document XML est la premire balise trouve.
Ex Commentaires
<!-- ceci est correct --> <elt> <!-- ceci est correct aussi --> Un peu de texte </elt>
Loc Rangon 30
<!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
Loc Rangon
34
Loc Rangon
35
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
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
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
Loc Rangon
55
J2EE
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
Loc Rangon
60
J2EE
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
J2EE
J2EE
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
Loc Rangon
65
J2EE
J2EE
J2EE
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
J2EE
Application Web (WAR) Application d'entreprise (EAR) EJB (JAR) Connecteurs J2EE (RAR) Application client
WEB-INF/web.xml
web-app_2_5.xsd
Loc Rangon
application-client_5.xsd
77
J2EE
Loc Rangon
78
J2EE
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
Loc Rangon
81
J2EE
Loc Rangon
82
J2EE
Loc Rangon
83
J2EE
J2EE
Loc Rangon
85
J2EE
Loc Rangon
86
J2EE
Loc Rangon
87
J2EE
Loc Rangon
88
J2EE
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
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
Loc Rangon
93
J2EE
Loc Rangon
94
J2EE
Loc Rangon
95
J2EE
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
3. 4.
Loc Rangon
97
J2EE
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
Loc Rangon
99
J2EE
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
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
Loc Rangon
102
J2EE
J2EE
Loc Rangon
104
J2EE
Loc Rangon
105
Loc Rangon
106
Loc Rangon
107
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
Loc Rangon
109
Loc Rangon
110
Loc Rangon
111
Loc Rangon
112
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
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.
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 :
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
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
Loc Rangon
122
lateforme .Net
Loc Rangon
123
rchitecture technique
Loc Rangon
124
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
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
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.
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
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
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
Loc Rangon
135
rchitecture technique
Loc Rangon
136
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
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