Académique Documents
Professionnel Documents
Culture Documents
SOMMAIRE
SOMMAIRE ..........................................................................................................................1
LISTE DES FIGURES ...........................................................................................................3
RESUME ...............................................................................................................................4
ABSTRACT ...........................................................................................................................5
INTRODUCTION GENERALE.............................................................................................6
I. ORIGINE ........................................................................................................................7
II. PROBLEMATIQUE .......................................................................................................7
III. ETAT DE L’ART ........................................................................................................8
1. Définitions ...................................................................................................................8
1.1. Client ....................................................................................................................8
1.2. Le serveur .............................................................................................................9
2. Architecture Client/serveur ........................................................................................ 10
2.1. Définitions ..........................................................................................................10
2.2. Les principes généraux de l’architecture client/serveur ........................................ 11
2.3. Les différents modèles de client serveur .............................................................. 11
2.4. Schéma du GARTNER Group ............................................................................ 13
2.5. Les différentes Architectures............................................................................... 15
3. Principes de Fonctionnement ..................................................................................... 19
3.1. Coté serveur ...........................................................................................................19
3.1.1. Gestion des processus ...................................................................................... 19
3.1.2. Gestion d’états................................................................................................. 20
3.2. Mode de communication client/serveur .................................................................. 21
3.2.1. Modes .............................................................................................................21
3.2.2. Notion de connexion ....................................................................................... 22
4. Le Middleware ...........................................................................................................26
4.1. Définitions ..........................................................................................................26
4.2. Fonctions du Middleware .................................................................................... 27
4.3. Les services du Middleware ................................................................................ 28
4.4. Exemples de Middleware .................................................................................... 28
IV. EXEMPLE DE CLIENT/SERVEUR ......................................................................... 29
CONCLUSION .................................................................................................................... 31
BIBLIOGRAPHIE ............................................................................................................... 32
1
ARCHITECTURE CLIENT/SERVEUR
WEBOGRAPHIE ................................................................................................................. 32
TABLES DES MATIERES .................................................................................................. 33
2
ARCHITECTURE CLIENT/SERVEUR
3
ARCHITECTURE CLIENT/SERVEUR
RESUME
4
ARCHITECTURE CLIENT/SERVEUR
ABSTRACT
5
ARCHITECTURE CLIENT/SERVEUR
INTRODUCTION GENERALE
6
ARCHITECTURE CLIENT/SERVEUR
I. ORIGINE
En 1987 le principe du client-serveur, dans lequel une application informatique est
scindée en 2 processus qui peuvent être exécutés par deux ordinateurs différents, intéresse les
fournisseurs de logiciels pour les bases de données. Ashton-
Tate, Microsoft et Sybase travaillent ensemble au développement d'un système de gestion de
base de données selon le principe du client-serveur, en même temps que IBM et Oracle
Corporation mettent sur le marché de tels produits.
Depuis 1990, les systèmes informatiques, en client-serveur, ont connu une croissance
explosive ; le client-serveur était une nouveauté à la mode et le mot était considéré comme
un buzzword. Contrairement aux systèmes informatiques précédents qui étaient alors équipés
d'un mainframe manipulé depuis des terminaux, un système informatique en client-serveur
demandait un matériel moins spécifique et moins coûteux. De plus les systèmes client-serveur
utilisaient des produits ouverts, basés sur des standards industriels évitant à l'acheteur de devoir
acquérir la totalité de son système informatique auprès du même fabricant. Ces avantages sont
à l'origine du downsizing : le remplacement progressif des mainframes coûteux et volumineux
par des serveurs plus petits, meilleur marché et qui travaillent de concert avec des micro-
ordinateurs.
II. PROBLEMATIQUE
Les Systèmes informatiques précédents étaient équipés de Mainframe (gros Unité
Central qu’on manipule via des terminaux aux faibles capacités). Ceux-ci étaient très couteux,
très volumineux et peu fiable. C’est au regard de cela que Ces vingt dernières années ont vues
une évolution majeure des systèmes d’informations, à savoir le passage d’une architecture
centralisée à travers de grosses machines (des mainframes) 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 architecture est mise en place pour répondre aux besoins des utilisateurs rapidement et
progressivement à travers la gestion de la cohérence des données, la baisse des prix de
l’informatique personnelle, le développement des réseaux et la centralisation des données.
7
ARCHITECTURE CLIENT/SERVEUR
Un client léger
Un client léger est une application où le traitement des requêtes du client est entièrement
effectué par le serveur, le client se contente de recevoir et mettre en forme pour afficher les
réponses calculées et envoyées par le serveur. Quelques avantages :
• Peu de puissance de calcul est nécessaire au niveau du client ;
• La mise à jour de l'application s'effectue uniquement sur le serveur, excepté
l'éventuelle mise à jour du client Web ;
• Un travail de développement concentré sur le serveur.
Un client lourd
Un client lourd est une application (applications de bureau, applications mobile) où les
traitements sont principalement effectués sur la machine locale dite cliente. Le serveur se
contentant principalement de répondre aux demandes de données du client. Quelques avantages
:
• Le client peut parfois fonctionner même en cas de déconnexion du serveur ;
• Une partie des traitements est réalisé par le client, ce qui soulage les ressources
du serveur ;
• Plus grande indépendance vis à vis des temps de réponse réseau et serveur.
Un client riche
8
ARCHITECTURE CLIENT/SERVEUR
Un client riche est une application où le traitement des requêtes du client (applications
Web utilisant beaucoup de JavaScript côté client) est effectué majoritairement par le serveur,
le client recevant les réponses « semi-finies » et les finalisant. C'est un client léger plus évolué
permettant de mettre en œuvre des fonctionnalités comparables à celles d'un client lourd. C'est
un compromis entre les clients légers et lourds.
1.2. Le serveur
Serveur : processus accomplissant une opération sur demande d’un client, et lui
transmettant le résultat.
Caractéristiques d'un programme serveur :
• Il attend une connexion entrante sur un ou plusieurs ports réseaux locaux ;
• A la connexion d'un client sur le port en écoute, il ouvre un socket local
au système d'exploitation ;
• A la suite de la connexion, le processus serveur communique avec le client
suivant le protocole prévu par la couche application du modèle OSI.
NB : un programme serveur tourne en permanence, attendant des requêtes ; il peut
répondre à plusieurs clients en même temps.
Comme type de serveur nous avons :
Serveur lourd
• On effectue plus de traitements sur le serveur : transactions, Groupware, etc ;
• Déploiement plus aisé
Serveurs multi-clients
Comme les serveurs Web/http qui sont capables de traiter plusieurs clients en même
temps. Il existe aussi des serveurs « non connectés », dans ce cas il n’y a pas de connexion ou
de déconnexion.
Exemple de serveur : il existe une grande variété de serveurs et de clients en fonction
des besoins ou services à fournir :
Un serveur Web publie des pages Web demandées par des navigateurs Web ;
Un serveur de messagerie électronique transmet les courriels à des clients de
messagerie ;
9
ARCHITECTURE CLIENT/SERVEUR
Un serveur de fichiers permet de partager des fichiers sur un réseau aux machines qui
le sollicitent ;
Un serveur de base de données permet aux clients de récupérer des données stockées
dans une base de données, etc.
2. Architecture Client/serveur
2.1. Définitions
Le modèle client-serveur est en fait un principe d’architecture informatique hiérarchisé
en réseaux, interne avec TCP/IP ou externe sur Internet. Un ordinateur, ou un groupe
d'ordinateurs, dénommé serveur, stocke la totalité des ressources partageables telles que
données et traitements. Il agit comme un fournisseur de services.
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.
Le dialogue entre les applications peut se résumer par :
- Un client demande un service au serveur
- Le serveur réalise ce service et renvoie le résultat au client
- Client et serveur sont généralement localisés sur deux machines distinctes
Un des principes fondamentaux est que le serveur réalise un traitement pour le client.
10
ARCHITECTURE CLIENT/SERVEUR
11
ARCHITECTURE CLIENT/SERVEUR
En fait, les différences sont essentiellement liées aux services qui sont assurés par le
serveur. On distingue :
a. Le client-serveur de présentation
Dans ce cas la présentation des pages affichées par le client est intégralement prise en
charge par le serveur. Cette organisation présente l’inconvénient de générer un fort trafic
réseau.
b. Le client-serveur de traitement
Dans ce cas, le serveur effectue des traitements à la demande du client. Il peut s'agir de
traitement particulier sur des données, de vérification de formulaires de saisie, de traitements
d'alarmes …
Ces traitements peuvent être réalisés par des programmes installé sur des serveurs mais
également intégrés dans des bases de données, dans ce cas, la partie donnée et traitement sont
intégrés.
12
ARCHITECTURE CLIENT/SERVEUR
c. Le client-serveur de données
Dans ce cas, le serveur assure des tâches de gestion, stockage et de traitement de
données. C’est le cas le plus connu de client-serveur est qui est utilisé par tous les
grands SGBD :
➢ La base de données avec tous ses outils (maintenance, sauvegarde …) est installée
sur un poste serveur ;
➢ Sur les clients, un logiciel d'accès est installé permettant d'accéder à la base de
données du serveur ;
➢ Tous les traitements sur les données sont effectués sur le serveur qui renvoie les
informations demandées (souvent à travers une requête SQL) par le client.
Sur ce schéma, le trait horizontal représente le réseau et les flèches entre client et
serveur, le trafic réseau généré par la conversation entre client et serveur.
13
ARCHITECTURE CLIENT/SERVEUR
14
ARCHITECTURE CLIENT/SERVEUR
- Problème de sécurité
- Maintenance plus difficile
- Nécessite plusieurs machines pour que le réseau soit performant
15
ARCHITECTURE CLIENT/SERVEUR
16
ARCHITECTURE CLIENT/SERVEUR
17
ARCHITECTURE CLIENT/SERVEUR
b. Architecture n-tiers
L’architecture n-tiers a été pensée pour pallier aux limitations de architectures trois tiers
et concevoir des applications puissantes et simples à maintenir. Ce type d’architecture permet
de distribuer plus librement la logique applicative, ce qui facilite la répartition de la charge entre
tous les niveaux. Cette évolution des architectures3-tiers met en œuvre une approche objet pour
offrir une plus grande souplesse d’implémentations et faciliter la réutilisation des
développements. Théoriquement, ce type d’architecture supprime tous les inconvénients des
architectures précédentes :
18
ARCHITECTURE CLIENT/SERVEUR
3. Principes de Fonctionnement
3.1. Coté serveur
3.1.1. Gestion des processus
Le client et le serveur exécutent des processus distincts :
• Itératif : le processus serveur traite les requêtes les unes après les autres ; adapté
aux requêtes qui peuvent s'exécuter rapidement ; souvent utilisé en mode non
connecté (recherche de la performance)
19
ARCHITECTURE CLIENT/SERVEUR
• Concurrent : le serveur accepte les requêtes puis les "délègue" à un processus fils
(traitement de plusieurs clients) ; adapté aux requêtes qui demandent un certain
traitement (le coût du traitement est suffisamment important pour que la création
du processus fils ne soit pas pénalisante) ; souvent utilisé en mode connecté. Il est
basé sur :
20
ARCHITECTURE CLIENT/SERVEUR
21
ARCHITECTURE CLIENT/SERVEUR
Bas niveau : Utilisation directe du transport : sockets (construits sur TCP ou UDP)
Il y’a Nécessité d’établir un protocole entre le client et le serveur pour qu’ils se comprennent.
Pour cela nous aurons besoin des Sockets.
Un socket est une norme de communication sur réseau, mis au point à Berkeley, qui
permet à une application de dialoguer avec un Protocol. Un socket peut aussi considérer comme
un API (application program interface) qui est une interface de programmation entre
l’application réseau et la couche transport. Un socket peut donc être défini comme un
mécanisme d’interface de programmation de bas niveau qui permet aux programmes
d’échanger les données.
22
ARCHITECTURE CLIENT/SERVEUR
Un socket est identifié par une adresse de transport qui permet d'identifier les processus
de l'application concernée. L’adresse de transport est définie par :
Principes de fonctionnement :
a. Le mode connecté
Caractéristiques :
- Etablissement au préalable d’une connexion : le client demande au serveur s’il accepte
la connexion
23
ARCHITECTURE CLIENT/SERVEUR
24
ARCHITECTURE CLIENT/SERVEUR
25
ARCHITECTURE CLIENT/SERVEUR
4.Le datagramme envoyé par le client contient l'adresse de la socket émettrice (port, @IP)
5.Le serveur traite la requête et répond au client en utilisant l'adresse du socket émettrice de la
requête.
Client Serveur
4. Le Middleware
4.1. Définitions
On appelle middleware, littéralement « élément du milieu », l'ensemble des couches
réseau et services logiciel qui permettent le dialogue entre les différents composants d'une
application répartie. Ce dialogue se base sur un protocole applicatif commun, défini par l’API
du middleware.
26
ARCHITECTURE CLIENT/SERVEUR
Figure 14 : Middleware
Pourquoi le Middleware :
Pour Assurer l’échanges données entre Client et Serveur en masquant les différents
problèmes potentiels liés à :
- Répartition des données et traitements (accès distant, baisse performances) ;
- Hétérogénéité des matériels et des logiciels en opération
Pour augmenter les performances sur chaque machine en parallèles ;
Pour éviter au client d’avoir du code non réseau dans son appel.
27
ARCHITECTURE CLIENT/SERVEUR
• Adressage : Permet d'identifier la machine serveur sur laquelle est localisé le service
demandé afin d'en déduire le chemin d'accès. Dans la mesure du possible, cette fonction
doit faire appel aux services d'un annuaire.
• Communication : Permet la transmission des messages entre les deux systèmes sans
altération. Ce service doit gérer la connexion au serveur, la préparation de l'exécution
des requêtes, la récupération des résultats et la déconnexion de l'utilisateur.
28
ARCHITECTURE CLIENT/SERVEUR
standardisé, d'une API s'interfaçant avec l'application cliente (sous Ms Windows) et d'un
driver correspondant au SGBD utilisé.
Pour certaines applications devant accéder à des services hétérogènes, il est parfois
nécessaire de combiner plusieurs middlewares. Dans ce cas, le poste client doit connaître et
mettre en œuvre plusieurs IPC (Inter Process Communication), on en vient à la notion de client
lourd.
29
ARCHITECTURE CLIENT/SERVEUR
· Une connexion de contrôle est utilisée pour acheminer les commandes (ou requêtes)
du client vers le serveur et les réponses (ou résultats) du serveur vers le client.
· Une connexion de transfert de données qui est créée à chaque fois qu’un fichier est
transféré entre le client et le serveur.
30
ARCHITECTURE CLIENT/SERVEUR
CONCLUSION
31
ARCHITECTURE CLIENT/SERVEUR
BIBLIOGRAPHIE
1. Lionel Seinturier, Université Pierre & Marie Curie, Client/serveur Middleware, 2002
2. Sacha Krakowiak, Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR),
Programmation client-serveur sockets – RPC, 2004
3. Olivier GLÜCK Université LYON 1/Département Informatique, Architecture et
communications Client/Serveur, 2018
4. Anas ABOU EL KALAM, Technologie des applications client-serveur, Septembre 2005
5. Stéphane Bortzmeyer AFNIC, Centralisé, décentralisé, pair à pair, quels mots pour
l’architecture des systèmes répartis ? Montpellier, JRES 2015
6. Daniel MARTIN. Architecture des applications réparties, Octobre 1999.
WEBOGRAPHIE
https://whatis.techtarget.com/fr/definition/Remote-procedure-call-RPC
https://fr.wikipedia.org/wiki/Appel_syst%C
https://fr.wikipedia.org/wiki/File_Transfer_Protocol
https://www.cairn.info/revue-pensee-plurielle-2014-2-page-37
http://projet.eu.org/pedago/sin/ISN/8-client_serveur.pdf
32
ARCHITECTURE CLIENT/SERVEUR
33
ARCHITECTURE CLIENT/SERVEUR
34