Vous êtes sur la page 1sur 12

CHAPITRE I : PRINCIPE DE BASE DE L’ARCHITECUTURE CLIENT SERVEUR

I/ Origines et historique
Dans un monde où la course à la productivité conduit les technologies à évoluer de plus en
plus vite, le client-serveur s'est taillé une part de choix depuis le début des années 1990. En
effet, il faut pouvoir disposer de systèmes d'information évolutifs permettant une coopération
fructueuse entre les différentes entités de l'entreprise. Les systèmes des années 70 et 80 ne
répondaient pas à ces exigences.

1.1) Avant 1980


Les architectures étaient centralisées autour de calculateurs centraux (mainframe) de type IBM
ou BULL par exemple. Les terminaux étaient passifs à interfaces caractères ou pages. Les
applications étaient développées souvent en Cobol autour de fichiers ou de grandes bases de
données réseaux ou hiérarchiques. La productivité des développeurs restait faible. La
maintenance des applications était des plus difficiles. Les utilisateurs restaient prisonniers de
systèmes propriétaires. Aujourd'hui, les applications héritées (Iegacy applications en anglais)
développées avec ces vieilles technologies sont encore souvent opérationnelles. Il est difficile
de les migrer vers des technologies plus modernes. Beaucoup d'entreprises ou
d'administrations pensent cependant au downsizing, c'est-à-dire à remplacer leur calculateur
central par un ou plusieurs serveurs départementaux interconnectés à des stations de travail
graphiques, type PC par exemple. La figure ci-dessous illustre les architectures centralisées
aujourd'hui candidates au downsizing.

Exemple d'architecture centralisée.

1.2) Les années 80


Les années 80 ont connu le développement du transactionnel et des bases de données. Les
systèmes ont commencé à migrer depuis des systèmes propriétaires vers des systèmes plus
p. 1
ouverts type Unix. Les bases de données relationnelles ont vu le jour accompagnées de
langages de développement construits autour des données. SQL s'est imposé comme la norme
d'accès aux données. Les réseaux, notamment les réseaux locaux se sont développés. D'un
autre côté, les micro-ordinateurs se sont imposés dans l'entreprise et ont apporté des interfaces
graphiques conviviales. Le maintien des mainframes, le développement des systèmes
départementaux, la profusion d'ordinateurs personnels ont rendu les communications
difficiles.

1.3) Les années 90


Les réseaux occupent désormais une place centrale dans l'entreprise. Les vitesses de calcul des
micros deviennent impressionnantes. Le graphique est partout au niveau des interfaces. Le
besoin de partage des données est essentiel aussi bien pour l'accès transactionnel caractérisé
par des mises à jour rapides en temps réel que pour l'accès décisionnel marqué par le besoin de
requêtes complexes sur de gros volumes de données. La concurrence entre les entreprises est
exacerbée; la flexibilité et la productivité de l'informatique font souvent la différence.
Toutes ces raisons expliquent le développement autour des réseaux d'entreprises de serveurs
départementaux ouverts offrant des interfaces standards pour permettre la connectivité des
outils micros. C'est aussi pour faciliter le partage et l'accès simplifié aux données que triomphe
les bases de données relationnelles avec la possibilité de gérer des types de données. Pour
améliorer la vitesse de développement et surtout la maintenabilité des applications, on voit
s'imposer des méthodes de conception et de développement orientées objets. Ainsi,
l'architecture type d'un système moderne a évolué vers celle représentée à la figure suivante. Il
s'agit là d'une architecture client-serveur (en abrégé, C/S).

Exemple d'architecture moderne des années 90.

p. 2
II/ Les architectures poste à poste et client serveur
1- L’architecture poste à poste
Dans une architecture d'égal à égal (où dans sa dénomination anglaise peer to peer),
contrairement à une architecture de réseau de type client/serveur, il n'y a pas de serveur dédié.
Ainsi chaque ordinateur dans un tel réseau est un peu serveur et un peu client. Cela signifie
que chacun des ordinateurs du réseau est libre de partager ses ressources. Un ordinateur relié à
une imprimante pourra donc éventuellement la partager afin que tous les autres ordinateurs
puissent y accéder via le réseau.

1.1- Inconvénients du modèle poste à poste


Les réseaux d'égal à égal ont énormément d'inconvénients:
 ce système n'est pas du tout centralisé, ce qui le rend très difficile à administrer
 la sécurité est très peu présente
 aucun maillon du système n'est fiable
