Vous êtes sur la page 1sur 47

Architectures client-serveur et

Services applicatives

1
Plan

 Introduction
 Architectures client-serveur
 Middleware
 Services applicatives

2
Introduction
 Applications réparties (distribuées)
 Pour fonctionner ces applications doivent interagir avec
plus d'un module situés sur des ordinateurs distincts, en
communiquant à travers un réseau (local ou distant).

 Applications parallèles
 On parle de parallélisme quand deux modules (ou plus)
d'une même application peuvent effectuer des tâches
simultanés et jusqu'à un certain point, indépendantes

3
Introduction
 Paradigme client-serveur
structurer un système distribué en termes d’entités clientes et
d’entités serveurs qui communiquent par l’intermédiaire d’un
protocole

4
Introduction
 Paradigme client-serveur
 Service : regroupement de fonctions liées à la gestion d’une
ressource applicative, physique ou logique : des programmes,
des données, des processeurs et des périphériques de stockage
 Serveur : entité exécutable qui réalise, seule ou en coopérant
avec d’autres entités serveurs, les fonctionnalités du service.
• un serveur Web fournit des pages Web
• un serveur de fichiers sert fichiers informatiques.
• pour un SGBD (DBMS), le serveur est un serveur de DB
 Client : entité exécutable qui qui émet une requête auprès
d’un serveur pour utiliser les fonctionnalités d’un service.
 Communication par message: locale ou via le réseau
informatique 5
Introduction
 Applications client-serveur
Les systèmes client-serveur désignent aujourd'hui plusieurs
types d'applications:
– les applications WEB comme le courrier, les achats en ligne
– les liens avec les services (locaux ou distants) comme
l'impression
– les applications tirant profit des multiprocesseurs
– les applications de base de données (au sens très large du
terme)

6
Architectures client-serveur
 Logique applicative
Development Tools

Presentation Business Logic Data Access

Distributed
HTML Objects Data Access
HTML
Objects
Transactions
Enterprise Data
Java
Content Connectors
Data
Management

Java
Application Enterprise Deployment Services
Scalability Reliability Security Manageability
7
Architectures client-serveur
 Logique applicative : exemples

8
Architectures client-serveur
 Classification des architectures
Ou placer l’application?

Application

Client Server

Dans un contexte distribué, les couches de l’application sont /


peuvent être exécutés sur des machines différentes. Certaines
couches peuvent être sous découpés
 Classification en couches
 Classification en niveaux
 Peer-to-Peer 9
Architectures client-serveur
 Classification des architectures
 Classification en couches
Vison en couches des différentes composantes d’une
architecture client-serveur (comme le modèle ISO en 7 couches).
Intéressante si les éléments mis en jeu dans les différentes
couches sont hétérogènes.

Il fait intervenir deux entités : clients et serveurs (2 tiers)

Le Gartner Group (société de consulting) a établi un découpage


en six vues distinctes montrant les différentes possibilités de
répartition entre clients et serveurs des trois principales couches
logicielles 10
Architectures client-serveur
 Classification en couches

Présentation Présentation Gestion Traitements Données et Bases de


distribuée distante distante des distribués traitements données
données distribués Distribuées

11
Architectures client-serveur
 Classification en couches

Terminal ou X Window client/server RPC Accès Bases de


émulation de System, SGBD (DB2, Web Services Mobile données
terminal sur Application Oracle, , RMI distribuées
site, Terminal Web avec un etc.)
Server sous navigateur
12
Windows Web
Architectures client-serveur
 Client Léger, Lourd et enrichie

3 Data Access Types de clients

2 Business Logic
Fat
Thin
1 Presentation Client
Client

13
Architectures client-serveur
 Client Léger, Lourd et enrichie

Client lourd (Fat Client): possède une interface graphique riche


ainsi que des capacités de traitements élevées (logique métier).
 MSN, Thunderbird, Outlook, Antivirus

Client léger (Thin client) : une interface graphique limitée


accessible via une interface web et consultable via un navigateur
(absence de logique métier).
 WebMessenger, Hotmail

14
Architectures client-serveur
 Client Léger, Lourd et enrichie

Client lourd

15
Architectures client-serveur
 Client Léger, Lourd et enrichie

Client léger

SGBD sur le
serveur
16
Architectures client-serveur
 Client Léger, Lourd et enrichie

17
Architectures client-serveur
 Client Léger, Lourd et enrichie
Client enrichie : combler les limites des clients lourd et léger
 Lourdeur de la maintenance pour le client lourd
 Lenteur et pauvreté pour le client léger
