Environnement Client-Serveur

Dimension: px
Commencer à balayer dès la page:

Download "Environnement Client-Serveur"

Transcription

1 Environnement Client-Serveur This work is licensed under a Creative Commons Attribution-Share Alike 2.0 France. See for details

2 Sources Le Web (sic!): Livres : Distributed Systems: Concepts and Design George F. Coulouris, Jean Dollimore, et Tim Kindberg (référencé par 'DS1' dans les slides) Sources Autres : Distributed Systems: Principles and Paradigms Andrew S. Tanenbaum et Maarten van Steen (référencé par 'DS2' dans les slides)

3 Plan (Points Importants) Origines (IPC) Critères Problèmes spécifiques à la distribution Architectures Terminologie Architecture logicielle Architecture système Plan Introduction

4 Plan (Points Importants) Plan Communications Réseau physique (Ethernet, Wi Fi, ATM) Protocoles : IP, UDP, TCP, HTTP Couches réseaux (ISO/OSI) RPC/RMI Objectif transparence Problématiques Marshalling/Serialisation Principes (Stub/proxy, diagramme de classes) Architecture classes (téléchargement de code)

5 Plan Introduction Introduction 5

6 client-serveur: origine Problématique initiale On cherche à faire communiquer des processus entre eux Introduction Inter process communication (IPC) Exemples : chat : stallman torvalds mail : stallman torvalds Logging centralisé : toutes les applications écrivent leur journaux dans /var/log Solutions?

7 client-serveur: origine IPC: solutions? On a pas précisé que les processus étaient sur des machines différentes! ; ) Les systèmes multi utilisateurs existent depuis les années 1960 Introduction CTSS puis Multics et enfin UNIX Pourquoi une bibliothèque (API) ne suffit elle pas?

8 client-serveur: origine Introduction Bibliothèque (API) : mail : écriture du message de stallman directement dans la mailbox de torvalds log : écriture du message directement dans /var/log Problème de droits un processus est lancé avec des droits d'accès qui sont liés à l'utilisateur Le code dans la lib aura les même droits que le processus stallman ne peut pas écrire dans la mailbox de torvalds

