Vous êtes sur la page 1sur 28

Architecture n/3 et orientée service

Plan

1 Introduction

2 Logique d’une application

3 Architecture 1-tiers

4 Le modèle Client-serveur

5 Architecture 2-tiers

6 Architecture distribuée
Architecture 3-tiers

Mariem Farhat (ISIMG) Short title November 9, 2018 2 / 87


Qu’est-ce qu’une architecture ?

” . . . la structure des composants d’un programme/système, leurs


interrelations et les principes et lignes directrices gouvernant leur
conception et leur évolution au fil du temps. ”

[Garlan, 1995]

Mariem Farhat (ISIMG) Short title November 9, 2018 3 / 87


Qu’est-ce qu’un ”tier” ?

La structuration du système peut être vue sous différents angles, selon


que l’on considère :
le découpage ”logique” hors de tout contexte d’exécution (machines,
OS et réseaux)
le découpage ”physique” (prenant en compte le contexte d’exécution)
Une application peut être alors déployée sur plusieurs niveaux
Un tier est donc un niveau, il peut être:
un tier client
un tier serveur de base de données
un tier serveur d’application
un tier serveur de messagerie
...

Mariem Farhat (ISIMG) Short title November 9, 2018 4 / 87


Et donc, une architecture n-tiers?

Et bien. . . une architecture logicielle qui est décomposée en n tiers !

Mariem Farhat (ISIMG) Short title November 9, 2018 5 / 87


Triptyque d’une application

L’architecte structure le système selon plusieurs ”vues” :


Vue en couches (layer view) : vue ”logique” montrant le découpage
des fonctions de l’application: Une application peut être découpée en
”morceaux ” donc en couches:
couche de présentation
couche de gestion des données,
couche applicatif,
etc.
Triptyque d’une application

Les architectes peuvent être amenés à effectuer des découpages plus


fins lorsque les contraintes deviennent plus industrielles
Triptyque d’une application
Couche Présentation
Interface utilisateur pour interagir avec l’application
Interface classique type GUI (ex : traitement de texte)
Interface Web

Couche Application
Partie applicative
Intègre la logique métier
Elle représente l’implémentation de la logique des cas d’utilisation
(use-case fonctionnels) à proprement parler
Ex: créer un document, le modifier, ajouter des sections, l’enregistrer ...

Couche Données
gére l’accées physique aux données de l’application
Fichiers (texte, binaire, XML, ...)
Base de données relationnelles (Simple, Multiple)
Tryptique d’une application

Vue en niveaux (tier view) : vue ”physique” de la structuration de


l’application, c’est à dire comment déploier l’application sur les
différentes machines?
Les trois couches peuvent être imbriqués ou répartis de différentes
manières entre plusieurs machines physiques.
Le découpage et la répartition des trois couches d’abstraction
permettent de distinguer les architectures physiques suivantes :
l’architecture 1-tiers, l’architecture 2-tiers, l’architecture 3-tiers et les
architectures n-tiers.
Tryptique d’une application

Trois couches
Sont intégrées et coopèrent pour le fonctionnement de l’application
En anglais, on les appelle aussi des ”layer”
Modèle centralisé
Tout est sur la même machine

Dans un contexte distribué


Les couches sont peuvent ˆetre exécutés sur des machines différentes
Certains couches peuvent être sous-découpés
De nombreuses variantes de placement des couches sur des tiers et de
leur distribution
Architecture 1-tiers

Les trois couches sont fortement liées et s’exécutent sur la même


machine.
On parle d’informatique centralisé

Dans un contexte multi-utilisateur, deux types d’archtiecture 1-tiers:


Architecture 1-tiers sur site central (Mainframe et des terminaux)
Architecture 1-tiers déployées sur des machines indépendantes
(Micro-ordinateurs)
Architecture 1-tiers: Site central (Années 70)

Historiquement, les applications sur site central furent les premières à


proposer un accès multi-utilisateurs.
Les utilisateurs se connectent aux applications exécutées par le serveur
central (le Mainframe) à l’aide de terminaux passifs incapables de
réaliser la moindre tâche.
C’est le serveur central qui prend en charge l’intégralité des
traitements, y compris l’affichage qui est simplement transmis sur des
terminaux passifs.
Architecture 1-tiers: Site central (Années 70)
Architecture 1-tiers: Site central(Années 70)

