archi-client-serveur.pdf

24
Le modèle client-serveur Olivier Aubert 1/24

Transcript of archi-client-serveur.pdf

  • Le modle client-serveur

    Olivier Aubert

    1/24

  • Sources

    http://www.info.uqam.ca/~obaid/INF4481/A01/Plan.htm

    2/24

    http://www.info.uqam.ca/~obaid/INF4481/A01/Plan.htm

  • Historique

    I architecture centraliseI terminaux passifs (un seul OS, systmes propritaires)I traitements au niveau du serveur

    3/24

  • Architecture rpartie

    I rseaux, ordinateurs plus puissants, OS ouvertsI interfaces et API standard (RFC)I traitement effectu en partie sur les clients

    Applications

    Windows

    Applications

    Mac

    Applications

    UNIX

    Rseau dentreprise

    OS

    RponseRequte

    BD

    Rgles

    Serveur

    Clients

    4/24

  • Le modle

    I Client : processus demandant lexcution dune opration un autre processus par envoi de message contenant ledescriptif de lopration excuter et attendant la rponse decette opration par un message en retour.

    I Serveur : processus accomplissant une opration surdemande dun client, et lui transmettant le rsultat.

    I Requte : message transmis par un client un serveurdcrivant lopration excuter pour le compte du client.

    I Rponse : message transmis par un serveur un client suite lexcution dune opration, contenant le rsultat delopration.

    5/24

  • Types darchitecture client-serveur

    Le modle :

    Processusclient

    Systme

    Hardware

    Processussystme

    Systme

    Hardware

    Client Serveur

    Application

    Un client, un serveur :ServeurClient

    Un client, plusieurs serveurs :

    ServeurClient Serveur

    Plusieurs clients, un serveur :Client

    Esclave

    MatreClient

    Esclave

    6/24

  • C/S orient client ou serveur

    I Client lourd stocke les donnes et les applications localement. Le

    serveur stocke les fichiers mis jour Le client effectue une bonne partie du traitement Le serveur est plus allg

    I Serveur lourd On effectue plus de traitements sur le serveur :

    transactions, groupware, etc Dploiement plus ais

    I Client lger Client fonctionnalit minimale (terminaux X, priphrique

    rseau (Network Appliance), ordinateur rseau (networkcomputer))

    Beaucoup de charge sur le serveur et le rseau

    7/24

  • Dialogue client-serveur

    Primitives de service :I SendRequest()I ReceiveResponse()I ReceiveRequest()I SendResponse()

    Requte

    Rponse

    Session

    Transport

    Rseau

    Session

    Transport

    Client

    Serveur

    SendRequest()

    ReceiveResponse()

    SendResponse()

    ReceiveRequest()

    8/24

  • Messages client-serveur

    I Trois grands types de message : REQ, REP et ACKI Autres types possibles : AYA (Are You Alive), BUSY

    (ordinateur temporairement occup), ERR (Erreur), etc.

    9/24

  • change de messages

    I Dans un environnement htrogne, on doit effectuer uneprsentation adquate des donnes.

    I Traduction des donnes (XDR (Sun), ASN.1 (CCITT), etc)I Assemblage des paramtres mis et des rsultats

    (marshalling)I Dsassemblage des paramtres reus et des rsultats

    (unmarshalling)

    Prsentation

    Session

    Transport

    Prsentation

    Session

    TraductionAssemblage

    TraductionDsassemblage

    10/24

  • Modes de dialogue

    I Mode synchrone nutilise pas de file dattente les messages sont mis aussitt mode bloquant (ex. RPC)

    I Mode asynchrone utilise une file dattente mode non bloquant favorise le multitche (ex. FIFO, email)

    11/24

  • Oprations bloquantes

    Le processus se bloque jusqu ce que lopration se termine.

    read() Lecture

    Copie dansle tampon

    Appel

    Retour

    Client

    Serveur

    12/24

  • Oprations non bloquantes

    Par vnements

    Copie dansle tampon

    Appel

    Retour

    Client

    Serveur

    WOULDBLOCK

    Appel

    WOULDBLOCK

    Attente desdonnes

    Appel

    read()

    Par signaux

    Copie dansle tampon

    Activer SIGIO

    Retour

    Client

    Serveur

    RetourAttente desdonnes

    Appel

    signal()

    Signal SIGIO

    handler()

    read()

    13/24

  • Conception dune application c/s

    Dans une application client-serveur, il faut dcider delemplacement des composantes de :I prsentation : interfaces textuelles ou graphiques,

    interactions, entre des donnes, validation, etc.I logique dapplication : traitements associs lapplicationI accs aux donnes : stockage et accs aux donnes (base

    de donnes, serveur web, etc)

    14/24

  • Modle client-serveur deux niveaux

    Modle de Gartner pour les systmes deux niveaux (2-tiers) :

    Prsentation

    Logique

    Donnes

    Donnes

    Prsentation

    Logique

    Donnes

    Prsentation

    Logique

    Donnes

    Logique

    Prsentation

    Logique

    Donnes

    Prsentation

    Logique

    Donnes

    Prsentation

    Client

    Serveur

    BDrparties

    Donnesdistantes

    Transactionsrparties

    Prsentationsdistantes

    Prsentationsrparties

    Classe 1 Classe 2 Classe 3 Classe 4 Classe 5

    15/24

  • Client-serveur trois niveaux

    Modle de Gartner pour les systmes trois niveaux (3-tiers) :

    Prsentation

    Logique

    Donnes

    Prsentation

    Logique

    PrsentationPrsentation

    Logique

    Donnes

    LogiqueLogiqueLogique

    Logique

    DonnesDonnes

    Logique

    DonnesDonnes

    Client

    Serveurde milieu

    Serveur

    16/24

  • Le middleware

    I Traduction officielle : intersticielI Assure les connexions entre les serveurs de donnes et les

    outils de dveloppement sur les postes clientI Ensemble de services logiciels construits au dessus dun

    protocole de transport afin de permettre lchange derequtes et des rponses associes entre client et serveur demanire transparente.

    I Les services du middleware sont un ensemble de logicielsrpartis qui existe entre lapplication, lOS et les servicesrseaux sur un nud du rseau.

    17/24

  • Types de middleware

    I Gnral Protocoles de communication, rpertoires rpartis, services

    dauthentification, service de temps, RPC, etc Services rpartis de type NOS (Networked OS) : services

    de fichiers, services dimpression.I Spcifique

    de BD : ODBC, IDAPI, EDA/SQL, etc de groupware : MAPI, Lotus Notes dobjets : CORBA, COM/DCOM, .NET

    18/24

  • Composantes du middleware

    I Les canaux Services de communications entre composants et

    applications : RPC (synchrone), ORB (synchrone), MOM(Message Oriented Middleware) (asynchrone)

    Services de support de communication : SSL, annuaires(LDAP)

    I Les plate-formes Serveurs dapplications qui sexcutent du ct serveur Offrent les canaux de communication Assurent la rpartition, lquilibrage de charge, lintgrit

    des transactions, etc Exemple : architecture web-tier

    19/24

  • Place du middleware

    Processus client

    Middleware client

    Services;locaux

    Servicesreseau

    OS et hardware

    Processus serveur

    Middleware serveur

    Services;locaux

    Servicesreseau

    OS et hardware

    Protocole Requete

    Reponse

    Protocole reseau

    Exemples :I Les services primitifs (mulateurs de terminaux, transfert de

    fichier, mail, etc)I Services de bases (RPC, etc)I Services intgrs (DCE, OS rpartis)I Objets distribus (CORBA, COM/DCOM, etc)I World Wide Web

    20/24

  • Services du middleware

    Middleware de service specifique

    Gestion repartie

    OS Reseau

    Transport

    Reseau, Liaison, Physique

    SQL/API, TxRPC, Mail, ORB/COM

    CMIP, SNMP

    Repertoire, RPC, NFS, Securite

    TCP/IP, IPX/SPX, NetBIOS, SNA

    21/24

  • Fonctions dun middleware

    I procdure dtablissement de connexionI excution des requtesI rcupration des rsultatsI procdure de fermeture de connexionI initiation des processus sur diffrents sitesI services de rpertoire (nommage)I accs aux donnes distanceI gestion des accs concurrentsI scurit et intgritI monitoringI terminaison des processusI mise en cache des rsultatsI mise en cache des requtes

    22/24

  • Le modle RPC

    RPC : Remote Procedure Call

    Application

    Assemblage Desassemblage

    Procedure

    Assemblage Desassemblage

    SendRequest()ReceiveResponse() SendResponse()ReceiveRequest()

    Client ServeurRPC

    Appelprocedure

    Retourprocedure

    Retourprocedure

    Executionprocedure

    Souche client Souche serveur

    23/24

  • Transparence

    I Transparence des rseaux : support de plusieurs types derseaux (WAN, LAN, etc) et de protocoles (TCP/IP, SNA, etc)

    I Transparence aux serveurs : support de plusieurs types deserveur (SGBD (Oracle, Sybase, SQL Server, etc))

    I Transparence des donnes : traductions des formats dedonnes (XDR, ASN.1, etc)

    I Transparence de la localisation : utilisation dun service derpertoire

    24/24

    SourcesHistoriqueArchitecture rpartieLe modleTypes d'architecture client-serveurC/S orient client ou serveurDialogue client-serveurMessages client-serveurchange de messagesModes de dialogueOprations bloquantesOprations non bloquantesConception d'une application c/sModle client-serveur deux niveauxClient-serveur trois niveauxLe middlewareTypes de middlewareComposantes du middlewarePlace du middlewareServices du middlewareFonctions d'un middlewareLe modle RPCTransparence