Ainsi, les réseaux d'égal à égal ne sont valables que pour un petit nombre d'ordinateurs
(généralement une dizaine), et pour des applications ne nécessitant pas une grande sécurité (il
est donc déconseillé pour un réseau professionnel avec des données sensibles).

1.2- Inconvénients du modèle poste à poste


L'architecture d'égal à égal a tout de même quelques avantages parmi lesquels:
 une simplicité à toute épreuve!
 un coût réduit (les coûts engendrés par un tel réseau sont le matériel, les câbles et la
maintenance)

2- L'architecture d'un système client/serveur


L'environnement client/serveur désigne un mode de communication à travers un réseau
entre plusieurs programmes ou logiciels : l'un, qualifié de client, envoie des requêtes ; l'autre
ou les autres, qualifiés de serveurs, attendent les requêtes des clients et y répondent. Par
extension, le client désigne également l'ordinateur sur lequel est exécuté le logiciel client, et le
serveur, l'ordinateur sur lequel est exécuté le logiciel serveur.
En général, les serveurs sont des ordinateurs dédiés au logiciel serveur qu'ils abritent, et dotés
de capacités supérieures à celles des ordinateurs personnels en termes de puissance de calcul,
d'entrées-sorties et de connexions réseau. Les clients sont souvent des ordinateurs personnels
p. 3
ou des appareils individuels (téléphone, tablette), mais pas systématiquement. Un serveur peut
répondre aux requêtes d'un grand nombre de clients.
Il existe une grande variété de logiciels serveurs et de logiciels clients en fonction des besoins
à servir : un serveur web publie des pages web demandées par des navigateurs web ; un
serveur de messagerie électronique envoie des mails à des clients de messagerie ; un serveur
de fichiers permet de stocker et consulter des fichiers sur le réseau, un serveur de données à
communiquer des données stockées dans une base de données, etc.

Caractéristiques d'un processus serveur :


 il attend une connexion entrante sur un ou plusieurs ports réseaux ;
 à la connexion d'un client sur le port en écoute, il ouvre un socket local au système
d'exploitation;
 suite à la connexion, le processus serveur communique avec le client suivant le
protocole prévu par la couche application du modèle OSI.
Caractéristiques d'un processus client :
 il établit la connexion au serveur à destination d'un ou plusieurs ports réseaux ;
 lorsque la connexion est acceptée par le serveur, il communique comme le prévoit la
