Vous êtes sur la page 1sur 27

Serveurs dapplication

1.
2.
3.
4.

Architecture
Le standard J2EE
Etude de cas: EDF GDF
.NET de Microsoft

1. Architecture avec SA
Prsentation Application
Appareil
mobile

Serveur
WAP

Browser
Web

Serveur
Web

Client
Java

Parefeu

Client
VB/C++

Donnes

SGBD
Serveur
Web

Serveur
dapplication

Application
ERP

Application
mainframe

Serveur dapplication
Serveur dentreprise avec
support des composants
standards CORBA, COM, EJB
middleware objet
support des transactions
standards CORBA, Open Group (XA)
environnement de dveloppement intgr
composants, transactions
quilibrage de charge entre serveurs
support de XML et des Web services
interface avec moniteurs transactionnels et MOM

NB: serveur dapplication serveur Web + servlet


(ex. Apache+Tomcat)

Equilibrage de charge et
disponibilit
En cas de panne de A,
basculement automatique
sur B

Cookie A,B

Serveur A
primaire

Rplication de ltat
des processus clients

Serveur B
Secondaire

Cluster
4

Le problme daccs aux donnes


O mettre la logique applicative ?

Composants mtiers

Procdures stockes

Serveur dapplication

Serveur de donnes

Compromis entre performances et


flexibilit difficile obtenir

performances : sappuyer au maximum sur le


serveur BD => procdures stockes
flexibilit : composants mtiers encapsulant
laccs aux donnes
5

Accs BD en C/S 2 tiers


Dveloppement dapplications BD en 2
tapes
1 conception de la BD
cration des tables et des contraintes
dintgrit
2 programmation des procdures stockes

Trs efficace

procdures stockes et contraintes dintgrit


excutes sur le serveur BD

Evolution difficile

la modification dune dfinition de donnes


implique la recompilation des procdures
stockes
6

Composants avec accs BD


Similaire au C/S

Gestionnaire de
commandes
Commande

+ efficace
- composants non
autonomes

Produit

Select C.a, P.b,


From C, P
Where

Composants encapsulant leurs


donnes
Principe dlot de
donnes

Gestionnaire de
commandes
Commande

ensemble de donnes
entirement contenu
dans un composant
mtier
exige une forte
localit des
donnes/composant
+ composants
autonomes
- performances

Produit

Comment amliorer les


performances
Faire des composants mtiers gros grain
encapsulation des donnes fortement corrles
par ex. 5 10 dfinitions de tables
relationnelles

Exploiter les vues relationnelles


pour les donnes partages entre plusieurs
composants

Mettre en uvre un cache de donnes au


niveau du serveur dapplication
transformation objet/relationnel

2. Le standard J2EE (Sun et al.)


De nombreuses API

EJB: modle de composants serveurs


JNDI: accs aux services dannuaire DNS, LDAP
RMI: invocation de mthodes Java distance
JIDL: Java IDL - interface Corba
JSP: Java Server Pages (Java ds pages HTML)
JMS: Java Messaging Service
JTS: Java Transaction Service (bas sur OTS)
JDBC: accs aux BD via SQL
JDO: Java Data Objects
JAX: Java XML
JCA: Java Connector Architecture
...
10

JAX
Pour intgrer XML et les services web
JAX-RPC (Java API for XML RPC) pour effectuer
des appels de messages SOAP
JAXM (Java API for XML Messaging) pour
envoyer des documents XML via SOAP
JAXR (Java API for XML Registries) pour accder
des annuaires de services de type UDDI

11

Architecture dun serveur J2EE


Logique mtier

Logique de prsentation

Container Web
HTML/XML

Java Server
Page

Java
Bean

Servlet

Container EJB
Session
Bean

Entity
Bean

Support Comm.

Services de base

TCP/IP, HTTP, RMI,


IIOP, SOAP, etc.

JDBC, JTS, JNDI,


JMS, JDO, JAX, etc.

12

Principaux serveurs J2EE


Editeur

Produit

Points forts

Ordre de prix

BEA-Oracle WebLogic

Transactionnel, outils

10K

IBM

Websphere

10K

Oracle

AS

Transactionnel, intgration
avec DB2 UDB
Intgr dans loffre Oracle

HP

Intgr avec les middlewares


HP
Bas sur Visibroker, outils

10K

Borland

Total-eserver
AppServer

Sun

GlassFish

Logiciel libre (dernier n)

Gratuit

Redhat

Jboss

Logiciel libre

Gratuit

Apache

Jeronimo

Logiciel libre

Gratuit

Objectweb

Jonas

Logiciel libre

Gratuit

13

10K

10K

WebSphere Application Server


Support J2EE complet
Support des transactions

Interoprabilit avec le moniteur TXSeries

Serveur HTTP bas sur Apache


Support des clusters

partitionnement des applications et quilibrage de


charge

Intgration avec

Studio Application Developer


DB2 pour la gestion de donnes et le stockage de
XML
Tivoli pour la gestion de rseau
Versant enJin pour les objets persistants
14

