30
Med El assad Année universitaire 2007/2008 ARCHITECTURE D'UN SYSTEME CLIENT/SERVEUR I. Présentation de l'architecture d'un système client/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 ). II. Les 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 : 1/ 9

client serveur

  • Upload
    roxdox

  • View
    6.841

  • Download
    3

Embed Size (px)

DESCRIPTION

client serveurclient serveurclient serveurclient serveur

Citation preview

Page 1: client serveur

Med El assad Année universitaire 2007/2008

ARCHITECTURE D'UN SYSTEME CLIENT/SERVEUR

I. Présentation de l'architecture d'un système client/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).

II. Les 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

1/9

Page 2: client serveur

Med El assad Année universitaire 2007/2008

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

IV. Le fonctionnement d'un système client/serveur

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

Le client émet une requête vers le serveur grâce à son adresse IP 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 cliente et son

port

V. L’architecture mainframe

Les premiers réseaux informatiques étaient architecturés autour d'un ordinateur central, appelé

« mainframe ».

Le mainframe représente ainsi un ordinateur central de grande puissance chargé de gérer les

sessions utilisateurs des différents terminaux qui lui étaient reliés. Grâce à cette architecture, il

est ainsi possible de consolider, c'est-à-dire de gérer de manière centralisée, l'ensemble des

applications métiers de l'entreprise.

Cependant, dans le modèle mainframe, la performance du système tout entier repose sur les

capacités de traitement de l'ordinateur central, c'est la raison pour laquelle ce modèle est

parfois qualifié d'« informatique lourde ». Par ailleurs, dans un environnement mainframe, les

2/9

Page 3: client serveur

Med El assad Année universitaire 2007/2008

terminaux du réseau ne peuvent voir que le serveur central.

cmd

VI. Présentation de l'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.

VII. 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 :

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.

3/9

Page 4: client serveur

Med El assad Année universitaire 2007/2008

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.

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

4/9

Page 5: client serveur

Med El assad Année universitaire 2007/2008

IX. L'architecture 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...

X. Client lourd

Le terme « client lourd » (en anglais « fat client » ou « heavy client »), par opposition au

client léger, désigne une application cliente graphique exécutée sur le système d'exploitation

de l'utilisateur. Un client lourd possède généralement des capacités de traitement évoluées et

peut posséder une interface graphique sophistiquée. Néanmoins, ceci demande un effort de

développement et tend à mêler la logique de présentation (l'interface graphique) avec la

logique applicative (les traitements).

5/9

Page 6: client serveur

Med El assad Année universitaire 2007/2008

Ce type d'application étant généralement installé sur le système d'exploitation de l'utilisateur,

une nouvelle version doit être installée afin de la faire évoluer. Pour y remédier, les éditeurs

d'applications lourdes les dotent généralement d'une fonctionnalité exécutée au lancement de

l'application, permettant de vérifier sur un serveur distant si une version plus récente est

disponible et le cas échéant propose à l'utilisateur de la télécharger et de l'installer.

XI. Client léger

Le terme « client léger » (parfois « client pauvre », en anglais « thin client »), par opposition

au client lourd, désigne une application accessible via une interface web (en HTML)

consultable à l'aide d'un navigateur web, où la totalité de la logique métier est traitée du côté

du serveur. Pour ces raisons, le navigateur est parfois appelé client universel.

L'origine du terme lui-même provient de la pauvreté du langage HTML, qui ne permet de

faire des interfaces relativement pauvres en interactivité, si ce n'est pas le biais du langage

javascript.

Le fait que l'essentiel des traitements soit réalisé du côté du serveur et que l'interface

graphique est envoyée au navigateur à chaque requête permet une grande souplesse de mise à

jour. En contrepartie, l'application doit s'affranchir des différences d'interprétation du code

HTML par les différents navigateurs et l'ergonomie de l'application possède un champ réduit.

XII. Client riche

Un « client riche » est un compromis entre le client léger et le client lourd. L'objectif du

client riche est donc de proposer une interface graphique, décrite avec une grammaire de

description basée sur la syntaxe XML, permettant d'obtenir des fonctionnalités similaires à

celles d'un client lourd (glisser déposer, onglets, multi fenêtrage, menus déroulants).

Les clients riches permettent ainsi de gérer l'essentiel des traitements du côté du serveur. Les

données sont ensuite transmises dans un format d'échange standard utilisant la syntaxe XML

(SOAP, XML-RPC), puis interprétées par le client riche.

6/9

Page 7: client serveur

Med El assad Année universitaire 2007/2008

Les principaux standards permettant de définir une application riche sont les suivants :

XAML (eXtensible Application Markup Language), prononcez « zammel », un

standard XML proposé par Microsoft, utilisé notamment dans les applications utilisant

le framework .NET ;

XUL, prononcez « zoul », un standard XML proposé par la fondation Mozilla, utilisé

par exemple dans le client de messagerie Mozilla Thunderbird ou dans le navigateur

Mozilla Firefox ;

Flex, un standard XML proposé par la société Macromedia.

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

XIV. Inconvénients des réseaux d'égal à égal

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

XV. Avantages de l'architecture d'égal à égal

L'architecture d'égal à égal a tout de même quelques avantages parmi lesquels :

7/9

Page 8: client serveur

Med El assad Année universitaire 2007/2008

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)

