Vous êtes sur la page 1sur 30

Architecture client-serveur

Yannick Pri UFR Informatique Universit Claude Bernard Lyon 1

2007-2008 Master SIB M1 UE 3 / Bloc 4 Cours 3

CM3 : Architecture client/serveur

Objectifs du cours

Rappels sur les ordinateurs rseau et Internet. Communication entre programmes et entre machines. Notion de protocole, couches ISO, protocoles de lInternet. Architecture client / serveur. Considrations de scurit. Exemples concrets de protocoles : HTTP et Z39.50

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

Rseau : pour quoi faire ?

Echanger et partager des informations


transferts de fichiers/donnes accs des fichiers/donnes distants... imprimante partage puissance de calcul stockage et sauvegarde... courrier lectronique chat, confrence publication en ligne...

Grer et partager des ressources


Communiquer

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

Rseau : cest quoi ?

Des machines et leurs programmes (= nuds du rseau)


Ordinateurs rseau (carte rseau + systme exploitation rseau) Priphriques rseau (imprimante...) Matriel rseau spcialis par cble (fibre optique, ethernet, cuivre...) par radio (ondes hertziennes, infrarouge...)

Des connexions entre les machines (= branches du rseau)


Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

Rseau local / Internet

Rseau local

centr autour dune organisation (universit, entreprise, famille) gr par celle-ci ensemble de rseaux locaux relis par des backbones (pines dorsales)

Internet = rseau des rseaux mondial


Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

Communiquer entre humains / programmes / machines

utilisateurs

programmes A B

machine1.univ-lyon1.fr

machine2.univ-lyon1.fr

machines
Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires CM3 : Architecture client/serveur Yannick Pri 2007/2008

A tous les niveaux, des protocoles

Dfinition

Ensemble de rgles et de procdures respecter pour pouvoir changer des donnes sur un rseau

Remarque : exemple de la vie courante

Ca va ? () / Oui () / Jai pas entendu () / Je rpte : Oui ()

Exemples diffrents niveaux

Niveau programmes (A B)

Tu fonctionnes ? () / Oui () /Envoie-moi le fichier toto.doc () / Ok cest parti () / toto.doc () / Bien reu () / Au revoir () Toi, systme dexploitation de la machine machine1.univ-lyon1.fr, passe le message Tu fonctionnes ? au programme qui coute sur le port 3422 () Toi carte rseau, regarde passer des paquets de donnes sur le cble, attrape ceux qui sont pour toi, et passe-en le contenu au systme dexploitation
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Niveaux systme dexploitation

Niveau cartes

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

Protocoles de communication

But

comprhension entre machines / logiciels communications indpendantes du systme dexploitation ou de la plate-forme limitation des erreurs/risques durant la transmission un langage et un ensemble de rgles que deux systmes doivent connatre (parler le mme langage) les fabricants doivent se conformer aux normes ISO (International Standardization Organization) pour les protocoles utiliss sur leurs machines/logiciels
dcoupe le processus de transmission en 7 couches chaque couche est responsable de lun des aspects de la communication en rseau
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Protocole pour lchange de messages


Modle OSI (Open System Interconnection)


Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

Modle en couches
Personne crire Lettre de motivation cacheter Enveloppe poster Centre de tri acheminer Route (camion)
Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires CM3 : Architecture client/serveur Yannick Pri 2007/2008

Candidature spontane

Employeur lire

Format de ce type de lettre

Lettre de motivation ouvrir

Envoi/rception courrier

Enveloppe dlivrer

Codification interne de La Poste

Centre de distribution rcuprer

Le modle OSI les 7 couches


Application : gestion des changes de donnes entre programmes et services du rseau Prsentation : mise en forme des informations pour les rendre lisibles par les applications Session : dtection du mode de communication utiliser entre machines et priphriques / Surveillance des connexions Transport : correction des erreurs de transmission; vrification de lacheminement Rseau : identification des machines connectes au rseau Liaison de donnes : subdivision des informations en paquets pour livraison sur le rseau Physique : contrle du support de transmission; circulation de linformation lectrique
Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

Application

Prsentation Session Transport Rseau


Liaison de donnes

Physique

CM3 : Architecture client/serveur Yannick Pri 2007/2008

10

Protocoles de lInternet

Niveau OSI rseau

IP (Internet Protocol)

adressage (routage) des informations identification des machines

Niveau OSI transport / session

TCP/IP : base de lInternet

TCP (Transmission Control Protocol)

transfert dinformation, contrle des transmissions

Niveau OSI application


FTP (File Transfer Protocol)


transfert de fichiers transfert dinformations sur le web conversion du nom des ordinateurs connects au rseau en adresses IP

HTTP (HyperText Transfer Protocol) DNS (Domain Name Server protocol) etc.
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

11

Identification de machines sur Internet


Une machine = un numro Adresse IP universelle unique