Deux approches :
 Rich Desktop Application (RDA) : On améliore le client lourd
 Sun JavaWebStart
 Microsoft : No Touch Deployment (.NET)
 Rich Internet Application (RIA) : On améliore le client léger
 Ajax, Flash, …
18
Architectures client-serveur
 Classification en niveaux (n-tiers)
Comparable à une architecture par couches… dont les couches
seraient distribuées !
Par abus de langage, la notion de tier a pris le sens de couche
distribuée
Chaque niveau est représenté par un composant qui joue le rôle
de client et/ou de serveur
Connecteurs : relient un client à un serveur. Connexion
asymétrique. Doit supporter les communication distantes (e.g.,
requêtes RPC, HTTP, TCP/IP)
Exemples
 Client-serveur, Trois niveaux, Quatre niveaux
19
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 1-tier ou centralisée
Le Tout sur la même machine. Exemple : Mainframe
les réseaux informatiques sont configurés autour d'un
ordinateur central de grande puissance appelé "Mainframe" qui
gère toutes les sessions utilisateurs ouvertes par l'ensemble des
terminaux-utilisateurs qui lui sont reliés (terminaux passifs :
écran adjoint d’un clavier sans unité centrale).

Pour pallier le manque de graphisme, différentes


solutions existent dont l'intégration du 20

mainframe dans une architecture 2, 3 ou N niveaux


Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 2-tiers
• Client-serveur de base, avec 2 éléments
• Client : présentation, interface utilisateur
• Serveur : partie persistance, gestion physique des données
Physical Architecture Technical Architecture
Windows Database
Client Server
GUI


PowerBuilder Oracle
Visual Basic Sybase Ethernet
Visual C++ SQLServer TCP/IP
JEE
21
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 2-tiers
Les services métier / la partie applicative peuvent être
– Soit entièrement coté client, intégrés avec la présentation
• Ex : traitement de texte avec serveur de fichiers distants
• Ex : application accédant à une BDD distante
– Soit entièrement coté serveur
• L'interface utilisateur peut même être exécutée sur le
serveur
– Soit découpés entre la partie serveur et la partie client

22
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 2-tiers

23
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 2-tiers

 Applications internes
 Des environnements avec peu de clients
 Des environnements homogènes
 Des environnements fermés (e.g SGBD)

 Heavy load on database


 Limited option for scaling
 Costly software distribution
 Poor separation of software components
 “Fat Client”
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 3-tiers
Les 3 principaux tiers s'exécutent chacun sur des machines
différentes

Physical Architecture Technical Architecture

Business Data
GUI
Logic Base
Application Server

DataBase Server 25
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 3-tiers
In the web development field, 3-tier is often used to refer to websites,
which are built using three tiers:
– A front-end web server serving static content, and potentially
some cached dynamic content. In web based application,
Front End is the content rendered by the browser. The content
may be static or generated dynamically.
– A middle dynamic content processing and generation level
application server, for example Ruby on Rails, Java EE,
ASP.NET, PHP, ColdFusion, Perl, Python platform.
– A back-end database or data store, comprising both data sets
and the database management system software that manages
and provides access to the data.
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 3-tiers
Physical Architecture

HTTP Applicati
Web Web on Data
Browser Server base
Server

HTML
Pages

Technical Architecture

Any Computer Server


Any Network
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Les architectures 3-tiers

 Le mise à l’échelle des milliers de clients


 Accès à des sources de données hétérogènes
 Maintenance (update software on few app. servers
instead of thousands of clients)
 Séparation entre la presentation et la logique métier

 Costly software distribution


 Poor cross-platform support
 “Fat Client”
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Architecture n-tiers
Rajoute des étages / couches en plus
La couche applicative n'est pas monolithique
– Peut s'appuyer et interagir avec d'autres services
– Composition horizontale
• Service métier utilise d'autres services métiers
– Composition verticale
• Les services métiers peuvent aussi s'appuyer sur des
services techniques : Sécurité, Transactions, ...
Chaque service correspond à une couche : d'où le terme de N-tiers
29
Architectures client-serveur
 Classification multi-niveaux (n-tiers)
 Architecture n-tiers

30
Architectures client-serveur
 Peer-to-Peer
 égal à égal" ou "point à point".
 Chaque ordinateur connecté au réseau est susceptible de jouer
tour à tour le rôle de client et celui de serveur
 Intérêt : optimiser l’utilisation des ressources (CPU, stockage
et bande passante) de l’ensemble du réseau.
 Défit : comment obtenir la localisation d’une donnée
particulière ?
 Terminologie :
 Nœud : entité logicielle intervenant dans le système
 Lien : canal de communication entre nœuds
 Réseau : noeud+lien
31
 Echange d’objets entre les noeuds
Architectures client-serveur
 Architectures Peer-to-Peer
 Client- Serveur
