Sunteți pe pagina 1din 5

CM3 : Architecture client/serveur

Architecture client-serveur
Yannick Pri UFR Informatique Universit Claude Bernard Lyon 1

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

2004-2005 Master SIB M1 UE 3 / Bloc 4 Cours 3

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 2004/2005

Rseau : pour quoi faire ?


Echanger et partager des informations
transferts de fichiers/donnes accs des fichiers/donnes distants...

Rseau : cest quoi ?


Des machines et leurs programmes (= nuds du rseau)
Ordinateurs rseau (carte rseau + systme exploitation rseau) Priphriques rseau (imprimante...) Matriel rseau spcialis

Grer et partager des ressources


imprimante partage puissance de calcul stockage et sauvegarde...

Des connexions entre les machines (= branches du rseau)


par cable (fibre optique, RJ45, cuivre...) par radio (ondes hertziennes, infrarouge...)

Communiquer
courrier lectronique chat publication en ligne...

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 2004/2005

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 2004/2005

Rseau local / Internet


Rseau local
centr autour dune organisation (universit, entreprise, famille) gr par celle-ci

Communiquer entre humains / programmes / machines

utilisateurs

Internet = rseau des rseaux mondial


ensemble de rseaux locaux relis par des backbones (pine dorsale)
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 2004/2005

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 2004/2005

A tous les niveaux, des protocoles


Dfinition
Ensemble de rgles et de procdure respecter pour pouvoir changer des donnes sur un rseau
Remarque : exemple de la vie courante
Ca va ? ( ) / Oui ( ) / Jai pas entendu ( ) / Je rpte : Oui ( )

Protocoles de communication
But
comprhension entre machines / logiciels communications indpendantes du systme dxploitation ou de la plate-forme limitation des erreurs/risques durant la transmission

Exemples diffrents niveaux


Niveau programmes (A B)
Tu fonctionnes ? ( ) / Oui ( ) /Envoie-moi le fichier toto.doc ( ) / Ok cst parti ( ) / toto.doc ( ) / Bien reu ( ) / Au revoir ( )

Protocole pour lchange de messages


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

Niveaux systme dxploitation


Toi, systme dxploitation de la machine machine1.univ-lyon1.fr, passe le message Tu fonctionnes ? au programme qui coute sur le port 3422 ( )

Modle OSI (Open System Interconnection)


dcoupe le processus de transmission en 7 couches chaque couche est responsable de lun des aspects de la communication en rseau
7
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 2004/2005

Niveau cartes
Toi carte rseau, regarde passer des paquets de donnes sur le cable, attrape ceux qui sont pour toi, et passe-en le contenu au systme dxploitation
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 2004/2005

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 2004/2005

Le modle OSI les 7 couches


Employeur lire Format de ce type de lettre Lettre de motivation ouvrir
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 9
Master SIB M1 SIB 3 : traitement, exploitation de l'information et systmes d'information Bloc 4 : architecture et fonctionnement des systmes dinformation documentaires

Candidature spontane

Application

Prsentation Session Transport Rseau

Envoi/rception courrier

Enveloppe dlivrer

Codification interne de La Poste

Centre de distribution rcuprer

Liaison de donnes

Physique

CM3 : Architecture client/serveur Yannick Pri 2004/2005

10

Protocoles de lInternet
Niveau OSI rseau
IP (Internet Protocol)
adressage (routage) des informations identification des machine

Identification de machines sur Internet


Une machine = un numro Adresse IP universelle unique
TCP/IP : base de lInternet

Niveau OSI transport / session


TCP (Transmission Control Protocol)
transfert dinformation, contrle des transmission

4 nombres de 8 bits (4 octets) spars par des points ex : 134.214.128.17

Niveau OSI application


FTP (File Transfer Protocol)
transfert de fichiers

Classes dadresses / organisations


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)

HTTP (HyperText Transfer Protocol)


transfert dinformations sur le web

DNS (Domain Name Server protocol)


conversion du nom des ordinateurs connects au rseau en adresses IP

Remarque : IPV6
16 octets commence se mettre en place

etc.
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 2004/2005

11

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 2004/2005

12

Noms de ressources sur Internet


Ide : associer ladresse IP un nom de machine
ex. lisiperso15.univ-lyon1.fr # 134.214.88.239

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

Nom de machine
dcompos hirarchiquement
domaine (critre gographique, institutionnel, organisationnel) sous-domaine (ventuellement) nom local de la machine

exemples
ligimpc13.univ-lyon1.fr www.berkeley.edu ftp.berkeley.edu www.education.gouv.fr

Attribution
ICANN : Internet Corporation for Assigned Names and Numbers
.gov, .edu, etc.

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


www.ens-lyon.fr ? 140.77.167.3
dns.univ-lyon1.fr

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 2004/2005

DNS

www.ens-lyon.fr ? 140.77.167.3

DNS

13

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 2004/2005

14