une simplicité à toute épreuve!

XVI. Mise en oeuvre d'un réseau peer to peer

Les réseaux poste à poste ne nécessitent pas les mêmes niveaux de performance et de sécurité

que les logiciels réseaux pour serveurs dédiés. On peut donc utiliser Windows NT

Workstation, Windows pour Workgroups ou Windows 95 car tous ces systèmes

d’exploitation intègrent toutes les fonctionnalités du réseau poste à poste.

La mise en oeuvre d'une telle architecture réseau repose sur des solutions standards :

Placer les ordinateurs sur le bureau des utilisateurs

Chaque utilisateur est son propre administrateur et planifie lui-même sa sécurité

Pour les connexions, on utilise un système de câblage simple et apparent

Il s'agit généralement d'une solution satisfaisante pour des environnements ayant les

caractéristiques suivantes :

Moins de 10 utilisateurs

Tous les utilisateurs sont situés dans une même zone géographique

La sécurité n’est pas un problème crucial

Ni l’entreprise ni le réseau ne sont susceptibles d’évoluer de manière significative dans

un proche avenir

XVII. Administration d'un réseau poste à poste

Le réseau poste à poste répond aux besoins d’une petite entreprise mais peut s’avérer

inadéquat dans certains environnements. Voici les questions à résoudre avant de choisir le

type de réseau : On désigne par le terme "Administration" :

1. Gestion des utilisateurs et de la sécurité

8/9

Page 9: client serveur

Med El assad Année universitaire 2007/2008

2. Mise à disposition des ressources

3. Maintenance des applications et des données

4. Installation et mise à niveau des logiciels utilisateurs

Dans un réseau poste à poste typique, il n’y a pas d’administrateur. Chaque utilisateur

administre son propre poste. D'autre part tous les utilisateurs peuvent partager leurs ressources

comme ils le souhaitent (données dans des répertoires partagés, imprimantes, cartes fax etc.)

XVIII. Notions de sécurité

La politique de sécurité minimale consiste à mettre un mot de passe à une ressource. Les

utilisateurs d’un réseau poste à poste définissent leur propre sécurité et comme tous les

partages peuvent exister sur tous les ordinateurs, il est difficile de mettre en oeuvre un

contrôle centralisé. Ceci pose également un problème de sécurité globale du réseau car

certains utilisateurs ne sécurisent pas du tout leurs ressources.

Ressource : http://www.commentcamarche.net/cs/peer.php3

9/9

Page 10: client serveur

Med El assad Année universitaire 2007/2008

Client-serveur

Un article de Wikipédia, l'encyclopédie libre.

Aller à : Navigation, Rechercher

L'architecture client/serveur désigne un mode de communication entre plusieurs ordinateurs

