Vous êtes sur la page 1sur 10

Chapitre 2 : Architecture Client -Serveur

Introduction
Ces vingt dernières années ont vu une évolution majeure des systèmes d’information, à savoir le passage d'une
architecture centralisée à travers de grosses machines (des Mainframe) vers une architecture distribuée basée sur
l'utilisation de serveurs et de postes clients grâce à l'utilisation des PC et des réseaux.

Cette évolution a été possible essentiellement grâce à 2 facteurs qui sont :

 La baisse des prix de l'informatique personnelle


 Le développement des réseaux.

1. Réseau informatique
1.1 Concepts réseau
Avant toute chose, il est indispensable de répondre à la question suivante : qu’est-ce qu’un réseau ? On pourrait
définir le mot « réseau » en une phrase : un réseau est un ensemble d’objets interconnectés les uns avec les
autres. Il permet de faire circuler des éléments entre chacun de ces objets selon des règles bien définies.

Réseau intranet

Un réseau intranet est un réseau informatique, mis en place au sein d'une entreprise ou de toute autre entité
équivalente. Il permet aux collaborateurs de cette entreprise d'échanger des informations et des documents dans
un environnement sécurisé, au sein d'un espace dont l'accès est restreint à un groupe défini (souvent, les
employés d'une même entreprise).

Réseau extranet

L’extranet est une extension du système d’information de l’entreprise. Il s’appuie sur un réseau de
télécommunication relié à internet permettant à toutes entreprises de partager des documents ou des informations
privées à leurs salariés, filiales, clients, fournisseurs ou prestataires. Cela permet, par exemple, aux salariés
travaillant de chez eux de se connecter à une interface web avec leur identifiant et mot de passe pour récupérer
ces informations.
Types des réseaux

On distingue différents types de réseaux (privés) selon leur taille (en termes de nombre de machines), leur
vitesse de transfert des données ainsi que leur étendue.

Les réseaux privés sont des réseaux appartenant à une même organisation. On fait généralement trois catégories
de réseaux :

• LAN (Local Area Network)


• MAN (Métropolitain Area Network)
• WAN (Wide Area Network)
• PAN (Personal Area Network)

LAN : Acronyme de Local Area Network, le terme LAN désigne un réseau informatique local. Il est constitué
d'un ensemble d'ordinateurs et de périphériques reliés entre eux par des liaisons physiques (des câbles
notamment). Ces ordinateurs et périphériques communiquent entre eux via des protocoles communs.
Le réseau local, ou LAN, se cantonne à un lieu physique et un environnement bien déterminé (une maison, un
immeuble, etc.). On le retrouve souvent dans des entreprises qui disposent d'un parc informatique important dans
une pièce (on parle alors aussi de Réseau Local d'Entreprise - RLE), mais aussi à la maison (deux ordinateurs +
une imprimante reliée entre eux par exemple) ou pour les jeux en réseau.

MAN : pour Metropolitan Area Network est un réseau dont l'étendue est de plusieurs dizaines de kilomètres,
donc on peut considérer que c'est un réseau à l'échelle d'une ville entière. L'objectif d'un réseau MAN est
d'interconnecter plusieurs réseaux LAN par l'intermédiaire de liaison à très haut débit grâce à la fibre optique et
ce que l'on appelle une dorsale haute capacité (backbone). En fait, ces différents réseaux locaux (LAN) dispersés
dans une ville sont physiquement reliés entre eux pour constituer le réseau MAN.
Nous pouvons prendre l'exemple d'une entreprise qui dispose de trois agences réparties dans la ville et
interconnectées afin de former un réseau MAN. Ce réseau MAN mène également à Internet. Dans ce cas, les
serveurs peuvent être regroupés sur une seule agence et être accessibles depuis l'ensemble des agences de
l'entreprise.
WAN : est l’abréviation de Wide Area Network. Ces réseaux s’étendent sur de vastes zones géographiques
et relient plusieurs réseaux plus petits comme des LAN (Local Area Networks) ou des MAN (Metropolitan
Area Networks). C’est la raison pour laquelle ils sont uniquement utilisés dans un contexte professionnel.
Les WAN publics sont exploités par les fournisseurs d’accès à Internet afin de permettre à leurs clients
d’accéder au Web. Les réseaux étendus privés sont principalement mis en place par des entreprises, par
exemple pour permettre des services Cloud et relier ensemble des réseaux de différents sites de l’entreprise.

2. L’architecture client – serveur


2.1 Définition

L’architecture client-serveur est un modèle de fonctionnement logiciel qui peut se réaliser sur tout type
d’architecture matérielle (petites ou grosses machines), à partir du moment où ces architectures peuvent être
interconnectées.
On parle de fonctionnement logiciel dans la mesure où cette architecture est basée sur l’utilisation de deux types
de logiciels, à savoir un logiciel serveur et un logiciel client s’exécutant normalement sur 2 machines
différentes. L’élément important dans cette architecture est l'utilisation de mécanismes de communication entre
les 2 applications.

Un système client/serveur fonctionne selon le schéma suivant :


Figure : Schéma de fonctionnement d’un système client/serveur

• Le client émet une requête vers le serveur grâce à son adresse et le port, qui désigne un service particulier du
serveur
• Le serveur reçoit la demande et répond à l’aide de l’adresse de la machine client et son port.

2.2 Les différents modèles de client-serveur

En fait, les différences sont essentiellement liées aux services qui sont assurés par le serveur.

On distingue couramment :

2.2.1 La couche de données.

La couche de données, également appelée couche de persistance, est responsable de la gestion des données. Elle
gère le stockage, la récupération, la mise à jour et la suppression des données.
Les données peuvent être stockées dans des bases de données, des fichiers, des systèmes de fichiers ou d'autres
formes de stockage.
Cette couche garantit que les données sont persistantes, c'est-à-dire qu'elles sont conservées même après que
l'application a été fermée.
La couche de données traite généralement des opérations de bas niveau sur les données, telles que l'insertion, la
mise à jour et la suppression de données.

2.2.2 Couche de présentation

La couche de présentation est la partie de l'application qui est visible et accessible par les utilisateurs. Elle est
chargée de l'interface utilisateur et de l'affichage des informations à l'utilisateur.
Cette couche peut prendre la forme d'une interface graphique, d'une interface en ligne de commande, d'un site
web ou d'une application mobile.
La couche de présentation interagit directement avec l'utilisateur, recueillant des entrées et affichant des sorties.
Elle peut inclure des éléments tels que des formulaires, des boutons, des menus et des fenêtres.
L'objectif principal de la couche de présentation est de rendre l'application conviviale et de permettre à
l'utilisateur d'interagir avec le logiciel de manière intuitive.

2.2.3 Couche de traitement

La couche de traitement, également appelée couche de logique métier, est le cœur fonctionnel de l'application.
Elle contient la logique qui traite les données, effectue des calculs, prend des décisions et coordonne le
fonctionnement de l'application.
Cette couche est responsable de la gestion des règles métier de l'application, ce qui signifie qu'elle détermine
comment les données doivent être traitées en fonction des besoins de l'application.
La couche de traitement peut effectuer des opérations telles que la validation des données, le calcul de résultats,
la génération de rapports et la coordination des interactions entre la couche de données et la couche de
présentation.
Elle assure que les données sont traitées de manière appropriée avant d'être affichées à l'utilisateur ou stockées
dans la couche de données.
L'organisation des couches de données, de présentation et de traitement dans une application suit souvent le
modèle d'architecture client-serveur ou le modèle d'architecture en couches, ce qui permet une séparation claire
des responsabilités et facilite la maintenance, l'évolutivité et la réutilisation du code. Chacune de ces couches
remplit un rôle essentiel dans le fonctionnement global de l'application.

Le découpage et la répartition des 3 niveaux d’abstraction permettent de distinguer les architectures suivantes :

 Architecture 1 – tier
 Architecture 2 – tiers
 Architecture 3 – tiers
 Architecture n- tiers

2.3.1 L’architecture 1 tier


Dans une approche d'application de type 1-tiers, les trois couches sont fortement et intimement liées, et
s'exécutent sur la même machine. Dans ce cas, on ne peut pas parler d'architecture client-serveur mais
d'informatique centralisée.

Avantages :
Simplicité : Facilité de développement, car l'ensemble de l'application réside sur une seule machine.

Performances : Performances élevées car aucune latence réseau n'est impliquée.

Autonomie : Aucune dépendance à un réseau ou à un serveur distant.


Inconvénients :
Manque de Scalabilité : Difficulté à gérer un grand nombre d'utilisateurs ou de données.

Maintenance Difficile : Mises à jour et maintenance compliquées, car tout est centralisé.

Difficulté de Partage : Les données et l'application ne sont pas partagées entre les utilisateurs.

2.3.2 L’architecture 2 tiers

L'architecture à deux niveaux (aussi appelée architecture 2-tier, tier signifiant rangée en anglais) caractérise les
systèmes clients/serveurs pour lesquels le client demande une ressource et le serveur la lui fournit directement,
en utilisant ses propres ressources. Cela signifie que le serveur ne fait pas appel à une autre application afin de
fournir une partie du service.

Niveau 1 : couche de présentation et couche de traitement

Niveau 2 : couche de données

Avantages :
Meilleure Gestion des Données : Les données peuvent être centralisées sur un serveur, ce qui simplifie leur
gestion.

Performances Acceptables : Performances satisfaisantes pour de petites applications.

Inconvénients :
Manque de Scalabilité : Charge importante sur le serveur, ce qui peut limiter le nombre d'utilisateurs.

Complexité des Mises à Jour : Les mises à jour de l'application nécessitent une intervention sur chaque client.

Dépendance du Réseau : Les clients sont dépendants du réseau pour communiquer avec le serveur.

2.3.3 L’architecture 3 tiers

Dans l'architecture à 3 niveaux (appelée architecture 3-tier), il existe un niveau intermédiaire, c'est-à-dire que
l'on a généralement une architecture partagée entre :

1. Un client, c'est-à-dire l'ordinateur demandeur de ressources, équipée d'une interface utilisateur


(généralement un navigateur web) chargée de la présentation ;
2. Le serveur d'application (appelé également middleware), chargé de fournir la ressource mais faisant
appel à un autre serveur
3. Le serveur de données, fournissant au serveur d'application les données dont il a besoin.
Comparaison des deux types d’architecture

L'architecture à deux niveaux est donc une architecture client/serveur dans laquelle le serveur est polyvalent,
c'est-à-dire qu'il est capable de fournir directement l'ensemble des ressources demandées par le client.

Dans l'architecture à trois niveaux par contre, les applications au niveau serveur sont délocalisées, c'est-à-dire
que chaque serveur est spécialisé dans une tâche (serveur web/serveur de base de données par exemple).
L'architecture à trois niveaux permet :

 Une plus grande flexibilité/souplesse ;


 Une sécurité accrue car la sécurité peut être définie indépendamment pour chaque service, et à chaque
niveau ;
 De meilleures performances, étant donné le partage des tâches entre les différents serveurs.

Avantages :

Meilleure Gestion des Données : Séparation claire entre les données, la logique métier et la présentation.

Scalabilité : Possibilité d'ajouter des serveurs d'application et de bases de données pour gérer la charge.

Maintenance Facilitée : Mises à jour et maintenance simplifiées, car chaque couche peut être gérée
indépendamment.

Inconvénients :

Complexité Accrue : Plus de couches signifient plus de complexité dans la conception et le développement.

Coûts de Développement Élevés : La mise en place de plusieurs couches peut entraîner des coûts de
développement plus élevés.

Latence Réseau : Une certaine latence réseau peut exister entre les couches, affectant les performances.

2.3.3 L’architecture n tiers (multiniveaux)


Dans l'architecture à 3 niveaux, chaque serveur (niveaux 2 et 3) effectue une tâche (un service) spécialisée. Un
serveur peut donc utiliser les services d'un ou plusieurs autres serveurs afin de fournir son propre service. Par
conséquent, l'architecture à trois niveaux est potentiellement une architecture à N niveaux...

Avantages :

Flexibilité Maximale : Permet d'ajouter des couches intermédiaires au besoin, offrant une flexibilité maximale.

Séparation Claire des Préoccupations : Chaque couche a un rôle spécifique et peut être développée
indépendamment.

Évolutivité : Peut gérer des applications complexes avec un grand nombre d'utilisateurs.

Inconvénients :

Complexité Élevée : Conception, développement et maintenance plus complexes.

Coûts de Développement Élevés : La flexibilité a un coût.

Latence Réseau :

La latence réseau entre les couches peut affecter les performances.

Avantages de l’architecture client-serveur


Particulièrement, le processus client - serveur est beaucoup plus recommandé et utilisé actuellement pour des
raisons de fiabilité, ... dont voici les principaux atouts :

1. Séparation des Responsabilités : L'architecture client-serveur permet de séparer clairement les


responsabilités entre les clients et les serveurs. Les serveurs gèrent le traitement central et les données,
tandis que les clients s'occupent de l'interface utilisateur.
2. Évolutivité : Il est généralement plus facile d'ajouter de nouveaux clients sans modifier le serveur, ce
qui rend le système évolutif. Cette évolutivité est particulièrement utile pour les applications à grande
échelle.
3. Facilité de Maintenance : Les mises à jour et les correctifs peuvent être appliqués plus facilement, car
les modifications se font généralement du côté du serveur, sans avoir besoin de toucher tous les clients.
4. Gestion Centralisée : La gestion des données et des ressources est centralisée sur les serveurs, ce qui
facilite la sauvegarde, la sécurité et la gestion des données.
5. Performance : L'architecture client-serveur peut offrir de bonnes performances, car les serveurs
puissants peuvent gérer des opérations complexes.

Inconvénients majeurs

Les inconvénients majeurs sont notamment :

1. Dépendance au Réseau : L'architecture client-serveur repose sur la communication via un réseau, ce


qui peut entraîner des problèmes de performance et de disponibilité en cas de problèmes de réseau.
2. Complexité : La gestion des serveurs, des clients et de la communication entre eux peut être complexe.
Les systèmes client-serveur peuvent être plus difficiles à concevoir et à maintenir.
3. Coût Initial : La mise en place de l'infrastructure serveur peut être coûteuse, en particulier pour les
entreprises qui démarrent ou qui ont des besoins limités.
4. Charge Serveur : La charge des serveurs peut devenir un problème lorsque de nombreux clients
demandent simultanément des services, ce qui peut nécessiter des serveurs puissants.
5. Sécurité : Les serveurs sont des cibles potentielles pour les attaques, et la sécurité des données doit être
gérée avec soin.

3. L’architecture pair à pair


Le pair-à-pair (P2P : peer-to-peer) est un réseau informatique dans lequel chaque client du réseau est
également serveur. L'information est répartie sur l'ensemble des machines qui composent le réseau P2P.

Voici un exemple de la différence entre l'architecture réseau Client-serveur et l'architecture Pair-à-Pair :

Avantage du Pair à pair :


1. Plus il y a d'utilisateur plus les performances du réseau grandissent.
2. Un coût réduit
3. Simplicité d'installation
4. Rapidité d'installation
5. Si une source est en pannes le réseau fonctionne toujours

Inconvénients du Pair à Pair :


1. Problème de sécurité
2. Maintenance plus difficile
3. Nécessite plusieurs machines pour que le réseau soit performant

Vous aimerez peut-être aussi