couche application du modèle OSI.
Le client et le serveur doivent bien sûr utiliser le même protocole de communication au niveau
de la couche transport du modèle OSI. Un serveur est généralement capable de servir plusieurs
clients simultanément. On parle souvent d'un service pour désigner la fonctionnalité offerte
par un processus serveur.
De nombreuses applications fonctionnent selon un environnement client/serveur, cela signifie
que des machines clientes (des machines faisant partie du réseau) contactent un serveur, une
machine généralement très puissante en terme de capacités d'entrée-sortie, qui leur fournit des
services. Ces services sont des programmes fournissant des données telles que l'heure, des
fichiers, une connexion, etc.
Les services sont exploités par des programmes, appelés programmes clients, s'exécutant sur
les machines clientes. On parle ainsi de client (client FTP, client de messagerie, etc.) lorsque
l'on désigne un programme tournant sur une machine cliente, capable de traiter des
informations qu'il récupère auprès d'un serveur (dans le cas du client FTP il s'agit de fichiers,
tandis que pour le client de messagerie il s'agit de courrier électronique).

p. 4
2-1- Avantages de l'architecture client/serveur
Le modèle client/serveur est particulièrement recommandé pour des réseaux nécessitant un
grand niveau de fiabilité, ses principaux atouts sont :
 des ressources centralisées : étant donné que le serveur est au centre du réseau, il peut
gérer des ressources communes à tous les utilisateurs, comme par exemple une base de
données centralisée, afin d'éviter les problèmes de redondance et de contradiction
 une meilleure sécurité : car le nombre de points d'entrée permettant l'accès aux
données est moins important
 une administration au niveau serveur : les clients ayant peu d'importance dans ce
modèle, ils ont moins besoin d'être administrés
 un réseau évolutif : grâce à cette architecture il est possible de supprimer ou rajouter
des clients sans perturber le fonctionnement du réseau et sans modification majeure

2-2- Inconvénients du modèle client/serveur


L'architecture client/serveur a tout de même quelques lacunes parmi lesquelles :
 un coût élevé dû à la technicité du serveur
 un maillon faible : le serveur est le seul maillon faible du réseau client/serveur, étant
donné que tout le réseau est architecturé autour de lui ! Heureusement, le serveur a une
grande tolérance aux pannes (notamment grâce au système RAID)

2-3/ Caractéristiques de l’approche C/S


C'est de faire un modèle d'architecture à la mode et assez large pour recouvrir des réalités
distinctes avec les caractéristiques suivantes :
- Une répartition hiérarchique des fonctions
L'architecture client-serveur s'articule en général autour d'un réseau. Deux types d'ordinateurs
sont interconnectés au réseau. Le serveur assure la gestion des données partagées entre les
utilisateurs.
Le client gère l'interface graphique de la station de travail personnelle d'un utilisateur. Les
deux communiquent par des protocoles plus ou moins standardisés.

- Une grande diversité d'outils


Le type de client-serveur que nous étudions est celui aujourd'hui mis en œuvre pour réaliser
les systèmes d'information des entreprises. Il comporte généralement les composants suivants
p. 5
 Un système ouvert plus ou moins basé sur des standards publiés ou de fait pour
réaliser les fonctions de base du serveur.
 Un SGBD s'exécutant sur le serveur, généralement basé sur le modèle relationnel et
le langage SQL.
 Des stations de travail personnelles avec interface graphique connectées au
réseau, par exemple des PC.
 Des outils de développement d'applications variés de plus en plus fréquemment
construits autour d'une approche objet.
 Des logiciels de transport de requêtes et réponses associés au SGBD ou
indépendants.
 Des outils de conception, de déploiement et de maintenance pour permettre le
suivi du cycle de vie des applications.
- Une approche ouverte
Les systèmes client-serveur appliquent une stratégie du type systèmes ouverts. Ces systèmes
s'appuient sur des standards à plusieurs niveaux. Plus particulièrement, les standards
importants en matière de client-serveur sont ceux élaborés par IS0, ANSI, IEEE...
L'intérêt des utilisateurs pour les systèmes ouverts basés sur les standards est évident. Ceci
devrait en théorie permettre d'une part la portabilité des applications, d'autre part la possibilité
de remplacer un composant d'un constructeur par celui d'un autre conforme aux standards.

IV/ Pourquoi le C/S


Outre l'avantage de pouvoir fédérer une panoplie de vendeurs d'outils, le client-serveur répond
aux vrais besoins actuels des entreprises.
1) Les contraintes de l'entreprise
Les entreprises sont soumises à des contraintes de plus en plus fortes, aussi bien du monde
extérieur que de l'intérieur de l'entreprise. Les contraintes externes sont imposées par les
clients de plus en plus exigeants, la régulation de plus en plus complexe, la compétition de
plus en plus dure qui conduit à réduire le temps de passage d'un produit de la conception à la
vente. Plus précisément, il s'agit donc de :
 mieux satisfaire les clients, par exemple en leur présentant des informations
consolidées et claires ;
 respecter les régulations en vigueur, malgré leur évolutivité, par exemple en étant
capable de générer rapidement de nouvelles déclarations ;
p. 6
 produire mieux et plus vite les nouveaux produits, de sorte à participer à la
compétition active vers la nouveauté.
Les contraintes internes se traduisent par des pressions sur les budgets, la difficulté à
absorber les technologies nouvelles, et un manque général de temps et de moyens. Les budgets
sont de plus en plus serrés, car la compression des dépenses est nécessaire à l'équilibre de
l'entreprise. De ce fait, les ressources sont limitées, et les expérimentations avec des
technologies nouvelles, souvent coûteuses du fait du poids de plus en plus grand de
l'historique, ne peuvent être menées à bien. Les ingénieurs et techniciens au fait des
technologies nouvelles manquent cruellement de temps, et la conversion des autres est
difficile. Ainsi, on observe dans la plupart des entreprises les problèmes suivants :
 budgets et ressources limités réduisant les capacités d'innovation et de reprise de
l'existant ;
 capacités à absorber de nouvelles technologies limitées par les moyens humains
et matériels, et par le poids de l'existant ;
 manque de temps des personnels les plus qualifiés.

2) Mieux maîtriser le système d'information