d'un réseau qui distingue un ou plusieurs postes clients du 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.

Caractéristiques d'un serveur :

il est passif (ou maître) ;

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.

Caractéristiques d'un client :

il est actif (ou esclave) ;

il envoie des requêtes au serveur ;

il attend et reçoit les réponses du serveur.

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.

Un autre type d'architecture réseau est le poste à poste (ou peer-to-peer en anglais), dans

lequel chaque ordinateur ou logiciel est à la fois client et serveur.

Sommaire

[masquer]

1 Architectures trois tiers et multi-tiers

10/9

Page 11: client serveur

Med El assad Année universitaire 2007/2008

2 Avantages par rapport aux architectures distribuées

3 Inconvénients

4 Exemples

5 Voir aussi

Architectures trois tiers et multi-tiers [modifier]

Les termes « trois tiers » et « multi-tiers » sont abusivement traduits de l'anglais three tier et

multi-tier ou n-tier.

L'architecture client/serveur possède deux types d'ordinateurs sur un réseau : les clients et les

serveurs, elle possède donc deux niveaux et s'appelle two-tier en anglais. Les architectures

multi-tiers (ou distribuées) scindent le serveur en plusieurs entités (par exemple, un serveur

d'application qui lui-même est le client d'un serveur de base de données).

Avantages par rapport aux architectures distribuées [modifier]

Toutes les données sont centralisées sur un seul serveur, ce qui simplifie les contrôles

de sécurité et la mise à jour des données et des logiciels ;

les technologies supportant l'architecture client/serveur sont plus matures que les

autres.

Inconvénients [modifier]

Si trop de clients veulent communiquer avec le serveur au même moment, ce dernier

risque de ne pas supporter la charge (alors que les réseaux P2P marchent mieux en

ajoutant de nouveau participants) ;

si le serveur n'est plus disponible, plus aucun des clients ne marche (le réseau P2P

continue à marcher, même si plusieurs participants quittent le réseau).

Exemples [modifier]

11/9

Page 12: client serveur

Med El assad Année universitaire 2007/2008

La consultation de pages sur un site web fonctionne sur une architecture client/serveur.

Un internaute connecté au réseau via son ordinateur et un navigateur web est le client,

le serveur est constitué par le ou les ordinateurs contenant les applications qui

délivrent les pages demandées. Dans ce cas, c'est le protocole de communication

HTTP qui est utilisé.

Les courriels sont envoyés et reçus par des clients et gérés par un serveur de

messagerie. Les protocoles utilisés sont le SMTP, et le POP ou l'IMAP.

La gestion d'une base de données centralisée sur un serveur peut se faire à partir de

plusieurs postes clients qui permettent de visualiser et saisir des données.

Le système X Window fonctionne sur une architecture client/serveur. En général le

client tourne sur la même machine que le serveur mais peut être aussi bien lancé sur

un autre ordinateur faisant partie du réseau.

Un Client léger est un ordinateur léger ou ancien s'appuyant sur un serveur central qui

héberge et exécute toutes les applications. Exemples : le projet LTSP ; la technologie

NX.

L'architecture client serveur s'appuie sur un poste central, le serveur, qui envoit des données

aux machines clientes.

Des programmes qui accèdent au serveur sont appelés programmes clients (client FTP, client

mail).

Avantages de cette architecture :

Unicité de l'information : pour un site web dynamique par exemple (comme

vulgarisation-informatique.com), certains articles du site sont stockés dans une

base de données sur le serveur. De cette manière, les informations restent

identiques. Chaque utilisateur accède aux mêmes informations.

12/9

Page 13: client serveur

Med El assad Année universitaire 2007/2008

Meilleure sécurité : Lors de la connexion un PC client ne voit que le serveur,

et non les autres PC clients. De même, les serveurs sont en général très

sécurisés contre les attaques de pirates.

Meilleure fiabilité : En cas de panne, seul le serveur fait l'objet d'une

réparation, et non le PC client.

Facilité d'évolution : Une architecture client/serveur est évolutive car il est

