Vous êtes sur la page 1sur 8

Filière : Systèmes d’informations Niveau : Master 1

Bachtarzi C. Cours : Bases de données avancées

Chapitre I technologie des serveurs web et


Architecture client/ serveur
Historique :
• Architecture centralisée ou architecture dite « Mainframe »
Dans ce type d'architectures, les composants matériels (tels que les unités de stockage, le(s)
processeur(s) (CPU), les lecteurs de bande, etc.) étaient centralisés et les utilisateurs équipés
de « simples » terminaux.

Caractéristiques :
– Systèmes propriétaires, un seul OS;
– Traitements au niveau du Serveur Central;
– Gros systèmes mêlant interfaces, règles métiers (logique applicative) et données;
– Terminaux passifs;

Avantages :
– Facilité d'administration;
– Performance : la centralisation de la puissance sur une seule et même machine permet une
utilisation optimale des ressources.
– Sécurité et fiabilité;

Inconvénients
– Interface utilisateur en mode caractère peu convivial;
– Systèmes non ouverts vers d'autres, dépendance d'un fabricant particulier.
– Coût très élevé pour la maintenance logicielle.

• Systèmes répartis - Architecture répartie


L'avènement de la micro-informatique a révolutionné le domaine de l’informatique et les
réseaux d'ordinateurs sont partout: Internet, réseaux de téléphones mobiles, réseaux locaux,
etc. C’est la naissance des systèmes répartis.
Définition : Un système réparti (SR) « Distributed System » se compose d'un ensemble
d'ordinateurs reliés par un réseau informatique et équipés d'un logiciel.

Caractéristiques:
1. Partage de ressources
2. Communication
3. Ouverture « open system »
4. Concurrence- Transparence
5. Tolérance aux pannes « fault-tolerant »
6. Fiabilité – disponibilité
7. Performance

Une conclusion s'impose :


Ce qu'aimeraient les utilisateurs c'est de bénéficier simultanément des avantages des systèmes
centralisés et des systèmes distribués.

1
Filière : Systèmes d’informations Niveau : Master 1
Bachtarzi C. Cours : Bases de données avancées

Architecture Centralisée Systèmes Répartis


Avantages : Avantages :
Facilité d'administration Hétérogénéité
Performance Ouverture
Sécurité et fiabilité Grande disponibilité

• Le modèle Client / Serveur


L’idée : l'application est répartie sur différents sites pour optimiser le traitement, le stockage...
* Le client
– effectue une demande de service auprès du serveur (requête)
– initie le contact (parle en premier), ouvre la session
* Le serveur
– est la partie de l'application qui offre un service
– est à l'écoute des requêtes clientes
– répond au service demandé par le client (réponse)

1°) Qu'est-ce qu'un serveur ?

On appelle logiciel serveur un programme qui offre un service sur le réseau. Le serveur
accepte des requêtes, les traite et renvoie le résultat au demandeur. Le terme serveur
s'applique à la machine sur laquelle s'exécute le logiciel serveur.

Pour pouvoir offrir ces services en permanence, le serveur doit être sur un site avec accès
permanent et s'exécuter en permanence (daemon).

2°) Qu'est-ce qu'un client ?

On appelle logiciel client un programme qui utilise le service offert par un serveur. Le client
envoie une requête et reçoit la réponse. Le client peut-être raccordé par une liaison
temporaire.

3°) Qu'appelle-t-on architecture client/serveur ?

C'est la description du fonctionnement coopératif entre le serveur et le client. Les services


Internet sont conçus selon cette architecture. Ainsi, chaque application est composée de
logiciel serveur et logiciel client. A un logiciel serveur, peut correspondre plusieurs logiciels
clients développés dans différents environnements: Unix, Mac, PC...; la seule obligation est le
respect du protocole entre les deux processus communicants.

Caractéristiques :
- Le client et le serveur ne sont pas identiques, ils forment un système coopératif
- les parties client et serveur de l'application peuvent s'exécuter sur des systèmes différents
- une même machine peut implanter les côtés client et serveur de l'application
- un serveur peut répondre à plusieurs clients simultanément