4 nombres de 8 bits (4 octets) spars par des points ex : 134.214.128.17 Classe A : 112.x.y.z (ex. NASA) Classe B : 134.214.x.y (ex. Universit Lyon 1) Classe C : 56.243.12.x (ex. Cyber-caf) IPV6

Classes dadresses / organisations


Remarques

16 octets commence se mettre en place adresse MAC, ex. 00:11:24:75:f4:6a


CM3 : Architecture client/serveur Yannick Pri 2007/2008

Une carte rseau = un numro

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

12

Noms de ressources sur Internet


Ide : associer ladresse IP un nom de machine


ex. lisiperso15.univ-lyon1.fr # 134.214.88.239 dcompos hirarchiquement


Nom de machine
domaine (critre gographique, institutionnel, organisationnel) sous-domaine (ventuellement) nom local de la machine ligimpc13.univ-lyon1.fr www.berkeley.edu ftp.berkeley.edu www.education.gouv.fr .gov, .edu, etc.

exemples

Attribution

ICANN : Internet Corporation for Assigned Names and Numbers AFNIC : Association Franaise pour le Nommage Internet en Coopration
.fr, .gouv.fr, .asso

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

13

Traduction adresse IP / nom de machine

Service de traduction fourni par des programmes appels DNS (Domain Name Server) DNS est aussi le nom du protocole utilis pour communiquer entre un programme qui dsire une traduction, et un serveur Un DNS gre un domaine... lisiperso15.univ-lyon1.fr ?
DNS
134.214.88.239
dns.univ-lyon1.fr

... et transmet la question un autre DNS sil ne sait pas rpondre.


www.ens-lyon.fr ? 140.77.167.3

DNS
dns.univ-lyon1.fr

www.ens-lyon.fr ? 140.77.167.3

DNS
n

n+2

n+1
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

14

Client / serveur

Service

comportement dun programme qui peut rendre service dautres programmes exemple : service de traduction noms/adresses IP = service DNS un service est appel par une requte suivant un certain protocole exemple : requte donne-moi la traduction de lisiperso15.univlyon1.fr envoye suivant le protocole DNS programme demandant un service un autre programme ET machine sur laquelle tourne ce programme client programme fournissant des services dautres programme ET machine sur laquelle tourne ce programme serveur
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Client

Serveur

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

15

Notion de socket

Port

Entre rseau de la machine


sur laquelle un serveur coute en attendant des connexions / requtes laquelle un client va se connecter

Socket

Tuyau entre deux programmes Quintuplet : (machine1, port1, protocole transmission, port2, machine2) Client sur machine 1 appelle serveur sur machine 2 / port 53, suivant le protocole TCP La connexion stablit, le canal de communication est ouvert (port de sortie client : 2449) Il devient possible de communiquer suivant un protocole dapplication (par exemple DNS)

Exemple

DNS

2449

Machine1

TCP

53

machine2

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

16

Client / serveur : exemples (1/2)

Traduction noms de machines / adresses IP


protocole : DNS clients : tout programme rseau utilisant des noms de machine, serveurs : DNS (port = 53) remarque : un DNS peut jouer le rle de client pour un autre DNS protocole : FTP clients : outils de gestion de transferts FTP (Ws_FTP, FileZilla, etc.) serveurs : serveurs FTP (port = 21-22) protocole : HTTP clients : navigateurs web (Mozilla, IE, Firefox, Opera...) serveurs : serveur web (IIS, Apache, ...) (port = 80)

Transfert de fichiers

Web

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

17

Client / serveur : exemples (2/2)

Machine connecte au rseau


protocole : ping clients : ping serveurs : serveurs ping Protocole : XMPP (Extensible Messaging and Presence Protocol) client : logiciels de messagerie instantane Jabber, Google talk, GAIM, ichat Serveurs : serveurs XMPP protocoles : envoi de fichier, change dinformations, ... client : client P2P serveurs : client P2P, serveurs de mtadonnes
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Chat

Peer to peer

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

18

Client / serveur : remarques

Un programme serveur

tourne en permanence, attendant des requtes peut rpondre plusieurs clients en mme temps machine robuste et rapide, qui fonctionne 24h/24 grande mmoire, disques suffisants scurit des disques etc. prsence dadministrateurs rseau pour grer les serveurs

Ncessit

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

19

Architecture client / serveur

Des changes entre programmes sur rseau de machines suivant les principes client / serveur des machines serveur peu nombreuses des postes clients pour les diffrents utilisateurs Fiabilit et avantages (cf. Comment a marche ? ) Ressources centralises : les serveurs sont au centre du rseau, grent les ressources communes tous les utilisateurs, et permettent d'viter les problmes de redondance et de contradiction Meilleure scurit : faible nombre de points dentre pour l'accs aux donnes Administration centralise au niveau des serveurs : les clients ne sont pas des ressources critiques Rseau volutif : ajouter/enlever des clients sans perturber le rseau Inconvnients Cot lev des machines serveurs, car fiabilit vitale

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

20

Scurit des changes rseau

Protection des donnes qui circulent