très facile de rajouter ou d'enlever des clients, et même des serveurs.

Inconvénients de cette architecture :

Un coût d'exploitation élevé (bande passante, câbles, ordinateurs

surpuissants)

Fonctionnement d'un réseau client /serveur :

Une architecture client/serveur :

Le client pour recevoir des informations du serveur lui émet une requête

passant par un port du PC (exemple : port 25 pour les mails, port 80 pour le

web et 21 pour le FTP).

Le serveur lui envoit ensuite les informations grâce à l'adresse IP de la

machine cliente.

Articles en rapport :

L'architecture d'un réseau Peer to Peer

Qu'est ce qu'un protocole ?

Adresse IP

Notion de ports

13/9

Page 14: client serveur

Med El assad Année universitaire 2007/2008

Notion de port :

Lors d'une communication en réseau, les différents ordinateurs s'échangent des informations

qui sont généralement destinées à plusieurs applications (le client mail et le navigateur

internet par exemple).

Seulement ces informations transitent par la même passerelle. Il faut donc savoir pour quelle

application telle information est destinée. On attribue donc des ports pour chaque application.

Un port est comme une porte en schématisant. Les informations sont multiplexées (comme

dans les voitures récentes) et passent par la passerelle. A leur arrivée (vers le serveur) ou à

leur réception (vers votre machine) elles sont démultiplexées et chaque information distincte

passe par le port qui lui est associé. Les informations sont ensuite traitées par l'application

correspondante.

Un port est codé sur 16 bits, il y a donc 65536 ports.

L'adresse IP plus le port (exemple : 127.0.0.1:80) est appelée socket.

Les ports ce sont vus attribuer une assignation par défaut pour aider à la configuration des

réseaux. Voici les principaux ports et le protocole les utilisant :

Port Service ou Application

21 FTP

23 Telnet

25 SMTP

53 DNS

80 HTTP

14/9

Page 15: client serveur

Med El assad Année universitaire 2007/2008

110 POP3

119 NNTP

Les ports 0 à 1023 sont les ports reconnus ou réservés et sont assignés par l'IANA (Internet

Assigned Numbers Authority).

Les ports 1024 à 49151 sont appelés ports enregistrés et les ports 49152 à 65535 sont les ports

dynamiques (ou privés).

Notion de protocoles :

Un protocole est une série d'étapes à suivre pour permettre une communication harmonieuse

entre plusieurs ordinateurs.

Internet est un ensemble de protocoles regroupés sous le terme "TCP-IP" (Transmission

Control Protocol/Internet Protocol). Voici une liste non exhaustive des différents protocoles

qui peuvent êtres utilisés :

HTTP : (Hyper Texte Transfert Protocol) : c'est celui que l'on utilise pour

consulter les pages web.

FTP : (File Transfert Protocol) : C'est un protocole utilisé pour transférer des

fichiers.

SMTP : (Simple Mail Transfert Protocol) : c'est le protocole utilisé pour

envoyer des mails.

POP : C'est le protocole utilisé pour recevoir des mails

15/9

Page 16: client serveur

Med El assad Année universitaire 2007/2008

Telnet : utilisé surtout pour commander des applications côté serveur en lignes

de commande

IP (internet Protocol) : L'adresse IP vous attribue une adresse lors de votre

connexion à un serveur.

Les protocoles sont classés en deux catégories :

Les protocoles où les machines s'envoient des acusés de réception (pour

permettre une gestion des erreurs). Ce sont les protocoles "orientés connexion"

Les autres protocoles qui n'avertissent pas la machine qui va recevoir les

données sont les protocoles "non orientés connexion"

16/9

Page 17: client serveur

Med El assad Année universitaire 2007/2008

Architecture trois tiers

Un article de Wikipédia, l'encyclopédie libre.

Aller à : Navigation, Rechercher

L'architecture trois tiers (« 3-Tier » en anglais) ou architecture à trois niveaux est

l'application du modèle plus général qu'est le multi-tiers. L'architecture logique du système est

