Download - Cours Architecture Ntier
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 1/35
Moez BEN HAJ HMIDA
ISSAT Sousse
2009/2010
3ème Année Licence appliquée
Informatique Industrielle
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 2/35
Plan
Modèles d’exécution Conception d’applications
Architecture 1-tiers
Architecture 2-tiers Architecture 3-tiers
Architecture 4-tiers
Middleware
2M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 3/35
Modèles d’exécution
Plusieurs modèles Client/Serveur
Communication par messages
ommun cat on par v nements Objet
Composant
Services Services Web (Web services)
3M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 4/35
Modèle client-serveur
Client Envoi de requêtes (demande de service)
Exécution synchrone
Serveur Fournit un ou plusieurs services
Traitement des requêtes séquentiel ou parallèle
Exemples Serveur de fichiers, de BD, d’impression, de noms, …
4M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 5/35
Modèle client-serveur
Requête : message transmis par un client à un serveur
décrit l’opération à exécuter pour le compte du client
R ponse : message transmis par un serveur à un client
produit suite à l’exécution d’une opération
contient le résultat de l’opération exécutée
5M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 6/35
Interactions client-serveur
Client Serveur
Un client, un serveur
Client Serveur
Plusieurs clients, un serveur
Client
6
Requête/Réponse
Client Serveur
Un client, plusieurs serveurs
Un serveur fait appel àun autre serveur
Serveur
Un serveur traite plusieursrequêtes en même temps
M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 7/35
Plate-forme d’exécution
Centralisée Client et Serveur sur la même machine
Appel de procédure
Partage de ressources
Communication par ressources partagées
Signaux, Tubes (pipes)
7M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 8/35
Plate-forme d’exécution
Répartie Client et Serveur sur deux machines distantes
Pas de partage
Hétérogénéité (homogénéité)
Modèle
RPC (Remote Procedure Call)
8M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 9/35
Conception d’applications
Découpage d’une application Déterminer les procédures qui la composent
Découpage fin
’
Peu de calcul interne
Augmentation de la charge réseau
Découpage moins fin
Trouver un équilibre entre calcul et communication Structuration applicative
Découpage au sens entreprise
9M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 10/35
Conception d’applications
3 niveaux Présentation
Interfaces
Traitements
Applications métiers
Données
Gestion (stockage, accès, …)
10M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 11/35
Définitions
Application distribuée programmes s’exécutant sur 2 ou plusieurs de machines
Architecture Où s’exécutent les programmes ?
Que fait chaque programme ?
Comment ces programmes interagissent ?
11M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 12/35
Conception d'une application C/S Exemples de découpage Client/Serveur :
Module de gestion des données hébergé par un serveurdistant (SGBD, serveur web)
Module de gestion de l’affichage géré par un serveur
M. Ben Haj Hmida 12
Source: O. Glük
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 13/35
Conception d'une application C/S
M. Ben Haj Hmida 13
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 14/35
Architecture à 1 niveau
Des terminaux non-intelligents sont directement reliés à
l'unité centrale Modèle centralisé (opposé du modèle distribué)
La présentation, le traitement et les données entrelacés
14M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 15/35
Arch. 1 niveau: critiques Avantages
facilités de déploiement
Inconvénients surcharge de la mainframe
difficulté de la maintenance
15M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 16/35
Architecture à 2 niveauxBase de
données
Requête SQL
Réponse SQL
Client lourd qui traite les différentes logiques
Client doit connaître la structuration des données et
comment y accèder
16M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 17/35
Architecture à 2 niveaux
Architectures et applications distribuées 17
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 18/35
Arch. 2 niveaux: critiques Avantages
Indépendance par rapport au SGBD
Inconvénients :
’
maintenance
Si les schémas de la BD changent, tous les clients tombenten panne
Les mises à jour doivent être déployées au niveau de tousles clients
Une connexion de BD pour chaque client, difficulté de lamise à l’échelle
18M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 19/35
Modèle à 3 niveaux
Architectures et applications distribuées 19
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 20/35
Modèle à 3 niveaux (Suite)
Architectures et applications distribuées 20
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 21/35
Architecture à 3 niveaux (RPC)
Client plus léger: séparation de la logique de présentation desdeux autres logiques
La logique applicative et la logique d’accès aux données sonttraitées au niveau du tiers du intermédiaire
tiers du intermédiaire gère les services système
Contrôle de concurrence, threading, transaction, sécurité,persistance …
21M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 22/35
Arch. 3 niveaux (RPC): critiques Avantages
flexibilité de modification de la logique applicative qui
réside dans le tiers intermédiaire
Inconvénients
toute la complexité réside dans le tiers intermédiaire
L’utilisation du modèle RPC implique certaines limites
comme la réutilisation de code
22M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 23/35
Architecture à 3 niveaux (Objets distants)
Objet
Objet
Logique applicative et logiques données sont integréesdans des objets
Modèle à objets distribués
RMI
CORBA
DCOM
23M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 24/35
Arch. 3 niveaux (Objets): critiques Avantages
Réutilisation du code
Inconvénients La complexité réside dans le tiers intermédiaire
24M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 25/35
Arch. à 3 niveaux (serveur Web)
HTML
HTML
Serveur Web
Le navigateur Web gère présentation
Le client et le serveur communiquent en HTTP
La logique applicative et la logique d’accès aux données
sont traitées par des technologies de génération
dynamique de contenu (CGI, servlet/JSP, ou ASP)
25M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 26/35
Arch. 3 niveaux (Web): critiques Avantages :
type de client omniprésent
pas de gestion du client
support de plusieurs types de matériel client (exple.
Téléphone portable)
Inconvénients
toute la complexité réside dans le tiers intermédiare
26M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 27/35
Servlet Composant logiciel écrit en Java fonctionnant du coté serveur
Conception de composants Web dynamiques
Au même titre: CGI (Common Gateway Interface) qui est très
CGI créé un nouveau processus pour chaque requête client
ne peut pas supporter un grand nombre de clients
Les Servlets peuvent être toutes gérées par des threads
séparés au sein d’un même processus de machine virtuelle plus efficaces que CGI
27M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 28/35
Servlet
28M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 29/35
Java Server Pages Separe la logique applicatice de la présentation
Présentation sous forme de HTML ou XML
logique applicatice est implémentée en composants Java
Meilleure maintenance, réutilisabilité
Repose sur la technologie Servlet
29M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 30/35
JSP Modèle 1 Simple et utilisé pour les petites applications
30M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 31/35
JSP Modèle 2 (MVC2) Pour accéder à une grosse application d’entreprise
31M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 32/35
Exécution JSP
32M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 33/35
Exemple de Servletpublic class HelloWorldServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<html>");
out.pr nt n < ea > ;
out.println(" <title>Bonjour tout le monde</title>");out.println(" </head>");
out.println(" <body>");
out.println(" <h1>Bonjour tout le monde</h1>");
out.println(" Date:" + (new java.util.Date().toString()) + " ");out.println(" </body>");
out.println("</html>");
}
}
33M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 34/35
Même exemple en JSP<html>
<head>
<title>Bonjour tout le monde</title>
</head><body>
<h1>Bonjour tout le monde</h1>
Date : <%= new java.util.Date().toString() %> .</body>
</html>
34M. Ben Haj Hmida
5/13/2018 Cours Architecture Ntier - slidepdf.com
http://slidepdf.com/reader/full/cours-architecture-ntier 35/35
Modèle à 4 niveaux
Architectures et applications distribuées 35