Cryptage des donnes Identification Firewall Antivirus

Protection des donnes sur les machines

Protection des attaques


Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

21

Notion de session

Session

Connexion maintenue entre un logiciel client et un serveur Par exemple identification sur un intranet, navigation sans donner nouveau mon login/mdp le lien entre le client et le serveur est maintenu mme quand il ne se passe rien Une session est en gnral coupe si elle dure trop longtemps Single-sign-on : gestion de plusieurs sessions sur des sites / serveurs diffrents

Remarque

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

22

Echanges sur le web : HTTP


HyperText Transfert Protocol

Dfini par le W3C (World Wide Web consortium)

La plupart des URL Envoi de documents web


dun serveur web (serveur HTTP) vers un client web (navigateur) Requte du client au serveur

Principe

demander une ressource web (page, image, service) envoyer une ressource (page web, image, rponse)

Rponse serveur au client

HTTP 1.0 HTTP 1.1

gre les sessions (permet de garder une connexion)

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

23

HTTP : requtes / rponses

Rfrence

RFC 2616 (Request For Comments =/= standard de fait) Contenu de la requte (type + URI + version protocole) En-ttes Ligne vide (indique fin de requte) Code rponse (version HTTP + code + chaine) En-ttes Ligne vide (indique fin en-tte) Contenu de la rponse (souvent le document quon veut)

Requte client

Rponse serveur

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

24

HTTP requtes / rponses

Requtes

GET : demande de document ou de service POST : demande de service avec envoi de paramtres HEAD : demande dinformation concernant un document ... Codes 2xx : succs

Rponses

200 : ok 304 : document inchang 401 : non autoris 404 : inexistant 500 : erreur dans lexcution dun service 505 : version HTTP non supporte

3xx : redirection

4xx : erreur client 5xx : erreur serveur


Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

25

En-ttes de requtes

From : adresse email


Non envoye par la majorit des clients pour des raisons de confidentialit Exemples audio/mid, image/jpeg application/pdf Exemples : compress, x-gzip, x-zip En ralit, nest pratiquement jamais utilis Permet de rpondre diffremment suivant le client Ne devrait pas tre le cas (car il y a des normes qui devraient tre respectes par tous les clients) Peut tre utile pour faire des statistiques de parcours dans le site Niveau faible de scurit (tout passe en clair) Ne transmet la page que si elle a t modifie depuis la date spcifie Utile pour les caches
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Accept : liste de types MIME

Accept-Encoding : liste de mthodes de codage MIME


Accept-Langage : liste des langues acceptes User-Agent : lidentification du logiciel client

Referer : page do lon vient


Autorization : login password If-Modified-Since : date etc.

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

26

En-ttes de rponses

Server : type du serveur Date : date du traitement de la requte Last-Modified : date

Utile pour le cache Doit faire partie en thorie de la liste des types accepts dans la requte (Accept) On peut savoir quand (et si) le transfert est fini Permet au navigateurs dindiquer des barres de progression Non obligatoire Doit faire partie en thorie des mthodes spcifies dans la requte (AcceptEncoding)

Content-Type : type MIME du document renvoy

Content-length : longueur des donnes (octets)


Content-Encoding : encodage MIME

Content-Langage : langue etc.


CM3 : Architecture client/serveur Yannick Pri 2007/2008

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

27

Exemple
eguerin >telnet bat710.univ-lyon1.fr 80 Trying 134.214.88.10... Connected to bat710.univ-lyon1.fr. Escape character is ^]. HEAD / HTTP/1.1 Host: www710.univ-lyon1.fr Connection: close HTTP/1.1 200 OK Date: Mon, 09 Sep 2002 14:50:22 GMT Server: Apache/1.3.9 (Unix) Debian/GNU Last-Modified: Thu, 11 Jul 2002 09:36:01 GMT ETag: "27ec6-1811-3d2d5181" Accept-Ranges: bytes Content-Length: 6161 Connection: close Content-Type: text/html; charset=iso-8859-1 Connection closed by foreign host. eguerin >

Allons voir
Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires CM3 : Architecture client/serveur Yannick Pri 2007/2008

28

Interrogation de catalogues Z39.50 : principes


Base de donnes bibliographiques htrognes Serveur Z39.50 = passerelle


traduction des requtes Z39.50 dans le langage de la base traduction des rponses de la base suivant le protocole Z39.50

Dialogue client/serveur suivant Z39.50 Le client Z39.50 envoie les requtes et affiche les rponses
(ZIG : Z39.50 tutorial)
CM3 : Architecture client/serveur Yannick Pri 2007/2008

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

29

Remerciements

Certaines diapositives proviennent de cours du Permis de Conduire Informatique (Universit Lyon 1 http://pci.univlyon1.fr). Dautres sont inspires du cours Web avanc , IUT A, UCBL (Eric Gurin)

Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

CM3 : Architecture client/serveur Yannick Pri 2007/2008

30

Vous aimerez peut-être aussi