Le serveur est un intermédiaire de stockage pour les
échanges de données entre clients.
 Le serveur est un intermédiaire de communication.
 Les seules ressources publiées sont celles localisées
sur le serveur.
 Exemple : Messagerie Mail

32
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P centralisé
Le serveur est un intermédiaire de coordination
et/out de communication pour les échanges de
données entre clients.
 Napster
 Pour partager un fichier, il suffit de se déclarer chez
le serveur qui possède l’annuaire général
 Pour obtenir le fichier, il est nécessaire d’intéroger le
serveur qui donne la liste des nœuds qui possède le
fichier
 Transfert s’effectue directement entre nœuds
 Problème : centralisation des indexes
33
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P centralisé
• Napster • Groove
• Partage de fichiers • Service collaboratif d’édition
musicaux. de documents.
• Recherche effectuée sur • Service de relai pour
l’index du serveur. coordonner les pairs sur le
contenu des documents.

34
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P décentralisé
– Pur P2P.
– Pas de serveur dédié.
– Les pairs publient et consomment des
ressources.
– Les pairs orientent les requêtes.

35
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P décentralisé (Gnutella)
– Aucun serveur central. Chaque nœud indexe ses données
et se déclare auprès de ses voisions
• comment trouver des voisins? Liste de voisins sur le web
– Découvertes et requêtes transmises de proche en proche.
– Diffusion limitée par le TTL.
– Connaissance locale du réseau.
– Les nœuds lents ralentissent les requêtes

36
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P décentralisé : Kaaza et Gnutella 0.6

37
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P décentralisé : ADSL

38
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P décentralisé : eDonkey et eMule

39
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P décentralisé : Bittorent

40
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P décentralisé : Bittorent

41
Architectures client-serveur
 Architectures Peer-to-Peer
 P2P vs client-serveur
• Rapidité d’exécution: • Coûts réduits:
– Plus de puissance processeur; – Maintenance;
– Plus de capacité mémoire; – Equipements.
– Temps de transit réduits. • Meilleure capacité d’extensibili
• Meilleur utilisation de la bande • Sécurité.
passante.
• Problèmes éthiques (droits
• Tolérance aux pannes: d’auteurs,...).
– Connexions plus instables;
– Redondance accrue des
informations.
42
Middleware
 Médiateur

• Software that connects two


otherwise separate applications Database Server:
• Example: Middleware product Manages Data
linking a database system to a
Web server Middleware Links
Applications

Web Server:
Presents Dynamic Pages
Client: Requests Data via Web 43
Middleware
 Médiateur
Middleware (Intergiciel)
– Logiciels s’exécutant à la fois côte client et côté serveur
– Offre le service de distribution et d’héterogénité [IBM
Mainframe (big-endian), Unix (Little-endian)].
L'échange de messages, l'appel de procédures et la
manipulation d'objets tiers sont trois techniques prises en
charge par le middleware, qui permettent à des applications
informatiques d'interagir, de coopérer et de se transmettre
des informations.

44
Middleware
 Médiateur
Un Middleware offre en plus les services de :
– Transactions : concept à la base de l’échange commercial
informatisé, exécution d’une ou plusieurs tâches accédant
à une ou plusieurs ressources sur différents serveur (dont
des BD) offrant un ensemble de garanties :
• Atomicité : une transaction est soit validée soir
entièrement annulée.
• Cohérence
• Isolation : Les données manipulées dans une
transaction ne sont pas accessibles à d’autres.
• Durabilité : Le nouvel état des données (après la
transaction) est enregistré dans la base. 45
Middleware
 Médiateur
Un Middleware offre en plus les services de :
– interopérabilité : communication entre objets écrits avec
différents langages (du C++ faisant appel ç un
programme distant en JAVA. (Exemple : CORBA).
– Sécurité, contrôles d’accès.
– Nommage (API JNDI : interface pour se connecter aux
services de noms ou d’annuaires).
– Gestion transparente de la communication bas-niveau
entre divers clients et EJB distants (JEE remote
connectivity).

46
Middleware
 Médiateur
Exemples Middleware
– Orientés transaction : IBM CICS, Tuxedo
– Appel à méthodes distantes middleware
• RPC Middleware, Java/RMI
– Object-Oriented Middleware :
• OMG/Corba, Microsoft/Com, Java/RMI,
• ORB : Object Request Broker. Intergiciel, dit bus d’objets ou bus
logiciel, assurant l’appel de service à distance.
CORBA (Common Object Request Broker Architecture) : Un
middleware pour les applications distribuées et l’interopérabilité,
incluant un bus logiciel et un ensemble de services.

47

Vous aimerez peut-être aussi