Mainframe
Un ordinateur central ou un macroordinateur (mainframe computer), est
un ordinateur de grande puissance de traitement et qui sert d’unité
centrale à un réseau de terminaux.
Architecture 1-tiers: Site central (Années 70)

Terminal passif
Les terminaux passifs ne possèdent pas de moyens de traitement
autonomes.
Ils se contentent d’accepter ce que l’utilisateur frappe au clavier ou
transmet comme ordre à la souris, de le transmettre à un ordinateur et
d’imprimer les réponses de l’ordinateur ou de les afficher sur un écran.
Architecture 1-tiers déployées (Années 80)

Progrès technologiques:
L’émergence des interfaces utilisateur de type Windows
Les premiers Micro-ordinateurs (IBM, Intel 8088 )
Le développement des réseaux LAN
Le développement des interfaces graphiques modernes (GUI)
Plusieurs utilisateurs se partagent des fichiers de données stockés sur
un serveur commun.
Dans ce contexte, plusieurs utilisateurs se partagent des fichiers de
données stockés sur un serveur commun. Le moteur de base de
données est exécuté indépendamment sur chaque poste client.
Architecture 1-tiers: Comparaison
Solution

Trouver une solution conciliant les avantages de cette architecture :


la fiabilité des solutions sur site central, qui gèrent les données de façon
centralisée,
l’interface utilisateur des applications sur des micro-ordinateurs.
Pour obtenir cette synthèse, les applications ont été scindées en deux
parties distinctes et coopérantes : gestion centralisée des données et
gestion locale de l’interface utilisateur.
Le modèle client/serveur

Le modèle client/serveur désigne un mode de communication entre


plusieurs composants d’un réseau.
Chaque entité est considérée comme un client ou un serveur.
Chaque logiciel client peut envoyer des requêtes à un serveur.
Un serveur peut être spécialisé en serveur d’applications, de fichiers,
de terminaux, ou encore de messagerie électronique.
Le modèle client/serveur

Un client
Les caractéristiques d’un client sont les suivantes : il est d’abord actif (ou
maı̂tre), il envoie des requêtes au serveur, il attend et reçoit les réponses
du serveur.

Un serveur
Un serveur est initialement passif, il attend, il est à l’écoute, prêt à
répondre aux requêtes envoyées par des clients. Dés qu’une requête lui
parvient, il la traite et envoie une réponse.

Remarque
Une fois le client traité, le serveur peut en traiter un autre. Il existe des
serveurs multiclients comme les serveurs Web/http qui sont capables de
traiter plusieurs clients en même temps.
Principe du client/serveur

Le dialogue
Le client et le serveur doivent bien sûr utiliser le même protocole de
communication.
Un serveur est généralement capable de servir plusieurs clients
simultanément.
Middleware: Ensemble de mécanismes assurant la communication
entre client et serveur.
Le modèle client/serveur

Middleware
Ensemble des couches réseau et services logiciel qui permettent le
dialogue entre les différents composants d’une application répartie.
L’objectif principale d’un middleware est d’unifier, pour les
applications, l’accès et la manipulation de l’ensemble des services
disponibles sur le réseau, afin de rendre l’utilisation de ces derniers
presque transparente.
Des clients et des serveurs...
Des clients et des serveurs...

L’exemple du Web

L’application est répartie sur le


client et le serveur qui dialoguent
selon un protocole applicatif
spécifique
Le modèle client/serveur
Exemple d’application client/serveur

1 Le client lit une ligne à partir de l’entrée standard (clavier) et l’envoie


au serveur
2 Le serveur lit la ligne reçue et la convertit en majuscules
3 Le serveur renvoie la ligne au client
4 Le client lit la ligne reçue et l’affiche sur la sortie standard (écran)
Application Client-serveur: récapitulatif

Une application Client/Serveur, c’est:


une partie cliente qui exécute des requêtes vers un serveur
une partie serveur qui traite les requêtes clientes et y répond
un protocole applicatif qui définit les échanges entre un client et un
serveur
un accès via une API (interface de programmation) à la couche de
transport des messages
Bien souvent les parties cliente et serveur ne sont pas écrites par les
mêmes programmeurs (Navigateur Netscape/Serveur apache) : rôle
important des RFCs qui spécifient le protocole !
Conception d’une application Client/serveur

Comment découper une application informatique en clients et


serveurs ?
Plusieurs architectures: 2-tiers, 3-tiers, 4-tiers, ..., n-tiers

Vous aimerez peut-être aussi