WebLogic (BEA-Oracle)
Support J2EE complet
Serveur HTTP intgr
Plugins pour Apache, IIS, Iplanet

Support des transactions


interoprabilit avec le moniteur BEA Tuxedo

Support des clusters


disponibilit et quilibrage de charge

Environnement de dveloppement
WebLogic Builder pour le dveloppement Java
WebLogic Workshop pour les Web services

Intgration avec
Nokia WAP server pour les mobiles
TopLink (WebGain) pour le mapping objet-relationnel
Versant enJin pour les objets persistants
15

3. Etude de cas: EDF GDF


Application de relation client (CRM) :
Niveau1
Utilise par 25000 agents de clientle rpartis
sur 1300 agences
Gestion commerciale, gestion des contacts, outils
marketing, utilitaires (mailings, etc.)

Architecture technique
C/S (client lourd) avec 2 nouvelles versions par an
SI sur mainframes IBM (un centre par dpartement)
Plusieurs BD et une partition CICS par centre

Besoins
Ractivit croissante aux demandes des agents
Dploiement plus rapide des nouvelles
versions
16

Solution
Architecture n-tiers
Client lger
WebLogic: serveur J2EE sur plusieurs serveurs
Scort: Progiciel dintgration avec les
applications mainframes avec des composants
J2EE sur WebLogic

Rsultats obtenus
Satisfaction des besoins
Niveau1 offre 2 modes daccs transparents
aux clients:
Accs aux mainframes en rcuprant une connexion
pour excuter des transactions
Smart publishing: navigation en mode publication la
vole
17

Le problme de la persistance des


objets
Ltat des objets modifis par les entity
beans doit tre sauvegard durant
lexcution
Approche classique: BD relationnelle avec
mapping objet-relationnel
en gnral trs inefficace avec des entity
beans CMP (cf tude de SQLi mars 2002)

Solutions
propritaire de type TopLink
mapping vers une BD objet, par ex. Versant
enJin
la plus productive et efficace selon SQLi
18

Versant enJin
Serveur
dapplication
Bean
Bean
Commande Produit

Serveur
dapplication
Bean
Bean
Commande Produit
Cache partag

transactions

transactions
SGBDO Versant
Mapping O/R automatique

Tiers backend

Bases de donnes
19

Avantages de Versant enJin


Persistance des objets Java transparente
simple pour le dveloppeur
pas besoin de programmer en JDBC ou autre

Cache dobjets partags entre diffrents


serveurs
performances et cohrence via le SGBDO
Versant

Mapping objet-relationnel automatique


vers les BD existantes
dfinition de la frquence de synchronisation
online, batch, etc.
20

4. Microsoft .NET
Evolution majeure de la plateforme
Windows
les APIs Windows sont remplaces par des
bibliothques de classes objet
intgration de C#, Linq
portabilit des applications .NET
Microsoft Intermediate Language (MSIL)
excut par CLR
scurit renforce avec vrification de code
intgration avec COM et Microsoft Transaction
Server (MTS)
support direct des services Web, de XML et de
SOAP avec Visual Studio .NET
21

Architecture de MTS
Internet
Information
Server (IIS)
HTTP

MTS
Executive
threads
wrapper
context

HTML
XML

ADO

SQLServer

Oracle

Active Server
Page (ASP)

factory
trans.
cache

DCOM

Windows

22

Autres

Modle de composants MTS


Composant
pas dtat (quivalent EJB session bean)

Container
executive : entre client et composant serveur
context wrapper
dfinition du comportement trans. du
composant par le dveloppeur (par
positionnement dattributs avec Explorer)
context object
appel automatiquement par MTS pour
coordonner les transactions en 2 phases

Serveur Windows
23

Exemple de code applicatif MTS


Set ctxObject = GetObjectContext ()
// accs lobjet contexte de MTS
{ code applicatif }
Set objExemple = ctxObject.CreateInstance ()
// cration dun objet MTS
{ code applicatif }
If (OK)
ctxObject.SetComplete () // validation de la transaction
Else
ctxObject.SetAbort () // annulation de la transaction

24

Le framework .NET

VB, C++, C#, Jscript, Java,etc.


Outils
SOAP
et
XML

ASP.NET
Docs
HTML XML

BCL.NET
Base class
library

ADO.NET
Active Data
Objects

Common Language Runtime


(CLR)
Windows et COM/MTS

25

Visual
Studio
.NET

Serveur J2EE versus .NET


Serveur J2EE

limit Java
transactions explicites
gnralit

objets avec tat: entity beans

problme de performances des beans CMP

portabilit

.NET

multi-langage
transactions implicites
simplicit

objets sans tat

utiliser ADO pour laccs aux donnes

propritaire, intgr dans le monde Windows


26

Conclusion sur les serveurs


dapplication
Un modle darchitecture rellement
distribu
cache la complexit du middleware

Critres de choix dun serveur


dapplication
support des standards
J2EE, Web services
plate-formes supportes
performances et dbit transactionnel
environnement de dveloppement

27