2
Filière : Systèmes d’informations Niveau : Master 1
Bachtarzi C. Cours : Bases de données avancées

Requête

Application Réseau Application


Client Serveur

Réponse
Site client Site serveur

Les appels au service de transport mis en jeu sont au nombre de quatre:


SendRequest() : permet au client d'émettre le message décrivant la requête à une adresse
correspondant à la porte d'écoute du serveur
ReceiveRequest() : permet au serveur de recevoir la requête sur sa porte d'écoute
SendReply() : permet au serveur d'envoyer la réponse sur la porte d'écoute du client.
ReceiveReply() : permet au client de recevoir la réponse en provenance du serveur ;

Exemples de serveurs :
– Serveurs de fichiers
– Serveur de bases de données
– Serveur de groupware
– Serveur d'informations

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, par exemple une base de
données.
• 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

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.

Présentation de l'architecture à 2 niveaux :


L'architecture à deux niveaux (aussi appelée architecture 2-tiers, tier signifiant couche 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.

3
Filière : Systèmes d’informations Niveau : Master 1
Bachtarzi C. Cours : Bases de données avancées

NIVEAU 1 NIVEAU 2
Requête Envoi des
http requêtes
ou
SQL Envoi des
réponses

Client Serveur

Présentation de l'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 :
o Un client, c'est-à-dire l'ordinateur demandeur de ressources, équipé d'une interface
utilisateur (généralement un navigateur web) chargée de la présentation ;
o Le serveur d'application (appelé également middleware), chargé de fournir la
ressource mais faisant appel à un autre serveur
o Le serveur de données, fournissant au serveur d'application les données dont il a
besoin.

Niveau 1 Niveau 2 Niveau 3

requête SQL
Envoi des
requêtes

Envoi des
réponses

Client serveur serveur de


D’applications bases de données

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.

Comparaison entre les 2 architectures :


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).

4
Filière : Systèmes d’informations Niveau : Master 1
Bachtarzi C. Cours : Bases de données avancées

L'architecture à trois niveaux permet :


- Une plus grande flexibilité/souplesse ;
- Une sécurité accrue car elle 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.

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...
NIVEAU 3 NIVEAU 4

NIVEAU 1 NIVEAU 2

Serveur Serveur

Client Serveur

Serveur

Présentation de l'architecture d'égal à égal :


Dans une architecture d'égal à égal (en anglais 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.

5
Filière : Systèmes d’informations Niveau : Master 1
Bachtarzi C. Cours : Bases de données avancées

Applications client/serveur :
Est conforme au modèle client/serveur une application qui fait appel à des services distants au
travers d’un échange de messages (les requêtes) plutôt que par un échange de fichiers.

Les applications client/serveur peuvent se différencier par la façon dont les fonctions réparties
se partagent entre le client et le serveur.

Le modèle orienté serveur place plus de fonctionnalités sur le serveur (serveurs de


transactions, serveurs web). Le modèle orienté client fait l'inverse (serveurs d'informations).

Client lourd (modèle orienté client)


– stocke les données et les applications localement. Le serveur stocke les fichiers mis à jour.
– le client effectue une bonne partie du traitement (Le gros de l'application tourne du côté
client).
– le serveur (et le réseau) est plus allégé.

Serveur lourd (modèle orienté serveur)


– on effectue plus de traitements sur le serveur : transactions, ...
– Déploiement plus aisé : les applications orientées serveur sont plus faciles à gérer et à
installer sur le réseau du fait que la majorité du code tourne sur les serveurs.

Client léger :
– client à fonctionnalité minimale (terminaux X, ordinateur réseau (network computer)).
– Beaucoup de charge sur le serveur et le réseau.

Client riche : est un compromis entre le client léger et le client lourd. Les clients riches
permettent de gérer l'essentiel des traitements du côté du serveur. Les données sont elles
gérées par le client.

Dans une application client-serveur, il faut décider de l'emplacement des composantes de :