Une approche de solution aux problèmes mentionnés passe par une meilleure organisation du
système d'information qui doit devenir plus intégré, mais aussi plus évolutif. Ceci nécessite
tout d'abord l'adoption de systèmes ouverts, obéissant à des standards permettant le choix d'un
grand nombre de produits sur le marché. La réutilisation d'applications existantes ou
développées dans l'entreprise, avec possibilité d'adaptation ou de spécialisation, est aussi un
élément déterminant pour le choix d'une architecture client-serveur et des outils de
développement.

3) Prendre en compte l'évolution technologique


Au-delà de la maîtrise du système d'information qui passe par un serveur relationnel
éventuellement étendu à l'objet, le client-serveur apporte une modularité des composants
matériels et logiciels. Ceci permet d'intégrer plus facilement les évolutions technologiques.

4) Réduire les coûts ?


Le client-serveur permet une meilleure réactivité de l'entreprise. Il améliore l'ouverture du
système d'information et la productivité des développeurs. Il permet un déploiement plus
p. 7
rapide sur des architectures réparties hétérogènes. Oui, mais à quel prix ? Les coûts du client-
serveur sont discutés. Par rapport à une architecture centralisée autour de terminaux passifs,
des surcoûts sont à prévoir :
 poste de travail local type PC ;
 réseau local ;
 formation des développeurs ;
 techniciens de maintenance réseaux et PC.

V/ Les générations de client serveur


On distingue deux générations de systèmes client/serveur :
La première génération née à la fin des années 80 est basée sur des outils clients autour des
SGBD relationnels. Le développement s'effectue sur le serveur pour la base de données et sur
le client pour l'application. La base de données est relationnelle et développée avec SQL. En
résumé, l'architecture client-serveur de première génération est schématisée ci-après.

Architecture client serveur de première génération.

Le client-serveur de deuxième génération se caractérise par une évolution des outils dans
trois directions.
- Possibilité de développer des traitements applicatifs au sein du serveur de données
sous forme de procédures déclenchées par l'application ou lors d'événements survenant

p. 8
dans la base.
- Utilisation intensive de l'approche orientée objet non seulement pour construire les
interfaces graphiques, mais aussi pour modéliser les entités de l'entreprise et leurs
relations.
- Facilités de déploiement des applicatifs : le client-serveur de deuxième génération
illustré ci-après, qui pourrait dans un futur proche, s'appuyer sur des outils d'échange de
requêtes entre objets (Object Request Broker), paraît prometteur. Il lui reste cependant
à faire ses preuves.

Architecture client-serveur de deuxième génération.

VI/ L’environnement client-serveur


1/ Les différents niveaux de Client-Serveur
Plusieurs environnements sont organisés qui diffèrent par les caractéristiques du réseau ou du
client qu'ils contiennent :
- Architecture à 2 niveaux
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.

p. 9
- Architecture à 3 niveaux
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.

Etant donné l'emploi massif du terme d'architecture à 3 niveaux, celui-ci peut parfois désigner
aussi les architectures suivantes :
 - Partage d'application entre client, serveur intermédiaire, et serveur d'entreprise ;
 - Partage d'application entre client, serveur d'application, et serveur de base de données
d'entreprise.

Comparaison de ces deux types d'architectures

p. 10
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.
- Architecture à N niveaux
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...

On voit que l'architecture 3 niveaux permet de spécialiser les serveurs dans une tache précise :
Avantage de flexibilité, de sécurité et de performance.
Potentiellement, l'architecture peut être étendue sur un nombre de niveaux plus important : On
parle dans ce cas d'architecture à N niveaux (ou multi-tier)
p. 11
2- Les types de Clients
Client "léger" : Le poste client accède à une application située sur un ordinateur dit "serveur"
via une interface et un navigateur Web. L'application fonctionne entièrement sur le serveur, le
poste client reçoit la réponse "toute faite" à sa demande qu'il a formulée. (appelée : "requête").
Client "lourd" : Le poste client doit comporter un système d'exploitation capable d'exécuter
en local une partie des traitements. Car le traitement de la réponse à la requête du client
utilisateur va mettre en œuvre un travail combiné entre l'ordinateur serveur et le poste client.
Client "riche" : Une interface graphique plus évolué permet de mettre en œuvre des
fonctionnalités comparables à celles d'un client "lourd". Les traitements sont effectués
majoritairement sur le serveur, la réponse "semi-finie" étant envoyée au poste client, où le
client "riche" est capable de la finaliser et de la présenter.

p. 12

Vous aimerez peut-être aussi