Cours Architecture Ntier

35
 M BEN HAJ HMIDA ISSAT S 2009/2010 3 ème Année Licence appliquée Informatique Industrielle

Transcript of Cours Architecture Ntier

Page 1: 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

Page 2: Cours Architecture Ntier

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

Page 3: Cours Architecture Ntier

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

 

Page 4: Cours Architecture Ntier

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

 

Page 5: Cours Architecture Ntier

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

 

Page 6: Cours Architecture Ntier

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

 

Page 7: Cours Architecture Ntier

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

 

Page 8: Cours Architecture Ntier

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

 

Page 9: Cours Architecture Ntier

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

 

Page 10: Cours Architecture Ntier

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

 

Page 11: Cours Architecture Ntier

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

 

Page 12: Cours Architecture Ntier

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

 

Page 13: Cours Architecture Ntier

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

 

Page 14: Cours Architecture Ntier

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

 

Page 15: Cours Architecture Ntier

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

 

Page 16: Cours Architecture Ntier

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

 

Page 17: Cours Architecture Ntier

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

 

Page 18: Cours Architecture Ntier

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

 

Page 19: Cours Architecture Ntier

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

 

Page 20: Cours Architecture Ntier

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

 

Page 21: Cours Architecture Ntier

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

 

Page 22: Cours Architecture Ntier

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

 

Page 23: Cours Architecture Ntier

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

 

Page 24: Cours Architecture Ntier

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

 

Page 25: Cours Architecture Ntier

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

 

Page 26: Cours Architecture Ntier

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

 

Page 27: Cours Architecture Ntier

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

 

Page 28: Cours Architecture Ntier

5/13/2018 Cours Architecture Ntier - slidepdf.com

http://slidepdf.com/reader/full/cours-architecture-ntier 28/35

Servlet

28M. Ben Haj Hmida

 

Page 29: Cours Architecture Ntier

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

 

Page 30: Cours Architecture Ntier

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

 

Page 31: Cours Architecture Ntier

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

 

Page 32: Cours Architecture Ntier

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

 

Page 33: Cours Architecture Ntier

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

 

Page 34: Cours Architecture Ntier

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

 

Page 35: Cours Architecture Ntier

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