– Présentation : interfaces textuelles ou graphiques, interactions, entrée des données,
validation, etc.
– Logique applicative (logique d'application ou traitements) : traitements associés à
l'application.
– Les données : stockage et accès aux données.

Le Middleware :
Définition : Ensemble de services logiciels construits au dessus d'un protocole de transport
afin de permettre l'échange de requêtes et des réponses entre client et serveur de manière
transparente.
- Le middleware est une couche logicielle située entre les couches
basses.(Application O/S et les services réseau).
- Prend en compte les requêtes de l’application cliente.
- Les transmet au serveur de manière transparente,
- Prend en compte les résultats du serveur vers le client.

Application Serveur
Middleware
Réseau

6
Filière : Systèmes d’informations Niveau : Master 1
Bachtarzi C. Cours : Bases de données avancées

Composants : La couche API et la couche FAP (Format and Protocol)

Objectifs :
– Fournir une interface ou API de haut niveau aux applications
– Masquer l'hétérogénéité des systèmes matériels et logiciels
– Rendre la répartition aussi invisible (transparente) que possible
– Faciliter la programmation répartie

Types de middleware :
– Général
– Protocoles de communication, répertoires répartis, services d'authentification, RPC
– Spécifique
– de bases de données : Oracle Net, JDBC
– d'objets : CORBA, COM/DCOM, Java RMI

Bases de données en client-serveur :


Dans une architecture client-serveur, un applicatif est constitué de trois parties : l'interface
utilisateur, la logique des traitements et la gestion des données.

• Le serveur de bases de données prend en charge les tâches :

- la gestion d'une mémoire cache


- l'exécution de requêtes exprimées en SQL
- la gestion des transactions
- la sécurité des données.

• Le client :

- doit ouvrir une connexion pour pouvoir profiter des services du serveur.
- Il peut ouvrir plusieurs connections simultanées sur plusieurs serveurs.
- Exécute l’interface utilisateur et la logique des traitements

• Communication entre le client et le serveur. Puisque l'application doit pouvoir se


connecter à divers serveurs de façon transparente, le langage de communication SQL
doit être compatible avec la syntaxe SQL de chaque serveur. Or, malgré les normes,
les dialectes SQL sont nombreux et parfois source d'incompatibilité. La seule façon de
permettre une communication plus large est d'adopter un langage SQL standardisé de
communication. Une couche fonctionnelle du client traduit les requêtes du dialecte
SQL client en SQL normalisé. La requête transformée est envoyée au serveur. Celui-ci
traduit la requête dans le dialecte SQL-serveur et l'exécute. Le résultat de la requête
suit le chemin inverse.

Le langage de communication normalisé le plus fréquent est :


- l'ODBC (Open Data Base Connectivity) de Microsoft.
- IDAPI (Integrated Data base Application Programming Interface) de Borland.

7
Filière : Systèmes d’informations Niveau : Master 1
Bachtarzi C. Cours : Bases de données avancées

Connexion :
– C’est toujours le client qui établit la connexion avec le serveur.
– Sur chaque nœud du réseau, on doit placer un serveur d’écoute (Listener) C’est un
processus qui lit en permanence un port de la machine.
– Le serveur doit être à l’écoute d’une connexion le concernant.
– Le serveur d’écoute connaît les BD se trouvant sur le nœud et établit la connexion
entre le client et le serveur.
– Chaque base de données a un nom global dans le réseau, alias de la BD. Cet alias doit
être résolu en :
- Un nœud (une machine)
- Un port
- Un protocole
- Un identificateur de BD

Différence entre les deux techniques :


Bilan : Deux grandes techniques de bases de données s'affrontent : celle à base de fichiers
plats structurés nécessitant un moteur sur chaque poste et celle à base de serveur de données.

La différence fondamentale est perçue lors de l’exécution des ordres SQL. Elle se reflète au
niveau de congestion du trafic réseau

SGBD de type fichier : exécute toujours la requête de manière locale.


SGBD C/S : exécute la requête sur le serveur.

Vous aimerez peut-être aussi