Client / serveur
Service
comportement dun programme qui peut rendre service dautres programmes
exemple : service de traduction noms/adresses IP = service DNS

Notion de socket
Port
Entre rseau de la machine sur laquelle
un serveur coute en attendant des connexions / requtes un client va se connecter

Socket
Tuyau entre deux programmes Quintuplet : (machine1, port1, protocole transmission, port2, machine2)

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

Exemple
Client sur machine 1 appelle serveur sur machine 2 / port 53. La connexion stablit, le canal de communication est ouvert Il devient possible de communiquer suivant un protocole application (par exemple DNS)

Client
programme demandant un service un autre programme ET machine sur laquelle tourne ce programme client

DNS

Serveur
programme fournissant des services dautres programme ET machine sur laquelle tourne ce programme 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 2004/2005

2449

Machine1

TCP

53

machine2

15

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 2004/2005

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

Client / serveur : exemples (2/2)


Machine connecte au rseau
protocole : ping clients : ping serveurs : serveurs ping

Transfert de fichiers
protocole : FTP clients : outils de gestion de transfets FTP (Ws_FTP, FileZilla, etc.) serveurs : serveurs FTP (port = 21-22)

Peer to peer
protocoles : envoi de fichier, change dinformations, ... client : client P2P serveurs : client P2P, serveurs de mtadonnes

Web
protocole : HTTP clients : navigateurs web (Mozilla, IE, Firefox, Opera...) serveurs : serveur web (IIS, Apache, ...) (port = 80)

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 2004/2005

17

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 2004/2005

18

Client / serveur : remarques


Un programme serveur
tourne en permanence, attendant des requtes peut rpondre plusieurs clients en mme temps

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

Ncessit
machine robuste et rapide, qui fonctionne 24h/24
grande mmoire, disques suffisants scurit des disques etc.

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 dntre 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

prsence dadministrateurs rseau pour grer les serveurs

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 2004/2005

19

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 2004/2005

20

Scurit des changes rseau


Protection des donnes qui circulent
Cryptage des donnes

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

Protection des donnes sur les machines


Identification

Protection des attaques


Firewall Antivirus

Une session est en gnral coupe si elle dure trop longtemps

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 2004/2005

21

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 2004/2005

22

Echanges sur le web : HTTP


HyperText Transfert Protocol
Dfini par le W3C (World Wide Web consortium)

HTTP : requtes / rponses


Rfrence
RFC 2616 (Request For Comments =/= standard de fait)

Envoi de documents web


dun serveur web (serveur HTTP) vers un client web (navigateur)

Requte client
Contenu de la requte (type + URI + version protocole) En-ttes Ligne vide (indique fin de requte)

Principe
Requte du client au serveur
demander une ressource web (page, image, service)

Rponse serveur au client


envoyer une ressource (page web, image, rponse)

Rponse serveur
Code rponse (version HTTP + code + chaine) En-ttes Ligne vide (indique fin en-tte) Contenu de la rponse (souvent le document quon veut)

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 2004/2005

23

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 2004/2005

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

En-ttes de requtes
From : adresse email
Non envoye par la majorit des clients pour des raisons de confidentialit

Accept : liste de types MIME


Exemples audio/mid, image/jpeg application/pdf

Rponses
Codes 2xx : succs 200 : ok 3xx : redirection 304 : document inchang 4xx : erreur client 401 : non autoris 404 : inexistant 5xx : erreur serveur 500 : erreur dans lexcution dun service 505 : version HTTP non supporte

Accept-Encoding : liste de mthodes de codage MIME


Exemples : compress, x-gzip, x-zip

Accept-Langage : liste des langues acceptes


En ralit, nest pratiquement jamais utilis

User-Agent : lidentification du logiciel client


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)

Referer : page do lon vient


Peut tre utile pour faire des statistiques de parcours dans le site

Autorization : login password


Niveau faible de scurit (tout passe en clair)

If-Modified-Since : date
Ne transmet la page que si elle a t modifie depuis la date spcifie Utile pour les caches

etc.
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 2004/2005

25

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 2004/2005

26

En-ttes de rponses
Server : type du serveur Date : date du traitement de la requte Last-Modified : date
Utile pour le cache

Exemple
eguerin >telnet bat710 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 >

Content-Type : type MIME du document renvoy


Doit faire partie en thorie de la liste des types accepts dans la requte (Accept)

Content-length : longueur des donnes (octets)


On peut savoir quand (et si) le transfert est fini Permet au navigateurs dindiquer des barres de progression Non obligatoire

Content-Encoding : encodage MIME


Doit faire partie en thorie des mthodes spcifies dans la requte (AcceptEncoding)

Content-Langage : langue etc.

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 2004/2005

27

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 2004/2005

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

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)

Dialogue client/serveur suivant Z39.50 Le client Z39.50 envoie les requtes et affiche les rponses
(ZIG : Z39.50 tutorial)
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 2004/2005 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 2004/2005

29

30

S-ar putea să vă placă și