9 IPC (http://en.wikipedia.org/wiki/interprocess_communication) Introduction fichiers process stallman écrit un fichier dans un rèpertoire process torvalds lit le contenu du fichier Attention aux droits d'accès Attention aux accès concurrents Efficace?

10 IPC (http://en.wikipedia.org/wiki/interprocess_communication) Introduction fichiers mappés en mémoire (man mmap) Accès au fichier directement (plus de read/write) Private (COW) ou Shared mode Attention aux droits d'accès (rwx) Attention aux accès concurrents... Trés efficace.

11 IPC (http://en.wikipedia.org/wiki/interprocess_communication) signaux (man 7 signal) limité : pas de données associées au signal efficace Introduction

12 IPC (http://en.wikipedia.org/wiki/interprocess_communication) tube /pipe (man 7 pipe) unidirectionnel concept en flux (stream) Introduction il n'y a pas de notion de message Attention aux accès concurrents! limité : lecture/écriture entre processus de même parents

13 IPC (http://en.wikipedia.org/wiki/interprocess_communication) Introduction tube nommés / fifo (man 7 fifo) même fonctionnement que les tubes permet à des processus sans relations filiales de communiquer Très efficace utilisé massivement par exemple sur Tera 100 (1er Europe, 6ème au Top500 en )

14 IPC (http://en.wikipedia.org/wiki/interprocess_communication) mémoire partagée SYSV (man shmget)/posix (shm_overview) Principe: Introduction Un processus créé un segment de mémoire partagée Il diffuse la clé d'accès Les autres processus accédent à cette mémoire comme d'habitude Très efficace. Attention aux accès concurrents sémaphores (man semget/sem_overview)

15 IPC (http://en.wikipedia.org/wiki/interprocess_communication) file de messages vieux : SYSV (msgget), récent : POSIX (msg_overview) Principe: Introduction Pas vraiment équivalent au FIFO send/receive support des priorités orienté message les priorités peuvent changer l'ordre d'arrivée Persistence niveaux OS tant que l'os n'est pas rebooté, la file existe

16 Systèmes distribués Souvent, les processus sont distants Pourquoi limite t'on la portée de cette définition aux processus? Introduction dans ce cas, on parle de système distribués quid du matériel? plusieurs ordinateurs imprimantes, scanner,...

17 Systèmes distribués Introduction Sinon, un ordinateur serait lui même un système distribué : nombreux composants CPU, RAM, Disques, Écran, Carte réseau L'OS rend le tout transparent : il donne l'illusion d'un tout cohérent C'est quoi l'os? kernel? shell? GUI? Transparence : élément très important

18 Systèmes distribués (DS1: 1.1 Introduction) On considère qu'un système est distribué s'il vérifie un certain nombre de critères Introduction

19 Systèmes distribués : critères (DS1: 1.1 Introduction) Parallélisme : les processus s'éxecutent en parallèle Attention : parallélisme!= concurrent Introduction parallélisme sur une machine multi core ou SMP concurrence sur une machine mono core même si les architectures modernes savent exécuter des instructions bas niveaux simultanément Le parallélisme devient la norme avec les architectures multi core Cela implique t'il qu'un système distribué est au moins composé de plusieurs CPUs?

20 Systèmes distribués : critères (DS1: 1.1 Introduction) Introduction Pas d'horloge globale le temps ne s'écoule pas exactement de la même manière pour chaque processus les processus ne peuvent pas se baser sur le temps pour se synchroniser : ils doivent communiquer Ce critère écarte les ordinateurs de la définition

21 Systèmes distribués : critères (DS1: 1.1 Introduction) Pannes indépendentes un processus peut ne plus répondre indépendemment des autres Introduction le réseau est tombé le processus s'est craché la machine s'est planté... Difficile de distinguer les différents cas Ce critère écarte les ordinateurs de la définition

22 Systèmes distribués (DS1: 1.1 Introduction) Quels sont les intérêts des systèmes distribués? Introduction

23 Intérêt des systèmes distribués (DS1 : 1.1 Introduction) Partage de ressources : matérielle : Introduction imprimantes (CUPS) disques (NAS, SAN), CPU (SLURM),... logicielles : fichiers (NFS, SMB, Emule,...), base de données (PostgresQL, MySQL, ) web services (google map, amazon S3,...)

24 Intérêt des systèmes distribués Performance augmenter le nombre d'utilisateurs/seconde Introduction diminuer la charge sur une ressource donnée Augmente t'on d'autant le nombre d'utilisateurs par seconde en augmentant le nombre de machines? Si le goulot d'étranglement est la base de donnée, il faut distribuer cette base Tolérance aux pannes Si une panne survient, le service est dégradé seulement Mais il fonctionne toujours

25 Examples (DS1 : 1.2 Examples) Internet est il un système distribué? Introduction

26 Examples (DS1 : 1.2 Examples) Internet est il un système distribué? Introduction Non : il n'est pas une collection de processus! Web, mail, bittorrent sont des systèmes distribués Web : firefox communique avec httpd mail : kmail communique avec sendmail BitTorrent : emule communique avec emule L'avenir : ordinateurs obsoletes (pour le grand public) ultra connectés : webphone, tv, ipad, console,...

27 Problèmes spécifiques à la distribution (DS1 : 1.4 Challenges) Communication inter processus distants Même problématique que les IPC locales C'est le cœur d'un système distribué Connaissance réseau indispensable Introduction On s'appuiera sur les couches réseaux sous jacente (modèle OSI,...) On utilisera les couches hautes pour les garanties ou les services (ex: HTTP, FTP) On utilisera les couches basses pour les performances (ex: UDP) Dans la grande majorité des cas, on s'appuie toujours au moins sur IP

28 Problèmes spécifiques à la distribution (DS1 : 1.4 Challenges) Introduction Hétérogénéité Réseaux (Ethernet, ATM, Token Ring, IB) Matériel (x86, SPARC, Power, ARM) OS (Linux, Unix, Windows) Langages (C, C++, C#, Java, Python, Ruby) Implementations (IE vs Netscape, Outlook vs...) Le middleware est une couche logicielle qui masque l'hétérogénéité CORBA, J2EE,.NET sont les plus connus

29 Problèmes spécifiques à la distribution (DS1 : 1.4 Challenges) Introduction Ouverture capacité à étendre le sytème avec de nouvelles ressources matérielles et/ou logicielles capacité à supporter une nouvelle implémentation d'une partie du système sans remettre en cause l'ensemble permet de changer de fournisseur Publication d'interface claire et concise masquant les détails sous jacent Utilisation des standards lorsqu'ils existent (RFC)

30 Problèmes spécifiques à la distribution (DS1 : 1.4 Challenges) Sécurité Les processus échangent des messages sur un réseau généralement considéré non sécurisé Introduction Identification + Chiffrement Denial of Service : un composant matériel est surchargé de requête, il ne peut plus répondre Code mobile : un code est recu dans un message, peut on l'exécuter Un pare feu est un pré requis, mais il n'est pas suffisant

31 Problèmes spécifiques à la distribution (DS1 : 1.4 Challenges) Introduction Scalabilité Capacité du système à supporter une augmentation significative des ressources et des utilisateurs Compromis coût/performance à trouver Choisir des limites acceptables dans le système Éviter les goulots d'étranglements nombres d'adresses IPv4, numéro de tél sur 8 chiffres... /etc/hosts centralisé versus DNS Réplication, cache,...

32 Problèmes spécifiques à la distribution (DS1 : 1.4 Challenges) Introduction Pannes partielles Une partie du système peut tomber en panne Détection des pannes (ex : checksum) Masquage des pannes (ex : retransmission TCP) Tolérance aux pannes (ex : timeout client web) Récupération après panne (ex : journalisation) Redondances des ressources (ex : IP, DNS, RAID) La virtualisation peut aussi offrir une solution

33 Problèmes spécifiques à la distribution (DS1 : 1.4 Challenges) Parallélisme/Concurrence Plusieurs processus s'exécutent en parallèle Introduction ex : plusieurs clients achètent le même livre sur amazon. Le système doit garantir que les clients recoivent bien leurs livres, et qu'ils payent bien (même lorsqu'il ne reste plus qu'un seul livre en stock). Programmation concurrente complexe indéterminisme rend la mise au point très difficile (ex : disparition de bug au débogage)

34 Problèmes spécifiques à la distribution (DS2 : Transparency) Transparence Leslie Lamport (LaTeX) : "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." Introduction Andrew Tanembaum (minix) : "A distributed system is a collection of independent components that appears to its users as a single coherent system) La transparence est une notion très importante en informatique distribuée.

35 Problèmes spécifiques à la distribution (DS2 : Transparency) Introduction Transparence Accès : ressource locale et distante s'accède de la même manière (ex : sshfs, nfs, SPARC vs x86) Localisation : masque la localisation (ex : URL) Mobilité : masque le mouvement des ressources et des utilisateurs (ex: téléphone mobile) Concurrence : masque la concurrence d'accès aux ressources (ex : database update) Réplication : masque l'utilisation de réplicas (RAID) Panne : masque les pannes et leurs récupérations (mail) Persistence : masque ressource en RAM, disque, bande, etc. (ex : HTML page)

36 Problèmes spécifiques à la distribution (DS2 : Transparency) Introduction Transparence Accès : ressource locale et distante s'accède de la même manière (ex : sshfs, nfs, SPARC vs x86) Localisation : masque la localisation (ex : URL) Mobilité : masque le mouvement des ressources et des utilisateurs (ex: téléphone mobile) Concurrence : masque la concurrence d'accès aux ressources (ex : database update) Réplication : masque l'utilisation de réplicas (RAID) Panne : masque les pannes et leurs récupérations (mail) Persistence : masque ressource en RAM, disque, bande, etc. (ex : HTML page)

37 Plan Architectures Architectures 37

38 Terminologie (DS1 : 2.2 Architectural Models) L'absence d'horloge globale dans un système distribué impose aux processus de communiquer afin de se synchroniser pourquoi? Architectures

39 Terminologie (DS1 : 2.2 Architectural Models) Les processus communique par l'envoi de messages. On distingue les serveurs : ils offrent un service ils sont passifs, attendant la réception de messages provenant de processus clients les clients : Architectures ils accèdent à des services offerts par des serveurs en envoyant des messages (requêtes) ils sont actifs

40 Terminologie (DS1 : 2.2 Architectural Models) Pourquoi parle t'on de serveur matériel? "Le serveur est tombé en panne" "Il faut augmenter la RAM du serveur" Architectures

41 Terminologie (DS1 : 2.2 Architectural Models) Pourquoi parle t'on de serveur matériel? "Le serveur est tombé en panne" Architectures Dans l'industrie, les processus serveurs sont passifs, mais pas parresseux! Ils fonctionnent en permanence Ils sont souvent critiques On place donc souvent un processus serveur sur une machine dédiée Performance : pas de partage des ressources "Il faut augmenter la RAM du serveur" Sécurité : si la machine plante, un seul serveur est indisponible C'est un abus de langage!

42 Terminologie (DS1 : 2.2 Architectural Models) Quelques exemples : client ftp serveur vsftpd client web firefox, serveur web apache client mail kmail, serveur mail sendmail quid des webmails (ex : gmail)? Un processus client peut réaliser de nombreuses requêtes à différents serveurs wget Architectures 1 requête DNS (minimum) n requêtes HTTP par lien mentionné dans la page

43 Terminologie (DS1 : 2.2 Architectural Models) Architectures Un processus serveur peut être aussi client : client web serveur web serveur base de données Un serveur peut lui aussi faire de nombreuses requêtes client webmail serveur web userdb serveur de mail serveur d'images Il peut donc être tour à tour client de différents serveurs. Un processus est un serveur s'il offre un service spécifique pour des clients potentiels Cela ne l'empêche donc pas d'être un client vis à vis d'un autre service autre que celui qu'il fournit pourquoi cette dernière précision?

44 Terminologie (DS1 : 2.2 Architectural Models) Architectures On distingue les processus qui n'ont pas de rôle particulier vis à vis du service : ils sont à la fois client et serveur du même service C'est le modèle pair à pair (peer2peer) partage de fichiers : emule, BitTorrent partage de CPU : news : USENET pour la com. inter serveur mail : Mail Transfert Agent pour la com inter serveur téléphonie : Skype Trés efficace pour certaines applications Au cœur de la problématique de la "neutralité du réseau" les FAI cherchent à filtrer

45 Architecture Logicielle (DS1 : 2.2 Architectural Models) Décrit la structure d'un logiciel en terme de module ou de couche d'abstraction. Exemple dans le cas local : Architectures

46 Architecture Logicielle (DS1 : 2.2 Architectural Models) Dans le cas distribué, on définit les éléments suivants : la plateforme Solaris/SPARC, Linux/x86, NetBSD/x86, AIX/Power le middleware CORBA, J2EE,.NET les applications distribuées Architectures

47 Architecture Logicielle (DS1 : 2.2 Architectural Models) Architectures La plateforme fournit le stack TCP/IP, le kernel, le matériel Le middleware s'appuie sur la plateforme pour fournir des abstractions de haut niveaux facilitant le développement d'applications distribuées mécanismes de communication point à point mécanismes de communication groupés mécanismes de connexions vers les bases de données mécanismes transactionnels mécanismes pour l'authentification, l'autorisation...

48 Architecture Logicielle (DS1 : 2.2 Architectural Models) Le middleware est limité: principe du bout à bout certaines applications ne peuvent s'appuyer intégralement sur les services du middleware vérification, correction, sécurité à différents niveaux requièrent l'accès à des données de l'application. Ré implémentation dans l'application Architectures Duplication de code dans le middleware Lire : "End to end arguments in system design", Saltzer et al Tendance aujourd'hui à oublier ce principe L'intelligence n'est pas dans le réseau mais dans les terminaux

49 Architecture Système (DS1 : 2.2 Architectural Models) Architectures Définition des rôles des processus serveur de page web, serveur de base de données, serveur d'authentification,... Placement des processus serveur de page web statiques lecture disque rapide serveur de base de données lecture/écriture rapide serveur d'authentification lecture disque rapide serveur de journalisation écriture disque rapide

50 Architecture Système (DS1 : 2.2 Architectural Models) Modèle client serveur classique (vieux ; )) ex : firefox apache nfsd Quelle est l'architecture logicielle? Architectures

51 Architecture Système (DS1 : 2.2 Architectural Models) Mise en œuvre d'une architecture client/serveur classique Sur un linux : mettez en place les serveurs suivants Web Configuration? Client? PostgresQL Configuration? Clients? SSH Configuration système: /etc/sshd/config user: ~/.ssh/config Clients? Architectures

52 Architecture Système (DS1 : 2.2 Architectural Models) Modèle client serveur multiples ex : DNS, NIS Architectures

53 Architecture Système (DS1 : 2.2 Architectural Models) Serveur proxy et cache Nombreux niveaux de cache en pratique Le proxy permet de partager un cache commun Le proxy permet de filtrer/surveiller (avec un firewall) Architectures

54 Architecture Système (DS1 : 2.2 Architectural Models) Architectures Ajouter un proxy au serveur web précédemment installé proxy : squid Fonction cache configuration client Fonction monitoring/limitation filtre dansguardian règles parefeu requise

55 Architecture Système (DS1 : 2.2 Architectural Models) Pair à pair (peer2peer or p2p) Coordination requise entre les processus Scalabilité? Fiabilité? Architectures

56 Architecture Système (DS1 : 2.2 Architectural Models) Network computers La gestion des applications clientes sur chaque ordinateur clients est un vrai challenge mise à jour, sécurité, bugs, configuration, déploiment, coût, Solution : l'ensemble OS + applications est téléchargé depuis un serveur. Architectures Attention aux vocabulaire : client/serveur = machine/process? Exemple : PXE est installé de base sur la plupart des PC aujourd'hui Permet de démarrer depuis le réseau Un disque dur est il requis? Intéressant?

57 Architecture Système (DS1 : 2.2 Architectural Models) Network computers La gestion des applications clientes sur chaque ordinateur clients est un vrai challenge mise à jour, sécurité, bugs, configuration, déploiment, coût, Solution : l'ensemble OS + applications est téléchargé depuis un serveur. Architectures Attention aux vocabulaire : client/serveur = machine/process? Exemple : PXE est installé de base sur la plupart des PC aujourd'hui Permet de démarrer depuis le réseau Un disque dur est il requis? Intéressant? swap, cache

58 Architecture Système (DS1 : 2.2 Architectural Models) Architectures Clients légers (thin clients): extension du network computer Le client ne comporte plus que le minimum écran, clavier, souris, audio, Les applications s'exécutent sur le serveur Seul l'affichage est réalisé sur le client Avantages Administration réduite au strict minimum Inconvénients Peu adapté à la vidéo en raison du débit requis (réseau) Coût d'acquisition très bas Application locales avec disque dur Ex : X Window (vectoriel), VNC (bitmap)

59 Architecture Système (DS1 : 2.2 Architectural Models) L'architecture X Window Le client envoie des requêtes d'affichage Architectures Le serveur exécute ces requêtes sur l'écran auquel il est connecté Client et serveur peuvent être distant Le client est l'application firefox, xterm, kmail, ex: drawline(blue, 0, 0, 640, 480), print("hello") il tourne parfois sur une machine distante Le serveur est le processus X il tourne généralement sur la machine locale Attention à la terminologie : inverse à l'intuition!

60 Architecture Système (DS1 : 2.2 Architectural Models) Exercice X Windows Connectez vous sur une autre machine Faites en sorte que l'affichage apparaisse sur votre écran en passant par SSH sans passer par SSH Faites en sorte que l'affichage de votre client apparaisse sur l'écran de votre voisin Architectures Pré requis? Danger?

61 Architecture Système (DS1 : 2.2 Architectural Models) Mettez en place un serveur de Thin client Utilisez Linux Terminal Server Project (LTSP) Serveur requis Serveur TFTP boot PXE Serveur DHCP adressage réseau Serveur NFS? applications locales Serveur NIS? Architectures identification partagée

62 Architecture Système (DS1 : 2.2 Architectural Models) Codes mobiles Le client télécharge le code à exécuter depuis un serveur (de code) Le code téléchargé peut utiliser les ressources locales du client (écran, souris, clavier, disque, réseau) interactivité, performance Le code téléchargé peut contacter à son tour d'autres serveurs Le code téléchargé peut devenir un serveur à son tour Architectures Des idées d'exemples?

63 Architecture Système (DS1 : 2.2 Architectural Models) Codes mobiles Le client télécharge le code à exécuter depuis un serveur (de code) Le code téléchargé peut utiliser les ressources locales du client (écran, souris, clavier, disque, réseau) interactivité, performance Le code téléchargé peut contacter à son tour d'autres serveurs Le code téléchargé peut devenir un serveur à son tour Architectures Des idées d'exemples? Les vers/virus et autres piraterie! ; ) Applets, javascript, flash,...

64 Architecture Système (DS1 : 2.2 Architectural Models) Architectures Quelques exemples de migration migration d'objets /pages : quand une thread référence un objet/une adresse mémoire qui n'est pas présente, on rappatrie l'objet/la page, avant de continuer migration de flux : une thread continue son exécution sur une autre machine lors d'un appel de procédure/méthode distant migrationde threads : la thread stoppe son exécution à la demande (extérieure), son contexte d'exécution est transféré sur un autre serveur, puis redémarrée par ce dernier. Problèmes de sécurité évidents

65 Migration d'objets TCP RMI o.m( ) Migration de flux (faible et proactive) Migration de threads (forte et réactive)

66 Plan Communications Communications 66

67 Topology Réseau II. History/Network (http://en.wikipedia.org/wiki/network_topology)

68 Communication point à point Logiciel Logiciel Périphérique réseau Périphérique réseau Réseau

69 Communications Communication point à point? Abstraction :

70 Datagrammes Communiquer = envoyer des données Une trame : Communications Un paquet de bits Que doit contenir une trame?

71 Trame : contenance Communications Source : de qui provient la trame Destination : à qui cette trame est destinée? Données : les données à transmettre

72 Exemple : le protocole Ethernet Protocole standard très utilisé Communications Type anneau 10 Mb/s, 100 Mb/s, 1 Gb/s, 10Gb/s Bon rapport qualité prix Une carte ethernet = un numéro MAC Attribué par le constructeur /sbin/ifconfig donne le numéro MAC

73 Protocole Ethernet Une trame ethernet contient (entre autres) : Communications Le numéro MAC source Le numéro MAC destination Les données à transférer Simplicité du protocole (modèle humain) On prend la parole S'il y a collision, on recommence plus tard

74 Communications Autres protocoles Token ring ATM Infiniband PPP, SLIP (ligne téléphonique)...

75 Problèmes rencontrés Taille des données limites de taille des trames notion de datagramme Communications paquet de données = tableau d'octets découpage en trames de taille convenable Ethernet permet à une machine d'envoyer une trame à une autre machine du même réseau En faite, communication de carte réseau à carte réseau Quel intérêt pour une machine d'avoir plusieurs cartes réseau?

76 Communication inter-réseaux Communications Différence entre un internet et l'internet un internet : un réseau de réseaux Internet : le réseau des réseaux à l'échelle mondiale Intranet : réseau interne à une entreprise Extranet : exportation sécurisée d'un intranet?

77 Problèmes liés aux communications internet Hétérogénéité des réseaux Adressages différents Communications Routage numéro MAC sur Ethernet pour envoyer un paquet sur un autre réseau, quelle route prendre? Passage à l'échelle : nommage comment trouver une ressource du réseau global?

78 Solution : protocole universel Transfert de datagrammes (paquets) Adressage universel Communications Association adressage physique/logique ARP/RARP (Unix : arpwatch) Notion de passerelle (gateway) Existe sur plusieurs réseaux Elle s'occupe du découpage en trames de taille convenable Notion de routeurs S'occupe de transmettre un datagramme d'un réseaux à un autre

79 Communications Communication point à point Logiciel Logiciel Protocole Universel Protocole Universel Périphérique réseau Périphérique réseau Réseau

80 Architecture en couche (http://en.wikipedia.org/wiki/osi_model) II. History/Network On divise le système réseau en couches À l'intérieur de chaque couche une ou plusieurs entités implémentent sa fonctionnalité Chaque entité interagit directement avec la couche immédiatement en dessous et fournit des fonctionnalités à la couche immédiatement au dessus Les protocoles permettent à une entité d'une machine d'interagir avec l'entité correspondante de même niveau d'une autre machine

81 Architecture en couche (http://en.wikipedia.org/wiki/osi_model) II. History/Network Abstraction: Communication de processus à processus Implementation: Communication de couche à couche

82 Routage Communications Différencier les messages destinés : au réseau local, à l'extérieur du réseau local Algorithmique compliqué Quelle route est la plus efficace?

83 Le nommage Communications Adressage numérique Idéal pour les machines Fastidieux pour les humains Associer un nom à une adresse Statiquement Dynamiquement

84 Exemple : Le protocole Internet IP (Internet Protocol) Communications Origine Arpanet (1970!!) : Defense Advanced Research Agency : USA Adressage IPv4 : 32 bits ~ 4 Milliards de machines insuffisants aujourd'hui IPv6 : 128 bits ~ adresses! ICMP : protocole de vérification des datagrammes

85 Internet Topology ( ) Communications Asia Pacific Europe Middle East Central Asia Africa North America Latin American Caribbean RFC1918 Unknown

86 Adressage IPv4 Numéro IP : w.x.y.z Communications Associé à un périphérique réseau et non à une machine!! 0 w,x,y,z 255 Nommage dynamique : DNS Notion de domaine Notion de hiérarchie

87 Applications Communications Nslookup/host Quel nom est associé à une adresse? Quelle adresse est associée à ce nom? Ping Une adresse répond-elle? Traceroute Utilisation du TTL (Time To Live)

88 Question Pourquoi parle t'on des protocoles bas niveaux dans un cours sur les systèmes distribués? Communications La transmission de datagrammes illustre quelques uns des problèmes inhérents aux systèmes distribués Les propriétés de la transmission de datagrammes des protocoles bas niveaux affectent les protocoles de plus haut niveau Terminologie indispensable

89 Problèmes liés au protocole universel Plusieurs processus au sein d'un même système Communications Système multi tâches Qui doit recevoir les requêtes : Serveur Web? Serveur FTP? Serveur de courrier? ICMP ne possède pas ce problème Une erreur réseau s'adresse au gestionnaire de réseau et non à un processus

90 Solutions : protocole datagramme Communications Communications en mode messagerie (datagramme) Notion de ports

91 Notion de ports Le système maintient une table d'association port serveur Communications Comment un client connaît il le port d'un serveur? Certains ports doivent être standardisés UNIX : /etc/services Serveur de recherche (lookup) dilemme de la poule et de l'oeuf Ex : SUN RPC portmapper

92 Communications Communication point à point Logiciel Logiciel Protocole datagramme Protocole datagramme Protocole Universel Protocole Universel Périphérique réseau Périphérique réseau Réseau

93 Communications Exemple : UDP Utilise le protocole IP Mode datagramme (User Datagramme Protocole) Apporte la notion de port Au dessus de IP : UDP/IP

94 Les couches à l'œuvre Exemple: UDP Communications Application Layer Data Transport Layer UDP UDP Data Header Network Layer Link Layer IP Header Frame Header IP Data Frame Data Frame Trailer

95 Communications Exemple UDP : Bonjour Monde Développer en Java un programme qui envoi "Bonjour monde" à un autre programme en utilisant le protocole UDP. Le programme "receveur" doit afficher ce qu'il reçoit.

96 Remise de projets : Attendu Envoyer un fichier archive nom tpx.tar.gz le contenu doit être votre projet eclipse bin/ contient tous les *.class src/ contient tous les *.java Packaging java : tout est dans un package exo En général : exo.server et exo.client java cp bin/ exo.server et java cp bin/ exo.client doivent afficher l'usage Attention à la date limite Tester votre projet avant de l'envoyer!! Processus de test à mettre en place...

97 Bonjour Monde : remarques Qui est le serveur? Communications On considère qu'il n'y a pas de serveur : un serveur doit être capable de répondre à plusieurs requêtes en séquences! Mode de communication inter processus

98 Bonjour Monde : remarques générales Communications On vérifie que les paquets UDP transitent sur le réseau Unix : tcpdump :tout ce que reçoit la carte ethernet est affiché (mode privilégié) WindowsNT/Unix : netstat : informations réseau

99 Communications Exemple UDP : unidirectionnel Un programme lit en boucle une chaîne de caractères sur la console et la transmet à un autre programme L'autre programme reçoit en boucle une chaîne de caractères et l'affiche sur la console "clientquit" arrête le client et "serverquit" arrête le serveur

100 Unidirectionnel : remarques conceptuelles Communications Qui est le client, qui est le serveur? client : le lecteur serveur : l'afficheur sur console Quel est le type de service que le serveur implémente? Service d'affichage de chaîne de caractères sur console à distance Une chaîne transmise = une requête Pourquoi la boucle est nécessaire? pouvoir répondre à plusieurs requêtes (= serveur)

101 Unidirectionnel : remarques Java Emission/Réception dans un buffer de taille fixe Communications Attention à la réception : un tableau est toujours plein (même de zéros) Solution moche : enlever les caractères non affichable aux extrémités String.trim() Solution propre : utiliser le nombre d'octets réellement reçu DatagramPacket.getLength(). Ne pas envoyer "clientquit" au serveur

102 Unidirectionnel : observations Démarrez deux clients simultanés sur le même serveur Communications Des ports différents sont automatiquement assignés aux clients UNIX : tcpdump, netstat, fuser; ps

103 Unidirectionnel : problèmes Communications Que se passe t'il si l'on envoie une phrase qui contient plusieurs lignes? L'envoi de plusieurs paquets ne constitue pas une action atomique Des paquets de clients différents peuvent se mélanger ordonnancement des évènements

104 UDP : subtilités Communications Une opération réseau peut être bloquante : Envoyer un paquet UDP est une opération non bloquante Recevoir un paquet UDP est une opération bloquante Attention au problème d'échelle : Les opérations d'entrées/sorties peuvent être considérées comme "bloquantes" comparées aux opérations de calculs Rigoureusement, seule la réception est bloquante : celle ci pouvant ne jamais arriver!

105 UDP : interbloquage Communications Lorsque deux machines tentent de recevoir un paquet UDP l'une de l'autre en même temps! Solutions : Concevoir son système pour éviter cette situation Utiliser un dépassement de délai (time out) à la réception Utiliser les threads

106 Communications Exemple UDP : serveur echo Le client lit en boucle une chaîne de caractères sur la console et la transmet au serveur Le serveur reçoit en boucle une chaîne de caractères, l'affiche sur la console, et la renvoie au client "clientquit" arrête le client et "serverquit" arrête le serveur

107 Serveur echo : remarques Java Communications Réutilisation de l'objet DatagramPacket Chaque datagramme est "routé" séparément Réutilisation du buffer de réception en buffer d'émission (echo)

108 Serveur echo : problèmes Communications Interbloquage possible : "serverquit" arrête le serveur qui ne répond plus au client le client attend la réponse du serveur (opération bloquante)! Solution : Le serveur répond au client juste avant de s'arrêter Le client vérifie que la chaîne envoyée au serveur est "serverquit" et n'effectue pas de réception.

109 Communications Étude de cas : banque en ligne Supposons qu'il nous est demandé de concevoir un système distribué pour obtenir des soldes de comptes en banque On dispose d'un serveur qui gère les noms, les mots de passe et les soldes de comptes Principe : à un couple (nom, mot de passe) correspond un solde à afficher sur le client

110 Étude de cas : banque en ligne Communications Concevoir un système distribué, incluant le protocole pour la communication entre un client et ce serveur : Comment le serveur authentifie le client? Quelles sont les données à échanger Dans quel ordre les messages doivent être envoyés? Comment l'état est maintenu entre le client et le serveur?

111 Étude de cas : banque en ligne Communications Solution simple : Client : hello Serveur : login? Client : un nom d'utilisateur Serveur : passwd? Client : un mot de passe Serveur : le solde correspondant

112 Étude de cas : banque en ligne Communications Quels sont les problèmes liés à ce protocole? Clients multiples Recouvrement en cas d'erreur Sécurité

113 Étude de cas : banque en ligne Comment étendre ce protocole pour permettre Comptes multiples Transfert d'argent inter comptes Communications

114 Communications Problèmes avec le mode datagramme Le développeur doit s'occuper de : Datagrammes perdus Datagrammes dupliqués Datagrammes corrompus Datagrammes arrivés dans le désordre Control du flux Le client envoi les données plus rapidement que le serveur ne peut les traiter

115 Problèmes avec le mode datagramme Communications L'abstraction datagramme utilisateur n'est pas pratique à utiliser pour des petites ou des grandes tailles L'envoi de paquets de petites tailles n'est pas efficace Bufferisation L'envoi de paquets de grandes tailles peuvent être refusé Découpage en paquet plus petits Doit on résoudre chacun de ces problèmes à chaque écriture d'une application?

116 Communication en mode connecté Principes : Une connexion est établie entre deux logiciels Communications utilisation des ports Une fois la connexion établie, le protocole peut fournir certaines garanties

117 Garanties Fiabilité Communications Gestion des paquets perdus, corrompus, dupliqués, arrivés dans le désordre Flux de données La communication n'est plus en mode datagrammes On peut envoyer des données en continue Découpage des données en datagrammes Plus de problèmes de petite ou de grande tailles

118 Garanties Mode bidirectionnel Communications Sécurité On peut envoyer et recevoir des données par la même connexion Les données sont encryptés/décryptés...

119 Communications Fiabilité Solution : Les messages dupliqués sont éliminés Si les messages arrivent dans le désordre, le receveur attend l'arrivé du premier message Chaque envoi de message donne lieu à un accusé de réception Si l'accusé n'est pas reçu, le message est renvoyé Somme de contrôle pour éliminer les messages corrompus

120 Flux de données Communications Solution : Un flux de données de A à B Un flux séparé de données de B vers A Full-duplex : transmission et réception dans les deux directions simultanées Découpage en datagrammes de taille fixes Buffering : mise en file d'attente

121 Abstraction Communications Comment se situe le protocole mode connecté dans notre architecture en couche? Approche radicalement opposée au mode messagerie (datagramme) Notion de flux bi directionnel

122 Communications Architecture en couche Logiciel Logiciel Protocole Mode connecté Protocole Mode connecté Protocole Universel Protocole Universel Périphérique réseau Périphérique réseau Réseau

123 Mode connecté Deux entités établissent une connexion: Si A souhaite ouvrir une connexion vers B Communications A envoie un message Synchronize à B B répond à A par un accusé de réception et un message de synchronisation A répond à B par un accusé de réception A et B sont en accord pour communiquer Protocole similaire pour la déconnexion

124 Communications Mode connecté Deux entités seulement Les messages d'autres entités ne peuvent pas être mélangés Les protocoles en mode connecté sont moins compliqués à utiliser que ceux en mode datagramme Performance moindre!!

125 Modèle client/serveur en mode connecté Communications Le serveur ouvre une socket d'écoute sur un port Il attend une requête de clients Il créé une connexion en ouvrant une nouvelle socket sur un port libre, connectée à la machine cliente distante sur le port spécifié par le client Cette socket est utilisée pour les communications

126 Exemple : TCP Communications Utilise le protocole IP Mode connecté (TCP : Transport Connected Protocol) Garanties offertes : Fiabilité Bidirectionnel Flux de données Sécurité (checksum)

127 Exemple TCP : TimeServer Communications Développer en Java un serveur TCP qui affiche l'heure toutes les n secondes (paramétrable) Tester le serveur avec un client adéquat Client "maison" Telnet Tester le serveur avec plusieurs clients simultanés

128 TimeServer : remarques Java Java : les classes d'entrées/sorties (I/O) *Reader/*Writer vs *InputStream/*OutputStream stream Communications flux d'octets, générique : pour lire/écrire n'importe quoi reader/writer flux de caractères encodage/décodage Unicode prise en compte de la plateforme exemple : \n sous Unix = \n\r sous Windows

129 TimeServer : remarques Java Communications Le serveur doit utiliser des flux de type caractères PrintWriter : println() flush automatique après newline() gestion des erreurs réseau "à l'ancienne" BufferedWriter : Pas de println() flush manuel gestion des exceptions classiques

130 TimeServer : remarques Java Communications Arrêt du client non intégré au protocole l'arrêt brutal implique une gestion particulière de l'exception correspondante Attention à la bufferisation flush() manuel Penser au newline() à la place de "\n" Indépendance vis à vis de la plateforme notion d'encodage Sécurité : socket.shutdowninput() Le serveur ne doit pas recevoir de données

131 TimeServer : remarques générales Communications Avantages du mode connecté Mode connecté (!) Flux de données Problèmes : Gestion des clients multiples concurrents Solution(s)? threads

132 Concurrence : notion de threads Communications Concurrence!= parallèle concurrent : le processeur partage le temps d'exécution des processus parallèle : les processus s'exécutent dans la même durée de temps (multi processeur) Plusieurs processus dans le système s'exécute en concurrence : système multi tâches Plusieurs threads au sein d'une application : application multi threadée Thread utilisateurs!= threads noyaux Ordonnancement

133 Threads : pour et contre Communications Pour : Gestion rapide (comparé aux processus) Expressivité Contre : Sémantique plus compliqué que les processus Adressage partagé Alternative : nombreuse!! En pratique : évènements Lire : [von behren et al. 2003] Why Events Are A Bad Idea

134 Exemple TCP : TimeServerMultiThread Communications Développer en Java un serveur TCP multithreadé : qui affiche l'heure toutes les n secondes (paramétrable) capable de répondre à plusieurs clients simultanés. Tester le serveur avec plusieurs clients simultanés

135 Exemple TCP : talk Communications Développer en Java l'utilitaire Unix talk : Une personne A désire communiquer avec une autre personne B sur le réseau A lance un talk en précisant la machine de B Tout ce que A tape au clavier s'affiche chez B et vice-versa

136 Talk : modélisation Communications System.out System.out Socket.in Socket.in Talk Talk Socket.out Réseau System.in Socket.out System.in

137 Talk : remarques Java Un serveur et potentiellement plusieurs clients Problèmes avec System.in et System.out Communications Solutions : fenêtrage Utilisation de Swing (JFC)

138 Talk fenêtré : remarques Java Attention au problème Swing/Thread JTextArea Communications L'un en écriture Son contenu doit être envoyé sur le réseau : interface Document L'autre en lecture Son contenu doit être mise à jour en fonction des messages réseaux :thread de lecture Mise en place d'un protocole de communication Problème de la terminaison doit faire partie intégrante du protocole

139 Talk : remarques générales Communications Avantages du mode connecté Mode connecté (!) Flux de données Mode bidirectionnel Fiabilité

140 Architecture en couches Communications Logiciel Protocole Datagramme Logiciel Protocole Datagramme Protocole Connecté Protocole Connecté Protocole Universel Protocole Universel Périphérique réseau Périphérique réseau Réseau

141 Communications La norme OSI/ISO OSI : Open System Interconnexion ISO : International Standard Organization Année 70 (?) Résultant des différents types de réseaux propriétaires incompatibles entre eux Modèle d'architecture réseau décomposé en sept couches Chaque couche correspond à un service particulier et doit masquer les détails aux couches supérieures

142 Network OSI Model II. History/Network X.25 follows the OSI Model Internet (TCP/IP) does not!!

143 Les couches de la norme OSI/ISO Communications 7 Couches hautes Couches basses 3 2 1

144 Les couches basses de la norme OSI/ISO Communications couche physique : transfert de bits logique câblée exemples : modems, ADSL,... couche liaison : Gestion de la connexion entre entités du réseau Gestion des erreurs de la couche 1

145 Les couches basses de la norme OSI/ISO Communications couche réseau : Acheminer les données de la couche 4 à l'utilisateur final en passant par des passerelles ou des routeurs. adressage, routage, contrôle de flux, détection et correction d'erreurs de la couche 2 couche transport : transfert de données transparents entre entités de session. Optimiser l'utilisation des infrastructures mode connecté et non connecté

146 Les couches hautes de la norme OSI/ISO Communications couche session : fournir aux entités de la couche présentation les moyens d'organiser et de synchroniser les échanges de données Différence avec une connexion de la couche transport : plusieurs sessions peuvent être ouvertes (séquentiellement) sur une même connexion (base de données/terminal banquaire) Reprise transparente d'une session après une coupure de connexion

147 Les couches hautes de la norme OSI/ISO Communications couche présentation : syntaxe et sémantique des informations transportées représentation : BigEndian/LittleEndian, compression/cryptage couche application : fournir tous les services directement utilisables : transfert d'information, allocation de ressources, intégrité et cohérence des données reçues, synchronisation d'applications coopérante

148 Communications Différence avec l'architecture TCP/IP

149 Les protocoles de plus haut niveau Communications FTP File Transfert Protocol : transfert de fichier deux sockets TCP : commandes et données DNS Domain Name Server : résolution de noms protocole UDP WAP Wireless Application Protocol : "Web pour téléphone mobile" TCP

150 Les protocoles de plus haut niveau Communications RPC Remote Procedure Call : appel de procédure à distance UDP ou TCP (suivant implémentation) Network File System : Système de fichiers accessible à distance Utilise RPC NFS NIS Network Information System : "pages jaunes" Utilise RPC

151 Le protocole HTTP HyperText Transfert Protocol protocole de transfert d'hypertexte Origine : 1990 au CERN! Communications Protocole du WWW WWW Internet Protocole simple à base textuelle Utilisé pour transmettre des données textuelles ou binaires Page HTML (texte) ou image (binaire) le plus souvent

152 Communications Session HTTP Connection TCP/IP Browser > Serveur Web : <GET, /index.html> Serveur Web > Browser : <OK, contenu de index.html> Fin de connection TCP/IP

153 Session HTTP : Requête : GET /chemin/fichier HTTP/1.0 Communications Infos (Type de connection, browser, système,...) Type de données à recevoir Une ligne vide Réponse : HTTP/ OK Infos (Connexion, type de serveur, type de données envoyées) Une ligne vide Le contenu de la requête (fichier HTML, image, son,...)

154 Envoi de données à un serveur WEB Deux solutions : GET : l'url contient les données: Communications POST : Les données sont transmises dans l'en-tête

155 Exercice : serveur HTTP Communications Ecrire un mini-serveur HTTP en Java Le serveur ne doit comprendre que les requêtes de type GET Il renverra au client le fichier demandé Attention, les chemins devront être absolus GET /etc/wgetrc HTTP/1.0 doit renvoyer le contenu du fichier /etc/wgetrc Quels clients utiliser pour tester notre serveur? Tout client HTTP Telnet,Firefox, Chrome,......

156 serveur HTTP : remarques Java Communications Requête : Utiliser BufferedReader pour lire la requête Manipulation de texte : StringTokenizer Fin de requête == ligne vide == ligne de longueur nulle (!= "\n") Réponse : Utiliser BufferedOutputStream pour la réponse flush()

157 serveur HTTP : remarques générales Communications Attention au protocole Syntaxe Code d'erreur Trou de sécurité! Solutions?

158 Plan RPC/RMI RPC/RMI 158

159 Appel de procédure à distance Simplifie les interactions entre systèmes distribués Il n'y a plus de notion de communication RPC/RMI Ni en mode datagramme Ni en mode connecté Le développeur effectue un appel de procédure standard Le système se charge de transformer cet appel de procédure en communication réseau

160 Problèmes Gestion des erreurs Différencier celles liées au réseau Liées à l'appel lui même RPC/RMI Garanties Appel perdu Paramètres corrompus Appel dans le désordre Gestion de la concurrence

161 Problèmes : Passage des paramètres Par copie Marshalling Problème de cohérence RPC/RMI Ordre binaires Cohérence des données de type référence Modifications effectuées par le serveur non répercutées sur le client et vice versa Par référence Mémoire virtuellement partagée Matérielle Logicielle

162 Exemples : SUN RPC Utilise le protocole XDR pour le marshalling NFS, NIS : utilise les SUN RPC Portmap : nommage XML RPC RPC/RMI Utilise XML pour le marshalling Simple Object Access Protocol (SOAP) Microsoft/IBM Attention : le terme RPC est utilisé pour désigner à la fois le concept et l'implémentation

163 Invocation de méthode à distance Extension du mécanisme RPC au concept objet Beaucoup de langages sont orientés objets Un appel de méthode est conceptuellement équivalent à un envoi de message RPC/RMI Extension naturelle aux systèmes à objets distribuées Permet à des objets distribués sur tout un parc de stations de communiquer naturellement

164 Invocation de méthode à distance Abandon du mode client/serveur Les objets communiquent entre eux par passage de messages qu'ils soient locaux ou distants Localisation transparente RPC/RMI Il est inutile de connaître l'emplacement réel d'un objet

165 Localisation transparente Facilite la programmation Fiabilité si la machine qui héberge un objet tombe en panne, on déplace l'objet sur une autre machine Performance RPC/RMI si la machine qui héberge l'objet ne peut plus supporter de nouveaux clients, on réplique l'objet sur une nouvelle machine Mais tout n'est pas si simple!!

166 Principe A l'exécution, certains objets sont locaux, et d'autres sont distants RPC/RMI Si une méthode est invoquée sur un objet distant, un appel de méthode à distance est effectuée La localisation de l'objet distant détermine la destination de l'appel de méthode à distance

167 Principe RPC/RMI Utilisation des interfaces Un objet distant déclarent l'ensemble des interfaces distante qu'il implémente Chaque interface définie l'ensemble des méthodes qu'il est possible d'invoquer sur les objets qui l'implémente

168 Principe Est il possible de spécifier des champs accessible à distance? RPC/RMI

169 Est il possible de spécifier des champs accessible à distance? Raisons liées à la notion d'interface pas de champs dans les interfaces Raisons liées à la distribution modification directe d'un champ non contrôlable RPC/RMI Utilisation des objets fragmentés Stubs, Skeleton et Proxy

170 Principe : Stubs, Skeleton et Proxy Les interfaces distantes sont utilisées pour générer du code RPC/RMI Stub : partie côté client chargée de transformer les appels de méthodes en communication réseaux Skeleton : effectue l'opération inverse sur le serveur et appel la méthode correspondante de l'objet distant Proxy :partie côté cliente représentant l'objet distant et qui peut répondre à une requête localement où transmettre la requête sur le réseau. Un stub est un cas particulier de proxy dont la fonction est de transmettre toutes les requêtes sur le réseau

171 Principe : Stubs, Skeleton et Proxy F(X) Y=mar(X) send(f,y) Z=unmar(Y) Client Stub (proxy) F(Z) Serveur Skel JVM JVM

172 Nommage et recherche Comment les objets distribués se trouvent ils entre eux? Le nommage permet d'associer à un objet distant : RPC/RMI Un nom : "Printer" Des attributs : "Color, A4" La recherche permet de trouver un objet en fonction de certains paramètres (nom, attributs,...) Un serveur connu de tous est dédié à cette tache : c'est le Naming Service

173 Standards : Java RMI (Sun) Serialisation Standard Java Propriétés : rmic, rmiregistry, DGC RPC/RMI Corba (OMG) Neutre vis à vis du langage et du système Notion de services (CORBA Naming Service) Utilisé dans l'industrie? COM/DCOM (Microsoft) Standard du monde Microsoft exclusivement

174 Exemple : Java-RMI Utilise TCP/IP Peut utiliser HTTP pour passer un firewall Utilise le méchanisme de Serialisation Java pour copier les arguments RPC/RMI Passage par copie et par référence suivant la nature distante de l'objet Ramasse miettes distribués (compteur de références et leasing (bail))

175 Serialisation Les objets Java qui implémente l'interface (vide) java.io.serializable peuvent être serialisé Sauvegarde sur disque Tolérance aux pannes RPC/RMI Sauvegarde dans une base de données Persistance Envoi sur le réseau Migration d'objets

176 Exemple Serialisation : PersonsManager Ecrire en Java une application capable d'enregistrer dans un fichier des personnes RPC/RMI Une personne est définie par les champs : firstname (prénom) lastname (nom de famille) birthdate (date de naissance) L'application doit pouvoir retrouver ces informations après un arrêt. (persistance)

177 PersonsManager : remarques Java Création d'un objet de type Person Doit implémenter java.io.serializable Utiliser ObjectOutputStream pour écrire et ObjectInputStream pour lire Attention : stream = flux RPC/RMI Pas d'accès direct Pas d'ajout en fin Faire le travail en mémoire Lire le fichier à l'initialisation Sauvegarder à la terminaison

178 PersonsManager : subtilités problèmes avec les classes internes (inner classe) Pas toujours Serializable Efficacité en temps et en espace sauvegarde de la classe mère Serialisation de la classe Date inefficace Serialisation spécialisée RPC/RMI

179 Java-RMI : Passage par copie Les objets qui implémentent l'interface (vide) java.rmi.remote sont distants Ces objets sont passés par références lors d'invocation de méthode à distance RPC/RMI Les autres objets sont passés par copie En réalité, tous les objets sont passés par serialization Les objets distants redéfinissent leur serialisation pour passer leur Stub à leur place!

180 Exemple Java-RMI : Bonjour Monde RPC/RMI Écrire en Java RMI : Un objet distant qui possède une méthode retournant la chaîne de caractère "Bonjour Monde" Un client qui appelle cette méthode à distance et l'affiche

181 Java-RMI : Bonjour Monde Schéma HelloWorldImpl exportobject() RPC/RMI JVM HW_Stub Client rmiregistry JVM JVM

182 Java-RMI : Bonjour Monde Schéma HelloWorldImpl Client rebind() JVM RPC/RMI foo HW_Stub rmiregistry JVM JVM

183 Java-RMI : Bonjour Monde Schéma HelloWorldImpl Client JVM foo RPC/RMI HW_Stub rmiregistry JVM JVM

184 Java-RMI : Bonjour Monde Schéma HelloWorldImpl Client JVM lookup() RPC/RMI foo HW_Stub rmiregistry JVM JVM

185 Java-RMI : Bonjour Monde Schéma HelloWorldImpl Client JVM RPC/RMI foo getstring() HW_Stub rmiregistry JVM HW_Stub JVM

186 Java-RMI : Bonjour Monde RPC/RMI Où est le stub? depuis le jdk 1.5, le stub est automatiquement généré : il est retourné par l'appel UnicastRemoteObject.exportObject(r, 0); il fallait le générer auparavant à l'aide d'un compilateur spécial : 'rmic' On peut observer son code à l'aide de la commande : 'rmic keep'

187 Exemple Java-RMI : Gestionnaire d'utilisateurs Écrire en Java RMI Un objet distant capable de gérer des informations sur des utilisateurs (nom, prénom, date de naissance,...). Un client peut enregistrer une nouvelle personne RPC/RMI il récupère un identifiant unique Récupération de la liste complète des personnes enregistrées Un client peut récupérer une personne donnée pour un identifiant précis et la mettre à jour

188 RMI : Gestionnaire d'utilisateurs : architecture Le client et le serveur doivent partager du code! Interface RMI Implémentée par le stub pour le client Implémentée par le serveur La classe personne RPC/RMI Pour le client et le serveur Le client n'a pas besoin de la classe serveur Le serveur n'a pas besoin de la classe client Séparation des CLASSPATH Génération de jar files (fichier jar ~ fichier zip)

189 Gestion des classpath : jar jar : même syntaxe que la commande 'tar' UNIX RPC/RMI jar cvf /tmp/client.jar client jar cvf /tmp/server.jar server jar cvf /tmp/common.jar common Au lancement, on précise le classpath java classpath /tmp/common.jar:/tmp/client.jar client.main Commande serveur : attention au rmiregistry java.rmi.server.codebase requis! Security Manager requis! java.security.policy requis!

190 RMI : Gestionnaire d'utilisateurs : Serveur Problématique : génération d'id unique? UUID simple mais peu lisible int lisible, mais unicité? accès concurrents? RPC/RMI retourner une liste à un client? utiliser des verrous copie requise? Passage par copie (serialisation) update vérifier que l'id donné existe! sécurité!

191 Gestionnaire d'utilisateurs : remarques Problématique de mise à jour ajout d'une méthode au serveur RPC/RMI Recompilation, re génération du 'jar', déploiment sur les clients du common.jar Regénération du stub (plus requis jdk >= 1.5) Rebinding requis ajout d'un champ à la classe Person Le client doit avoir accès à la nouvelle classe. recompilation, re génération du 'jar' et déploiment sur les clients. Interruption du serveur requise? Pas toujours (compatibilité ascendante Person)

192 Gestionnaire d'utilisateurs : remarques Protocole sous jacent : TCP Gestion des exceptions réseaux Gestion des clients simultanés RPC/RMI Tolérance aux pannes Threads et RMI : pas de garanties données par RMI sémantique des appels RMI? sémantique at most once (cf DS1: 5.2.4) un appel est exécuté au plus une fois. Attention, CORBA et Sun RPC propose d'autres sémantiques.

193 Gestionnaire d'utilisateurs : remarques Comment implémenter la persistence des données? pour un très grand nombre de personnes? Comment assurer la sécurité? RPC/RMI un client devrait s'authentifier pour pouvoir faire un update() (accès en écriture) avec une base de données gestionnaire d'authentification/identification Comment assurer l'intégrité des données? un update() ne devrait jamais être fait à moitié utilisation des transactions

194 Exemple Java-RMI : ChatServer RPC/RMI Écrire en Java RMI un serveur de 'chat' et son client Chaque client attend qu'un utilisateur tape une ligne au clavier Lorsque la ligne est entrée, le client en informe le serveur Le serveur en informe alors tous les autres clients qui affiche la ligne.

195 ChatServer : remarques Différence conceptuelle entre client/serveur classique client/serveur liée à la notion de service RPC/RMI Callbacks : "appelle moi quand c'est prêt!" le client est en réalité à la fois client et serveur Le serveur est à la fois serveur et client

196 ChatServer Architecture Logicielle Conception des interfaces distantes RPC/RMI Diagramme de classes Définir une interface Message dont l'implémentation n'est pas connue du serveur (téléchargement de code requis). Séparation des classpath Que doivent contenir les jar common, client et server? Attention à la spécification du java.rmi.server.codebase. Security Manager indispensable.

197 Plan EJB EJB :: introduction introduction Basé sur le cours de M. Buffa composants_distribu%c3%a9s_pour_l%27entreprise_%2f %2F_EJB_

198 EJB : introduction Motivation Les RPC/RMI facilitent le développement d'applications distribuées Mais ce n'est pas suffisant Seul la communication entre composants est assurée Autres problématiques gestion de la charge (concurrence), gestion des pannes, persistence, transaction, monitoring, sécurité, C'est l'objet d'un middleware

199 Motivation EJB : introduction Dans le passé, la plupart des entreprises programmaient leur propre middleware. Adressaient rarement tous les problèmes, Gros risque : ça revient cher (maintenance, développement) Orthogonal au secteur d'activité de l'entreprise (banque, commerce ) Pourquoi ne pas acheter un produit? Oracle, IBM, BEA proposent depuis plusieurs années des middleware Aussi appelés serveurs d'application.

200 Motivation Explosion du nombre de middlewares Propriétaires et Inter opérabilité limitée EJB : introduction À l'encontre du crédo Java : "Write Once, Run Anywhere" EJB : Enterprise Java Beans Attention : Rien à voir avec les Java Beans!! Standard qui définit une architecture de composants serveur écrits en Java EJB = une spécification + un ensemble d'api Alternatives : ruby on rails, spring, python turbo gears,...

201 Caractéristiques EJB EJB : introduction Attention, les EJB ne fournissent pas de GUI C'est plutôt le rôle des Java Beans Le GUI est côté client Application classique (Applets) Servlets/JSP (dans le standard J2EE) Approche Modèle/View/Controller (MVC)

202 EJB : introduction J2EE

Introduction aux Systèmes Distribués. Introduction générale

Introduction aux Systèmes Distribués. Introduction générale Introduction aux Systèmes Distribués Licence Informatique 3 ème année Introduction générale Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan

Plus en détail

Administration réseau Introduction

Administration réseau Introduction Administration réseau Introduction A. Guermouche A. Guermouche Cours 1 : Introduction 1 Plan 1. Introduction Organisation Contenu 2. Quelques Rappels : Internet et le modèle TCP/ Visage de l Internet Le

Plus en détail

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information SOA et Services Web 23 octobre 2011 1 Evolution des Systèmes d Information 2 Qu est ce qu une application répartie? Il s agit d une application découpée en plusieurs unités Chaque unité peut être placée

Plus en détail

Architectures de communication. «Architecture protocolaire réseau» «protocolaire»

Architectures de communication. «Architecture protocolaire réseau» «protocolaire» Architectures de communication C. Pham Université de Pau et des Pays de l Adour Département Informatique http://www.univ-pau.fr/~cpham Congduc.Pham@univ-pau.fr «Architecture protocolaire réseau» Architecture

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 7 : RMI Nom(s) : Groupe : Date : Objectifs : savoir créer des applications client-serveur mettant en jeu des machines

Plus en détail

Présentation du modèle OSI(Open Systems Interconnection)

Présentation du modèle OSI(Open Systems Interconnection) Présentation du modèle OSI(Open Systems Interconnection) Les couches hautes: Responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Couches basses:

Plus en détail

Internet. PC / Réseau

Internet. PC / Réseau Internet PC / Réseau Objectif Cette présentation reprend les notions de base : Objectif, environnement de l Internet Connexion, fournisseurs d accès Services Web, consultation, protocoles Modèle en couches,

Plus en détail

ARCHITECTURES DES SYSTÈME DE BASE DE DONNÉES. Cours Administration des Bases de données M Salhi

ARCHITECTURES DES SYSTÈME DE BASE DE DONNÉES. Cours Administration des Bases de données M Salhi ARCHITECTURES DES SYSTÈME DE BASE DE DONNÉES Cours Administration des Bases de données M Salhi Architectures des Système de base de données Systèmes centralisés et client-serveur Server System Architectures

Plus en détail

Master d'informatique E-Secure. Réseaux. Applications de l'internet

Master d'informatique E-Secure. Réseaux. Applications de l'internet Master d'informatique E-Secure Réseaux Applications de l'internet Bureau S3-354 Jean.Saquet@unicaen.fr http : saquet.users.greyc.fr/m2/rezo Client / serveur (1) Beaucoup d'applications sur ce modèle :

Plus en détail

L3 informatique Réseaux : Configuration d une interface réseau

L3 informatique Réseaux : Configuration d une interface réseau L3 informatique Réseaux : Configuration d une interface réseau Sovanna Tan Septembre 2009 Révision septembre 2012 1/23 Sovanna Tan Configuration d une interface réseau Plan 1 Introduction aux réseaux 2

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java (application avec Java RMI) Éric Leclercq Département IEM / Laboratoire LE2i Décembre 2010 émail : Eric.Leclercq@u-bourgogne.fr

Plus en détail

A l'origine, les FYI sont uniquement des documents officiels issus des organismes de normalisation de l'internet, sans toutefois être des normes.

A l'origine, les FYI sont uniquement des documents officiels issus des organismes de normalisation de l'internet, sans toutefois être des normes. 1 2 Deux groupes guident les évolutions de l Internet : un groupe de recherche, l IRTF (Internet Research Task Force) un groupe de développement, l IETF (Internet Engineering Task Force) ; travaille sur

Plus en détail

RÉSEAUX D ORDINATEURS ET INTER-RESEAUX. G. Falquet

RÉSEAUX D ORDINATEURS ET INTER-RESEAUX. G. Falquet RÉSEAUX D ORDINATEURS ET INTER-RESEAUX G. Falquet 1. Historique des réseaux informatiques 2. Supports physique 3. Protocoles et niveaux d abstraction 4. Interconnexion de réseaux - Internet TCP/IP 5. Systèmes

Plus en détail

Protocole TCP/IP. On classe généralement les protocoles en deux catégories selon le niveau de contrôle des données que l'on désire :

Protocole TCP/IP. On classe généralement les protocoles en deux catégories selon le niveau de contrôle des données que l'on désire : Nom.. Prénom.. Protocole TCP/IP Qu'est-ce qu'un protocole? Un protocole est une méthode de codage standard qui permet la communication entre des processus s'exécutant éventuellement sur différentes machines,

Plus en détail

Introduction. Licence MASS L3 Inf f3

Introduction. Licence MASS L3 Inf f3 Le modèle client serveur Introduction Licence MASS L3 Inf f3 Encapsulation : rappel Données Données Application En-tête En-tête Transport UDP Données TCP Données Paquet UDP Segment TCP En-tête IP Données

Plus en détail

Pile de protocoles TCP / IP

Pile de protocoles TCP / IP Pile de protocoles TCP / IP Fiche de cours La pile de protocoles TCP/IP est le standard de fait le plus utilisé au monde comme ensemble protocolaire de transmission dans les réseaux informatiques. La raison

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr 1 Plan Principes généraux Modèle

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Activité - Serveur sous Linux Suse

Activité - Serveur sous Linux Suse Activité - Serveur sous Linux Suse Configuration de services réseaux Problématique : Configurer les services réseaux (DHCP, SAMBA, APACHE2) sur un serveur afin de répondre au besoin des postes clients

Plus en détail

Programmation par RPC et Java-RMI :

Programmation par RPC et Java-RMI : 2A-SI 3 Prog. réseau et systèmes distribués 3.2 et JavaRMI Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de l équipe pédagogique du

Plus en détail

Cours client-serveur Web : Java et RMI (Remote Method Invocation)

Cours client-serveur Web : Java et RMI (Remote Method Invocation) Cours client-serveur Web : Java et RMI (Remote Method Invocation) 1 Java: Rappel sur les threads Cycle de vie d un thread (1) Né -> prêt appel de la méthode start du thread Prêt Exécution Distribution

Plus en détail

Laboratoire Télécom&Réseaux TP M1 2005/2006 SECURITE - IPTABLES

Laboratoire Télécom&Réseaux TP M1 2005/2006 SECURITE - IPTABLES SECURITE - IPTABLES Conception d'une zone démilitarisée (DeMilitarized Zone: DMZ) Veuillez indiquer les informations suivantes : Binômes Nom Station ou PC D. Essayed-Messaoudi Page 1 sur 9 TP 4 : Sécurité

Plus en détail

Cisco Certified Network Associate

Cisco Certified Network Associate Cisco Certified Network Associate Version 4 Notions de base sur les réseaux Chapitre 4 1 D après l en-tête de la couche transport illustré, quelles affirmations parmi les suivantes définissent la session

Plus en détail

Plan. 1. Introduction. 1.1 Notion de réseau. Réseau extrémité. Le cœur du réseau. Les Protocoles de Télécommunications Evolution Internet Cours de DEA

Plan. 1. Introduction. 1.1 Notion de réseau. Réseau extrémité. Le cœur du réseau. Les Protocoles de Télécommunications Evolution Internet Cours de DEA Plan Les Protocoles de Télécommunications Evolution Internet Cours de DEA Isabelle CHRISMENT ichris@loria.fr Introduction Routage dans l Internet IPv6 Communication de groupes et l Internet x sans fils,

Plus en détail

Architecture client - serveur

Architecture client - serveur Le modèle client-serveur De nombreuses applications fonctionnent selon un environnement client-serveur, cela signifie que des machines clientes contactent un serveur, une machine généralement très puissante

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année Java RMI Programmation des applications réparties Olivier Flauzac URCA Master EEAMI-Informatique première année Olivier Flauzac (URCA) PAR : Java RMI MSTIC-INFO 1 1 / 30 1 RMI 2 Architecture 3 Développement

Plus en détail

Sensibilisation à RMI (Remote Method Invocation)

Sensibilisation à RMI (Remote Method Invocation) Jini Sensibilisation à RMI (Remote Method Invocation) Le rêve de tout système distribué L idéal serait d avoir un système distribué utilisant la technologie objet et permettant : 1) d invoquer une méthode

Plus en détail

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle.

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle. RMI (Remote Method Invocation) Présentation de RMI Université Française d Egypte Richard Grin Version 0.6 10/10/12 R. Grin RMI page 2 Client serveur, situation traditionnelle Sur la machine A un client

Plus en détail

Architecture client/serveur

Architecture client/serveur Architecture client/serveur Table des matières 1. Principe du client/serveur...2 2. Communication client/serveur...3 2.1. Avantages...3 2.2. Inconvénients...3 3. HTTP (HyperText Transfer Protocol)...3

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr Remerciements Michel Riveill 1

Plus en détail

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Proxy et reverse proxy. Serveurs mandataires et relais inverses Serveurs mandataires et relais inverses Qu'est-ce qu'un proxy? Proxy = mandataire (traduction) Un proxy est un service mandataire pour une application donnée. C'est à dire qu'il sert d'intermédiaire dans

Plus en détail

Contexte InfoRéseau50. Charles SAINT-LÔ SIO2 Lycée Notre Dame de la Providence Année 2014-2015

Contexte InfoRéseau50. Charles SAINT-LÔ SIO2 Lycée Notre Dame de la Providence Année 2014-2015 Contexte InfoRéseau50 Charles SAINT-LÔ SIO2 Lycée Notre Dame de la Providence Année 2014-2015 1 Présentation du contexte : Je travaille chez InfoRéseau50, qui est une société spécialisée dans la gestion

Plus en détail

Couche réseau : autour d IP. Claude Chaudet

Couche réseau : autour d IP. Claude Chaudet Couche réseau : autour d IP Claude Chaudet 2 ICMP : Signalisation dans IP Positionnement et rôle d'icmp IP est, en soi, un mécanisme simple dédié à l'acheminement de trames Il ne définit pas de messages

Plus en détail

Introduction aux systèmes à objets et services répartis

Introduction aux systèmes à objets et services répartis Introduction aux systèmes à objets et services répartis Frank Singhoff Bureau C-202 Université de Brest, France Lab-STICC UMR 3192 singhoff@univ-brest.fr UE systèmes à objets et services répartis, Université

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Ce support est très largement inspiré du livre et du cours de S. Krakowiak S. Krakowiak Java Remote Method Invocation 1 / 25 Intérêt des objets pour la construction d applications

Plus en détail

Couche 1: le niveau physique

Couche 1: le niveau physique Couche 1: le niveau physique 1 Fonction: assurer la transmission physique de trains de bits sur les moyens physiques d interconnexion entre deux entités de liaison adjacentes (support de transmission).

Plus en détail

NOTIONS DE RESEAUX INFORMATIQUES

NOTIONS DE RESEAUX INFORMATIQUES NOTIONS DE RESEAUX INFORMATIQUES GENERALITES Définition d'un réseau Un réseau informatique est un ensemble d'équipements reliés entre eux afin de partager des données, des ressources et d'échanger des

Plus en détail

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C#

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# CHAPITRE 1 Introduction aux web services Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# NetBeans JavaScript Eclipse Objective C Xcode PHP HTML Objectifs du chapitre : Ce

Plus en détail

Introduction. Adresses

Introduction. Adresses Architecture TCP/IP Introduction ITC7-2: Cours IP ESIREM Infotronique Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr 27 février 2008 L Internet est basé sur l architecture TCP/IP du nom

Plus en détail

1.1 Remote Procedure Call (RPC)

1.1 Remote Procedure Call (RPC) 1.1 Remote Procedure Call (RPC) Le modèle Client-Serveur est un modèle simple à utiliser pour la structuration des systèmes répartis. Mais ce modèle s appuie sur des communications de type entrée/sortie

Plus en détail

NSY107 - Intégration des systèmes client-serveur

NSY107 - Intégration des systèmes client-serveur NSY107 - Intégration des systèmes client-serveur Cours du 13/05/2006 (4 heures) Emmanuel DESVIGNE Document sous licence libre (FDL) Plan du cours Introduction Historique Les différentes

Plus en détail

RESEAUX ARCHITECTURES EN COUCHES. J.L Damoiseaux ; Dpt R&T 1

RESEAUX ARCHITECTURES EN COUCHES. J.L Damoiseaux ; Dpt R&T 1 RESEAUX ARCHITECTURES EN COUCHES J.L Damoiseaux ; Dpt R&T 1 Plan Notions sur les réseaux Couche/Service/Protocole Le modèle OSI Le modèle TCP/IP J.L Damoiseaux ; Dpt R&T 2 Problématique J.L Damoiseaux

Plus en détail

Plan. Programmation Internet Cours 3. Organismes de standardisation

Plan. Programmation Internet Cours 3. Organismes de standardisation Plan Programmation Internet Cours 3 Kim Nguy ên http://www.lri.fr/~kn 1. Système d exploitation 2. Réseau et Internet 2.1 Principes des réseaux 2.2 TCP/IP 2.3 Adresses, routage, DNS 30 septembre 2013 1

Plus en détail

Services Réseaux - Couche Application. TODARO Cédric

Services Réseaux - Couche Application. TODARO Cédric Services Réseaux - Couche Application TODARO Cédric 1 TABLE DES MATIÈRES Table des matières 1 Protocoles de gestion de réseaux 3 1.1 DHCP (port 67/68)....................................... 3 1.2 DNS (port

Plus en détail

Programmation d applications pour le Web

Programmation d applications pour le Web Programmation d applications pour le Web Cours 2 ème année ING ISI-Tunis Elaboré par: Hela LIMAM Chapitre 1 Architectures et applications du Web Année universitaire 2011/2012 Semestre 2 1 Plan Internet,

Plus en détail

Formation Réseaux : Notions de base

Formation Réseaux : Notions de base Formation x Formation Réseaux : Notions Jean-Philippe André (), p2009 3. Couche Septembre 2007 Que sont les x? Formation x Wikipedia.org : Un est un ensemble de nœuds (ou pôles) reliés entre eux par des

Plus en détail

CONDUITE & GESTION DE PROJET

CONDUITE & GESTION DE PROJET LES THEMES DU PROGRAMME PEDAGOGIQUE CONDUITE & GESTION DE PROJET Techniques de gestion de projets Connaître le rôle d un chef de projet dans la conduite de projet. Les méthodes, les techniques et les outils

Plus en détail

L exemple d un serveur Proxy sous Windows NT 4 SERVER MICROSOFT PROXY SERVER 2 Installation et configuration Auteur : Eliane Bouillaux SERIA5

L exemple d un serveur Proxy sous Windows NT 4 SERVER MICROSOFT PROXY SERVER 2 Installation et configuration Auteur : Eliane Bouillaux SERIA5 L exemple d un serveur Proxy sous Windows NT 4 SERVER MICROSOFT PROXY SERVER 2 Installation et configuration Auteur : Eliane Bouillaux SERIA5. Préparation à l installation de MS Proxy server Ce logiciel

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Réseaux - Cours 3. IP : introduction et adressage. Cyril Pain-Barre. Semestre 1 - version du 13/11/2009. IUT Informatique Aix-en-Provence

Réseaux - Cours 3. IP : introduction et adressage. Cyril Pain-Barre. Semestre 1 - version du 13/11/2009. IUT Informatique Aix-en-Provence Réseaux - Cours 3 IP : introduction et adressage Cyril Pain-Barre IUT Informatique Aix-en-Provence Semestre 1 - version du 13/11/2009 1/32 Cyril Pain-Barre IP : introduction et adressage 1/24 TCP/IP l

Plus en détail

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT Commandes Linux Gestion des fichiers et des répertoires Lister les fichiers Lister les fichiers cachés Lister les répertoires d un répertoire Lister les fichiers par date Les droits Types de fichier Supprimer

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 38 NFP111 Systèmes et Applications Réparties Cours 11 - Les Enterprise Java Beans (Introduction aux Enterprise Claude Duvallet Université du Havre UFR Sciences

Plus en détail

But de cette présentation

But de cette présentation Réseaux poste à poste ou égal à égal (peer to peer) sous Windows But de cette présentation Vous permettre de configurer un petit réseau domestique (ou de tpe), sans serveur dédié, sous Windows (c est prévu

Plus en détail

L annuaire et le Service DNS

L annuaire et le Service DNS L annuaire et le Service DNS Rappel concernant la solution des noms Un nom d hôte est un alias assigné à un ordinateur. Pour l identifier dans un réseau TCP/IP, ce nom peut être différent du nom NETBIOS.

Plus en détail

Systèmes distribués. Les Sockets

Systèmes distribués. Les Sockets Systèmes distribués Plusieurs technologies existent : Les sockets Les remote procedure call (RPC) Remote Method Invocation (RMI) Les Sockets L'utilisation des Sockets nécessite De gérer le codage et le

Plus en détail

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Mr. B. Benaissa. Centre universitaire Nâama LOGO Mr. B. Benaissa Centre universitaire Nâama Dans ce chapitre, nous allons examiner le rôle de la couche application. Nous découvrirons également comment les applications, les services et les protocoles

Plus en détail

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique Services OSI Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique 59 SERVICES "APPLICATION" Architecture spécifique : ALS (Application Layer

Plus en détail

Cours de Réseau et communication Unix n 6

Cours de Réseau et communication Unix n 6 Cours de Réseau et communication Unix n 6 Faculté des Sciences Université d Aix-Marseille (AMU) Septembre 2013 Cours écrit par Edouard Thiel, http://pageperso.lif.univ-mrs.fr/~edouard.thiel. La page du

Plus en détail

18 TCP Les protocoles de domaines d applications

18 TCP Les protocoles de domaines d applications 18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles

Plus en détail

Figure 1. Structure répartie

Figure 1. Structure répartie Chapitre I: Applications Réparties et Middleware 1. Définition d une application répartie Une application répartie est constituée d un ensemble de processus (d objets, d agents, d acteurs) s exécutant

Plus en détail

QUESTIONNAIRE N 1 SUR TCP/IP : GÉNÉRALITÉS

QUESTIONNAIRE N 1 SUR TCP/IP : GÉNÉRALITÉS QUESTIONNAIRE N 1 SUR TCP/IP : GÉNÉRALITÉS 1) Quelle est la signification de l'acronyme DOD IP? 2) Quel organisme est à l'origine de TCP/IP? 3) Quand a-t-il été inventé? 4) Dans quel but a-t-il été inventé?

Plus en détail

Chapitre VIII : Introduction aux réseaux. Motivations. Notion de système distribué. Motivations Différents types de SE

Chapitre VIII : Introduction aux réseaux. Motivations. Notion de système distribué. Motivations Différents types de SE Chapitre VIII : Introduction aux réseaux Eric.Leclercq@u-bourgogne.fr Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 4 mai 2006 1 Structures de Systèmes distribués

Plus en détail

TP DE PROGRAMMATION RESEAU : LES SOCKETS

TP DE PROGRAMMATION RESEAU : LES SOCKETS - ENSEIRB - TP DE PROGRAMMATION RESEAU : LES SOCKETS Patrice KADIONIK - 1/11- TABLE DES MATIERES www.enseirb.fr/~kadionik 1. BUT DES TRAVAUX PRATIQUES...3 2. SEANCE 1 : UTILISATION DES COMMANDES UNIX/LINUX

Plus en détail

Table des matières. 1 Vue d ensemble des réseaux... 5. 2 Transmission des données : comment fonctionnent les réseaux... 23. Introduction...

Table des matières. 1 Vue d ensemble des réseaux... 5. 2 Transmission des données : comment fonctionnent les réseaux... 23. Introduction... Table des matières Introduction 1 Structure du livre 2 Nouveautés par rapport à la 3 e édition 2 Conventions typographiques 3 1 Vue d ensemble des réseaux 5 Qu est-ce qu un réseau? 6 Pourquoi créer un

Plus en détail

1. QCM (40 points) (1h)

1. QCM (40 points) (1h) Examen 1ère session 2012-2013 page 1 NSY 102 - AISL IPST-CNAM Intranet et Designs patterns NSY 102 Vendredi 26 Avril 2013 Durée : 3 heures Enseignants : LAFORGUE Jacques 1. QCM (40 points) (1h) Mode d'emploi

Plus en détail

Langages et technologies du Web 1

Langages et technologies du Web 1 Langages et technologies du Web 1 Manuel ATENCIA manuel.atencia-arcas@upmf-grenoble.fr Objectifs Comprendre le fonctionnement du World Wide Web Produire des documents web statiques et dynamiques 1 2 vocabulaire

Plus en détail

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir. Mise à jour: Mars 2012 Objectif du module Réseaux Informatiques [Archi/Lycée] http://fr.wikipedia.org/ Nicolas Bredèche Maître de Conférences Université Paris-Sud bredeche@lri.fr Acquérir un... Ressources

Plus en détail

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication Chapitre VII : Principes des réseaux Structure des réseaux Types de réseaux La communication Les protocoles de communication Introduction Un système réparti est une collection de processeurs (ou machines)

Plus en détail

Chapitre 1. Présentation générale de l Internet

Chapitre 1. Présentation générale de l Internet Chapitre 1. Présentation générale de l Internet Sommaire Chapitre 1. Présentation générale de l Internet... 1 1. Vue d ensemble d Internet... 2 1.1. Introduction... 2 1.2. Définition de l Internet... 2

Plus en détail

Exécution des applications réparties

Exécution des applications réparties Exécution des applications réparties Programmation des Applications Réparties Olivier Flauzac URCA Master STIC-Informatique première année Olivier Flauzac (URCA) PAR : Exécution des applications réparties

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Livre blanc Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Présentation Ce document examine la prise en charge de la programmabilité sur l'infrastructure axée

Plus en détail

Tunnels et VPN. 20/02/2008 Formation Permanente Paris6 86. Sécurisation des communications

Tunnels et VPN. 20/02/2008 Formation Permanente Paris6 86. Sécurisation des communications Tunnels et VPN 20/02/2008 Formation Permanente Paris6 86 Sécurisation des communications Remplacement ou sécurisation de tous les protocoles ne chiffrant pas l authentification + éventuellement chiffrement

Plus en détail

Services d infrastructure réseaux

Services d infrastructure réseaux Services d infrastructure réseaux Cours de Réseaux Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012-2013 Tuyêt Trâm DANG NGOC Services d infrastructure réseaux 1 / 30 Plan 1 Adressage

Plus en détail

Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr

Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr Année 2010-2011 Réseaux I Conclusion : retour sur l architecture protocolaire Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Plan 1 Rappels 2 Le dialogue

Plus en détail

Introduction aux systèmes répartis

Introduction aux systèmes répartis Introduction aux systèmes répartis Grappes de stations Applications réparties à grande échelle Systèmes multicalculateurs (1) Recherche de puissance par assemblage de calculateurs standard Liaison par

Plus en détail

Cours réseaux Modèle OSI

Cours réseaux Modèle OSI Cours réseaux Modèle OSI IUT 1 Université de Lyon Introduction: le modèle OSI Un modèle théorique : le modèle OSI (Open System Interconnection) A quoi ça sert: Nécessité de découper/classifier l ensemble

Plus en détail

Cisco Certified Network Associate

Cisco Certified Network Associate Cisco Certified Network Associate Version 4 Notions de base sur les réseaux Chapitre 3 01 Quel protocole de la couche application sert couramment à prendre en charge les transferts de fichiers entre un

Plus en détail

Cours des réseaux Informatiques (2010-2011)

Cours des réseaux Informatiques (2010-2011) Cours des réseaux Informatiques (2010-2011) Rziza Mohammed rziza@fsr.ac.ma Supports Andrew Tanenbaum : Réseaux, cours et exercices. Pascal Nicolas : cours des réseaux Informatiques, université d Angers.

Plus en détail

Conception d Applications Réparties

Conception d Applications Réparties Jean-François Roos LIFL - équipe GOAL- bâtiment M3 Extension - bureau 206 -Jean-Francois.Roos@lifl.fr 1 Objectifs du Cours Appréhender la conception d applications réparties motivations et concepts architectures

Plus en détail

La plate-forme Java RMI

La plate-forme Java RMI La plate-forme Java RMI Frank Singhoff Bureau C-202 Université de Brest, France Lab-STICC/UMR 3192 singhoff@univ-brest.fr UE systèmes à objets répartis, Université de Brest Page 1/25 Sommaire 1. Le modèle

Plus en détail

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP TR2 : Technologies de l'internet Chapitre VII Serveur DHCP Bootp Protocole, Bail Relais DHCP 1 Serveur DHCP Dynamic Host Configuration Protocol La configuration d un serveur DHCP permet : d assurer la

Plus en détail

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Expérience d un hébergeur public dans la sécurisation des sites Web, CCK Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Plan Introduction Sécurisation des sites Web hébergés a Conclusion Introduction

Plus en détail

Services de Bureau à Distance

Services de Bureau à Distance Services de Bureau à Distance 02 février 2015 TABLE DES MATIERES PRESENTATION DU SYSTEME RDS... 2 DEFINITION... 2 MODE DE FONCTIONNEMENTS... 4 AVANTAGES ET INCONVENIENTS... 4 AVANTAGES... 4 INCONVENIENTS...

Plus en détail

- A - B - La documentation en ligne > Glossaire internet. Vous trouverez ici un glossaire des termes les plus souvent utilisés sur Internet.

- A - B - La documentation en ligne > Glossaire internet. Vous trouverez ici un glossaire des termes les plus souvent utilisés sur Internet. La documentation en ligne > Glossaire internet Vous trouverez ici un glossaire des termes les plus souvent utilisés sur Internet. @ FTP PAQUET ASCII HOTE PING BACKBONE HTML PPP BANDE PASSANTE HTTP PROVIDER

Plus en détail

DIFF DE BASE. Serendip serendip@via.ecp.fr. Samy samy@via.ecp.fr

DIFF DE BASE. Serendip serendip@via.ecp.fr. Samy samy@via.ecp.fr DIFF DE BASE Serendip serendip@via.ecp.fr Samy samy@via.ecp.fr I. INTRODUCTION AU RÉSEAU RÉSEAU : /ʁE.ZO/ N.M. DÉR., AU MOYEN DU SUFF. -EAU, DE L'A. FR. REIZ, REZ «FILET» (RETS); RÉSEAU A ÉTÉ EN CONCURRENCE

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD2 Exercices Exercice 1 : Dressez la liste des 5 périphériques finaux, 6 périphériques intermédiaires et 3 formes de support réseau. Périphériques finaux (hôtes): ordinateur de bureau, ordinateur

Plus en détail

LES PROTOCOLES TCP ET UDP

LES PROTOCOLES TCP ET UDP LES PROTOCOLES TCP ET UDP 1. LES NUMEROS DE PORT TCP et UDP sont des protocoles de la couche Transport (niveau 4) du modèle OSI. A la réception d'un datagramme, une machine est identifiée de manière unique

Plus en détail

http://adminrezo.fr Nicolas Dewaele Généralités sur les réseaux informatiques Encapsulation

http://adminrezo.fr Nicolas Dewaele Généralités sur les réseaux informatiques Encapsulation Encapsulation Demande de page par HTTP Client : 9.68.0.99 Serveur :.8.0.86 Get 00 OK L encapsulation Détails de cette requête HTTP : Niveau application, infos lisibles par l utilisateur : HTTP : Get www.google.fr

Plus en détail

Réseaux - Cours 4. IP : introduction et adressage. Cyril Pain-Barre. version du 18/2/2013. IUT Informatique Aix-en-Provence

Réseaux - Cours 4. IP : introduction et adressage. Cyril Pain-Barre. version du 18/2/2013. IUT Informatique Aix-en-Provence Réseaux - Cours 4 : introduction et adressage Cyril Pain-Barre IUT Informatique Aix-en-Provence version du 18/2/2013 1/34 Cyril Pain-Barre : introduction et adressage 1/26 TCP/ l architecture d Internet

Plus en détail

TAGREROUT Seyf Allah TMRIM

TAGREROUT Seyf Allah TMRIM TAGREROUT Seyf Allah TMRIM Projet Isa server 2006 Installation et configuration d Isa d server 2006 : Installation d Isa Isa server 2006 Activation des Pings Ping NAT Redirection DNS Proxy (cache, visualisation

Plus en détail

Implementing a simple RMI Application over the. Internet. (using. and

Implementing a simple RMI Application over the. Internet. (using. and Implementing a simple RMI Application over the (using and Internet and comparing HTTP tunneling,, RMI Proxy) Plan de l exposé Introduction Problématique HTTP tunneling Comment RMI «tunnelle» des messages

Plus en détail

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation Objectif : Tout administrateur système et réseau souhaitant avoir une vision d'ensemble des problèmes de sécurité informatique et des solutions existantes dans l'environnement Linux. Prérequis : Connaissance

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 46 NFP111 Systèmes et Applications Réparties Cours 2 - Les appels de procédure distants (Partie 1) Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail