2. De l’arch. 2-tiers aux 3-tiers
2
Limites des arch. 2-tiers
Charge importante du poste client qui réalise
l'ensemble des traitements applicatifs
Maintenance et mises à jour difficiles à gérer
Conversation entre client et serveur est assez
bruyante
Ces limites proviennent de type du client : client
lourd
Frontal complexe et non standard (Windows, Linux,
Mac,…)
Middleware entre client et serveur n'est pas standard
Solution : utilisation d'un poste client simple
communicant avec le serveur par le biais d'un
protocole standard
3. Présentation de l’arch. 3-tiers
3
L'arch. 3-tiers, ou C/S de 2ème génération,
sépare l'application en 3 niveaux
Niveau 1 : l'affichage et les traitements locaux
(contrôles de saisie, mise en forme de données... )
sont pris en charge par le poste client
Niveau 2 : les traitements applicatifs globaux sont
pris en charge par le service applicatif : serveur
d’application
Niveau 3 : les services de base de données sont
pris en charge le serveur de données
Traitements
globaux
Présentati
on
Traitemen
ts locaux
Données
Niveau 1 Niveau 2 Niveau 3
6. Client léger
6
Dans l’arch 3-tiers le client est léger, prend en
charge
présentation de l'application
traitements locaux permettant une vérification
immédiate de la saisie et la mise en forme des données
Les évolutions de l'application ne nécessitent pas la
modification de la partie cliente
Éviter l'installation des applications sur le poste
utilisateur
Utiliser un navigateur web
Communiquer avec le serveur d’application via une
façade web
7. Niveau web dans l’arch. 3-tiers
11
Le poste client prend la forme d'un navigateur Web
Le serveur d’application nécessite une couche web, appelé
serveur web, pour communiquer avec le navigateur
Fonctionnement
Le serveur web transmet au client, lui ayant fait une demande HTTP
via URL , les fichiers statiques présents sur son disque dur (pages
HTML , images, fichiers CSS,...)
Lorsque le client demande un traitement, page dynamique, le
serveur web aiguille cette demande vers la couche applicative dans
le serveur d'application
Une fois le traitement effectué, le serveur d'application renvoie la
page HTML au serveur web qui se charge de la router vers le client
Remarque : Le marché des serveurs web est dominé par
Apache
10. Les technologies web : coté
client14
Javascript
Langage Interprété, orienté objet
Code s’insère dans le code HTML
Gère les évènements principaux de la souris et la saisie au
clavier
Code envoyé au client, puis interprété
Applets
Langage java
Ensemble de fichiers .class
Le code est exécuté dans une JVM
ActiveX
Composants Microsoft
Fichiers stockés sur disque dur (.VBX, .OCX, .DLL, .EXE)
Créés avec Visual basic, Delphi ou C++
11. CGI (Common Gateway Interface)
Technologie la plus ancienne
Tout langage possible
Langage Perl le plus utilisé
C, C++, Fortran, etc...
Servlets
Classes Java
Exécutés par un moteur de servlet (Tomcat ou
Jetty)
La classe doit générer tout le code html
Les technologies web : coté
serveur
12. JSP (Java Server Pages)
Technologie Java
Langage de scripts
Fichier .jsp remplaçant les fichiers .html
Combine l’utilisation d’html et de java
ASP (Active Server Pages)
Technologie Microsoft
Même principe que JSP
PHP
Langage de scripts
Orienté Objet
S’intègre au code HTML
Les technologies web : coté
serveur
13. Synthèse
17
Avantages
Déploiement immédiat
Evolutions transparentes pour l'utilisateur
Caractéristiques du poste client libres
Limites
Le serveur d’application réalise la majorité des
traitements
Problème de gestion de la montée en charge
Editor's Notes
Il est coûteux et contraignant de réaliser l'ensemble des traitements applicatifs et de les maintenir par le poste client.
Il n’est pas possible de soulager la charge du poste client, qui supporte la grande majorité des traitements applicatifs
Le poste client doit installer une application assez complexe
La conversation entre client et serveur est assez bruyante et s'adapte mal à des bandes passantes étroites.
Ce type d’architecture est souvent réservé au réseau local de l'entreprise
ou C/S distribué
Aucune connaissance des traitements applicatifs globaux ou de la structure des données exploitées
Client léger ou Thin client
Prend en charge l'ensemble des fonctionnalités de l’application
Gestion des connexions des utilisateurs
Gestion des montées en charge et reprise sur incident
Connexion à la base de données
À modifier !!! Voir d’autres fonctionnalités
La plupart des serveurs d'application génèrent un identifiant unique pour chaque nouveau client et transmettent cet identifiant lors de chaque échange HTTP par URL longs, variables cachées ou cookies.
(même si dans la grande majorité des cas, on se contente d'une gestion des montées en charge au niveau réseau - boîtier de répartition, DNS round-robin, reverse proxy...).
On s'attend également à ce qu'il fournisse des mécanismes performants tels que le pooling de connexion base de données.
Architecture standardisée, facile à comprendre pour l’extérieur
portabilité : peut passer d’un serveur d’applications J2EE à un autre sans problèmes
Inconvénients :
le code doit être écrit en Java
la portabilité entre serveurs d’application J2EE n’est pas totale
Avantage: unité, cohérence
plusieurs langages possibles : C#, Visual Basic, F#, J#, etc.
compilés dans un langage commun : “Common Language Infrastructure” qui est ensuite compilé en langage machine
ASP.NET permet de créer des pages Web dynamiques
Le marché des serveurs Web est largement dominé par Apache
Une fois, le traitement effectué, le serveur d'application renvoie la page HTML (ou autre format) au serveur Web qui se charge de la router vers le client.
Animer cette figure
Modifier cette figure !!!
Dans JavaScript, j’ai remplacé Page par Code
(1 fichier .class par classe définie)
Appel de l’applet dans le code HTML
<APPLET CODE= … > </APPLET>
Jetty est utilisé dans Google App Engine
Lien entre serveur et machine virtuelle
Exécuté par un moteur de servlet (Tomcat)
CGI : Programme sur le serveur (précompilé)
Placé dans un répertoire particulier
étendre les classes
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
Avantage
Accès bases de données
Composants Java (servlets, JavaBeans)
Réutilisabilité
PHP
Langage de scripts
Orienté Objet
S’intègre au code HTML
Permet un accès facile aux bases de données
Les contraintes semblent inversées par rapport à celles rencontrées avec les architectures deux tiers : le client
est soulagé, mais le serveur est fortement sollicité. Le phénoméne fait penser à un retour de balancier.
et il est difficile de répartir la charge entre client et serveur