divisée en trois niveaux ou couches :

couche présentation

couche métier

couche accès aux

données

C'est une extension du modèle client/serveur.

Sommaire

[masquer]

1 Définition et concepts

2 Les trois couches

o 2.1 Couche Présentation (premier niveau)

o 2.2 Couche Métier / Business (second niveau)

o 2.3 Couche Accès aux données (troisième

niveau)

2.3.1 Données propres au système

2.3.2 Données gérées par un autre

17/9

Page 18: client serveur

Med El assad Année universitaire 2007/2008

système

3 Voir aussi

4 Notes et références

Définition et concepts [modifier]

L'architecture 3-tier (de l'anglais tier signifiant étage ou niveau) est un modèle logique

d'architecture applicative qui vise à séparer très nettement trois couches logicielles au sein

d'une même application ou système, à modéliser et présenter cette application comme un

empilement de trois couches, étages, niveaux ou strates dont le rôle est clairement défini :

la présentation des

données : correspondant

à l'affichage, la restitution

sur le poste de travail, le

dialogue avec

l'utilisateur ;

le traitement métier des

données : correspondant

à la mise en œuvre de

l'ensemble des règles de

gestion et de la logique

applicative ;

et enfin l' accès aux

données persistantes

(persistence en anglais) :

correspondant aux

données qui sont

destinées à être

conservées sur la durée,

18/9

Page 19: client serveur

Med El assad Année universitaire 2007/2008

voire de manière

définitive.

Dans cette approche, les couches communiquent entre elles au travers d'un « modèle

d'échange », et chacune d'entre elles propose un ensemble de services rendus. Les services

d'une couche sont mis à disposition de la couche supérieure. On s'interdit par conséquent

qu'une couche invoque les services d'une couche plus basse que la couche immédiatement

inférieure ou plus haute que la couche immédiatement supérieure (chaque niveau ne

communique qu'avec ses voisins immédiats).

Le rôle de chacune des couches et leur interface de communication étant bien définis, les

fonctionnalités de chacune d'entre elles peuvent évoluer sans induire de changement dans les

autres couches. Cependant, une nouvelle fonctionnalité de l'application peut avoir des

répercussions dans plusieurs d'entre elles. Il est donc essentiel de définir un modèle d'échange

assez souple, pour permettre une maintenance aisée de l'application.

Ce modèle d'architecture 3-tier a pour objectif de répondre aux préoccupations suivantes :

allégement du poste de

travail client (notamment

vis-à-vis des architectures

classiques client-serveur

de données –- typiques

des applications dans un

contexte Oracle/Unix) ;

prise en compte de

l'hétérogénéité des plates-

formes (serveurs, clients,

langages, etc.) ;

introduction de clients

dits « légers » (plus liée

aux technologies

Intranet/HTML qu'au 3-

tier proprement dit) ;

19/9

Page 20: client serveur

Med El assad Année universitaire 2007/2008

et enfin, meilleure

répartition de la charge

entre différents serveurs

d'application.

Précédemment, dans les architectures client-serveur classiques, les couches présentation et

traitement étaient trop souvent imbriquées. Ce qui posait des problèmes à chaque fois que l'on

voulait modifier l'IHM 1 du système.

L'activation à distance (entre la station et le serveur d'application) des objets et de leurs

méthodes (on parle d'invocation) peut se faire au travers d'un ORB (avec le protocole IIOP ou

au moyen des technologies COM/DCOM de Microsoft ou encore avec RMI en technologie

J2EE). Cette architecture ouverte permet également de répartir les objets sur différents

serveurs d'application (soit pour prendre en compte un existant hétérogène, soit pour

optimiser la charge).

Il s'agit d'une architecture logique qui se répartit ensuite selon une architecture technique sur

différentes machines physiques, bien souvent au nombre de 3, 4 ou plus. Une répartition de la

charge doit dans ce cas être mise en place.

Les trois couches [modifier]

Couche Présentation (premier niveau) [modifier]

Elle correspond à la partie de l'application visible et interactive avec les utilisateurs. On parle

d'Interface Homme Machine. En informatique, elle peut être réalisée par une application

graphique ou textuelle. Elle peut aussi être représentée en HTML pour être exploitée par un

navigateur web ou en WML pour être utilisée par un téléphone portable.

On conçoit facilement que cette interface peut prendre de multiples facettes sans changer la

finalité de l'application. Dans le cas d'un système de distributeurs de billets, l'automate peut

être différent d'une banque à l'autre, mais les fonctionnalités offertes sont similaires et les

services identiques (fournir des billets, donner un extrait de compte, etc.).

Toujours dans le secteur bancaire, une même fonctionnalité métier (par exemple, la

commande d'un nouveau chéquier) pourra prendre différentes formes de présentation selon

20/9

Page 21: client serveur

Med El assad Année universitaire 2007/2008

qu'elle se déroule sur Internet, sur un distributeur automatique de billets ou sur l'écran d'un

chargé de clientèle en agence.

La couche présentation relaie les requêtes de l'utilisateur à destination de la couche métier, et

en retour lui présente les informations renvoyées par les traitements de cette couche. Il s'agit

donc ici d'un assemblage de services métiers et applicatifs offerts par la couche inférieure.

Il est recommandé ici de mettre en œuvre le design pattern Modèle-Vue-Contrôleur (MVC)

(ex : Apache Struts).

Couche Métier / Business (second niveau) [modifier]

Elle correspond à la partie fonctionnelle de l'application, celle qui implémente la « logique »,

et qui décrit les opérations que l'application opère sur les données en fonction des requêtes des

utilisateurs, effectuées au travers de la couche présentation.

Les différentes règles de gestion et de contrôle du système sont mises en œuvre dans cette

couche.

La couche métier offre des services applicatifs et métier2 à la couche présentation. Pour

fournir ces services, elle s'appuie, le cas échéant, sur les données du système, accessibles au

travers des services de la couche inférieure. En retour, elle renvoie à la couche présentation

les résultats qu'elle a calculés.

Couche Accès aux données (troisième niveau) [modifier]

Elle consiste en la partie gérant l'accès aux gisements de données du système. Ces données

peuvent être propres au système, ou gérées par un autre système. La couche métier n'a pas à

s'adapter à ces deux cas, ils sont transparents pour elle, et elle accède aux données de manière

uniforme (couplage faible).

Données propres au système [modifier]

Ces données sont pérennes, car destinées à durer dans le temps, de manière plus ou moins

longue, voire définitive.

Les données peuvent être stockées indifféremment dans de simples fichiers texte, ou

eXtensible Markup Language (XML), ou encore dans une base de données. Quel que soit le

21/9

Page 22: client serveur

Med El assad Année universitaire 2007/2008

support de stockage choisi, l'accès aux données doit être le même. Cette abstraction améliore

la maintenance du système.

Les services sont mis à disposition de la couche métier. Les données renvoyées sont issues

du/des gisements de données du système.

Pour une implémentation « native », le motif de conception (en anglais design pattern) à

implémenter dans cette couche est le Data Access Object (DAO). Ce dernier consiste à

représenter les données du système sous la forme d'un modèle objet. Par exemple un objet

pourrait représenter un contact ou un rendez-vous.

La représentation du modèle de données objet en base de données (appelée persistance) peut

s'effectuer à l'aide d'outils tels que Hibernate.

Données gérées par un autre système [modifier]

Les données peuvent aussi être gérées de manière externe. Elles ne sont pas stockées par le

système considéré, il s'appuie sur la capacité d'un autre système à fournir ces informations.

Par exemple, une application de pilotage de l'entreprise peut ne pas sauvegarder des données

comptables de haut niveau dont elle a besoin, mais les demander à une application de

comptabilité. Celle-ci est indépendante et pré-existante, et on ne se préoccupe pas de savoir

comment elle les obtient ou si elle les sauvegarde, on utilise simplement sa capacité à fournir

des données à jour.

Voir aussi [modifier]

22/9