La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Réseaux / Java RMI Module Java Expert.

Présentations similaires


Présentation au sujet: "CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Réseaux / Java RMI Module Java Expert."— Transcription de la présentation:

1 CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Réseaux / Java RMI Module Java Expert

2 Module UV Réseaus / SD Page 2 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module Java n Vue densemble du langage Java n Le langage Java : syntaxe et sémantique n Programmation multi-tâche : les threads n Accéder aux bases de données n Composants réutilisables : le modèle MVC n Développement Client/Serveur n Présentation de lIDE VisualAge n Les serveurs dapplications J2EE n Les Enterprise JavaBeans n Ré-ingénierie dapplications Java

3 Module UV Réseaus / SD Page 3 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Système de communication à l intérieur d un même site (local area network ou LAN) servant à relier des ordinateurs entre eux sur une distance restreinte dans différents buts : –Mise en commun d équipements : imprimante laser, disque dur de grande capacité, lecteurs de CD-ROM, périphériques de communication, etc. –Partage d informations numériques (fichiers de données, de textes, etc.) entre individus ou groupes d individus. Réseau local - Définition

4 Module UV Réseaus / SD Page 4 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau local - Définition –Partage de systèmes de maintenance pour sauvegardes, installation de logiciels, etc.

5 Module UV Réseaus / SD Page 5 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle LAN versus MAN versus WAN n MAN - metropolitan area network / réseau métropolitain –Réseau qui regroupe des réseaux locaux situés dans une même zone urbaine. n WAN - wide area network / réseau étendu –Système de communication formant un grand réseau déployé géographiquement sur une longue distance, reliant éventuellement entre eux des réseaux locaux, en ayant recours le plus souvent à des réseaux publics pour la transmission à distance (lignes téléphoniques spécialisées ou liaisons satellites)

6 Module UV Réseaus / SD Page 6 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les réseaux…un monde complexe... « C est juste en attendant que la connexion Internet fonctionne de nouveau » © Richtennant

7 Module UV Réseaus / SD Page 7 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Composantes dun réseau local n Matériel –Serveur (si choisi approche avec serveur dédié)+ unité d alimentation de secours (UPS - uninterrupted power supply) –Postes de travail –Cartes d interface réseau (pour le serveur et les postes de travail) –Câbles réseau –unité de sauvegarde sur bande n Logiciel –Système d exploitation du réseau local

8 Module UV Réseaus / SD Page 8 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Critères à considérer pour le choix du type de réseau à installer: –Taille de lentreprise –Niveau de sécurité nécessaire –Type dactivité –Niveau de compétence dadministration disponible –Volume du trafic sur le réseau –Besoins des utilisateurs du réseau –Budget alloué au fonctionnement du réseau (pas seulement lachat mais aussi lentretien et la maintenance)

9 Module UV Réseaus / SD Page 9 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Réseau poste à poste Yves Lise Yves Louis Yves Lucie

10 Module UV Réseaus / SD Page 10 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Réseau poste à poste (peer to peer) –Le système d exploitation de chaque poste est configuré pour offrir un support réseau ce qui permet au poste d agir à la fois comme poste et comme serveur. Chaque poste peut partager ses ressources avec un autre (fichiers, imprimante). Il peut être à la fois client et serveur. –Windows pour Workgroups, Windows 95, 98, ME Windows NT Workstation, et Windows 2000 Professionnel intègrent toutes les fonctionnalités du réseau poste à poste

11 Module UV Réseaus / SD Page 11 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Réseau poste à poste (peer to peer) –Avantages : Simple à mettre en place Coût réduit (achat d une carte par poste et de câbles) –Désavantages : Performance réduite du poste utilisé à la fois comme serveur et comme poste Peu de sécurité. Décentralisé donc difficile à administrer, chaque utilisateur gérant son propre poste et en planifiant la sécurité Pour réseaux de 10 postes et moins

12 Module UV Réseaus / SD Page 12 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Réseau client/serveur Le serveur = ordinateur qui centralise les informations ou qui met à la disposition de tous les ressources dont il dispose. On ne travaille pas dans des applications sur un serveur dédié: il a pour fonction de mettre ses ressources en partage. Le client(s) = poste de travail qui peut utiliser ses propres ressources ou les ressources du serveur si elles ont été préalablement déclarées publiques. Les logiciels d application doivent être exécutés à partir dun client.

13 Module UV Réseaus / SD Page 13 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Serveur dédié : ordinateur puissant qui partage ses ressources avec d autres ordinateurs du réseau par l intermédiaire de son système d exploitation réseau. –Cœur du réseau client-serveur. Comprend un ou plusieurs processeurs puissants, un disque dur fiable (SCSI) et autant de mémoire que possible. n Répond à deux besoins principaux : –Gère le flot des données à travers le réseau grâce à son système d exploitation réseau –Permet d assurer la sécurité et l intégrité de ces données –Deux facteurs limitants : vitesse de la carte réseau et de l accès en lecture-écriture sur le disque dur du serveur

14 Module UV Réseaus / SD Page 14 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Serveur dédié dans réseau client/serveur –Avantages: gestion des ressources centralisée sécurité accrue par rapport à réseau poste à poste réseau évolutif –Désavantages: Coût élevé (serveur + système d exploitation réseau) Installation et gestion complexes maillon faible du réseau client-serveur car tout le réseau est structuré autour du serveur dédié. Doit prévoir des solutions de relève en cas de panne du serveur.

15 Module UV Réseaus / SD Page 15 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseau poste à poste ou réseau avec serveur dédié? n Serveur dédié dans réseau client/serveur –Partage de données : serveur de fichiers –Partage de logiciels : serveur d applications –Partage de ressources : serveur d impression Yves Lise Louis Lucie

16 Module UV Réseaus / SD Page 16 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Carte dinterface réseau n Carte d interface réseau (NIC - network interface card) –Carte d'interface qui assure la transmission de données entre un ordinateur ou un serveur et un réseau. Les cartes réseau sont généralement Ethernet, Token Ring ou FDDI. Les plus répandues sont les cartes Ethernet 10/100 Mbps. –Lien physique entre le poste de travail et le câble réseau –La carte réseau est munie de son propre microprocesseur

17 Module UV Réseaus / SD Page 17 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Types de câbles Paire torsadée Câble coaxial Fibre optique

18 Module UV Réseaus / SD Page 18 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Types de câbles 1. Signal électrique dans un conducteur de cuivre –Paire torsadée non blindée (UTP - Unshielded Twisted Pair). 8 fils de cuivre torsadés 2 à 2. Sensible aux interférences électro- magnétiques. Type 3 (10 BaseT) ou type 5 (100 BaseT). Ressemble au câble téléphonique. Le plus utilisé (cf. Topologie étoile) –Paire torsadée blindée (STP - Shielded Twisted Pair). Type 1. Conducteurs plus gros que dans non blindé. Blindage externe protège des interférences. (cf. Topologie anneau) –Câble coaxial : câble robuste. Peut être tiré sur de longues distances. Peu sensible aux interférences électro-magnétiques(cf. Topologie bus).

19 Module UV Réseaus / SD Page 19 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Types de câbles 2. Signal lumineux dans un tube de verre –Fibre optique : transmission plus rapide (100 Mbps) –Utilisée pour des liaisons longue distance –Insensible aux interférences électro-magnétiques. –Installation délicate –Coûteux –Topologie étoile ou anneau

20 Module UV Réseaus / SD Page 20 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Types de câbles n Chaque type de câble présente des restrictions quant au nombre de connexions possibles, la distance entre les connexions, la longueur maximale du câblage.

21 Module UV Réseaus / SD Page 21 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Réseaux sans fils 1. Infrarouge –Fiable mais sensible. Le récepteur doit être à portée optique de l émetteur sinon le signal est coupé. 2. Radio-fréquences –Émetteur-récepteur. Le poste de travail doit être en liaison radio avec le serveur.

22 Module UV Réseaus / SD Page 22 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie de réseau n Configuration physique de l'interconnexion au moyen de câbles des équipements d'un réseau local. –Topologie en bus –Topologie en étoile –Topologie en anneau –Topologie en arbre

23 Module UV Réseaus / SD Page 23 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en bus n Structure de réseau dans laquelle chaque station de travail est reliée à un câble linéaire porteur du signal. Seul le nœud destinataire s occupe de l information qui lui est destinée.

24 Module UV Réseaus / SD Page 24 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en bus n Utilise le câble coaxial n Peu sensible aux perturbations électromagnétiques n Si il y a un bris de câble, toute communication sur le réseau est impossible

25 Module UV Réseaus / SD Page 25 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en étoile n Structure de réseau où chaque station est reliée à un point central. Liaison dite point à point.

26 Module UV Réseaus / SD Page 26 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en étoile n Utilise le câble en paire torsadée ou en fibre optique n Avantage: si il y a bris du câble d un poste, ça n affecte pas le reste du réseau n Désavantage: requiert plus de câble que la topologie bus n Réseau 10BaseT: débit 10 Mbps; câble de paire torsadée (Twisted pair); carte Ethernet : très répandu. n Réseau 100BaseT ou Fast Ethernet: débit de 100 Mbps

27 Module UV Réseaus / SD Page 27 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en étoile n Hub ou répéteur multiport : Organe de raccordement d'un réseau capable de recevoir, de répéter et de régénérer les signaux que lui acheminent des circuits qui lui sont reliés à la manière des branches d'une étoile et qui le rejoignent à travers de multiples ports.

28 Module UV Réseaus / SD Page 28 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en anneau n Structure de réseau où les stations et le serveur sont reliées de manière à former un circuit bouclé.

29 Module UV Réseaus / SD Page 29 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en anneau n Si il y a bris d un câble, le reste du réseau n est pas affecté si on utilise un double anneau n Utilise de la paire torsadée ou de la fibre optique n Requiert plus de câble que la topologie bus mais moins que la topologie étoile

30 Module UV Réseaus / SD Page 30 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en arbre n Structure de réseau qui combine les caractéristiques des topologies bus et étoile

31 Module UV Réseaus / SD Page 31 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Topologie en arbre n La longueur totale de chaque segment est limitée par le type de câble utilisé n Si le câble dorsal fait défaut, tout le segment tombe en panne n Plus difficile à configurer que les autres topologies

32 Module UV Réseaus / SD Page 32 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Comment circule l information dans le réseau n Essentiellement, trois méthode basées sur trois protocoles de communication: 1. Détection de collision (probabiliste) - Technologie Ethernet –Norme de IEEE (Institute of Electrical and Electronics Engineers). –Protocole CSMA/CD (Carrier Sense Multiple Access with Collision Detection) –Réseaux basés sur cartes Ethernet. Topologie bus logique et étoile physique. –Câble coaxial, paire torsadée ou fibre optique. –Taux de transmission : 10 ou100 Mbps

33 Module UV Réseaus / SD Page 33 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Comment circule l information dans le réseau 2. Le jeton (déterministe) - Technologie Token Ring –Norme de IEEE –Protocole Token Ring –Utilisé dans les réseaux basés sur les cartes Token Ring –Topologie anneau –Paire torsadée blindée ou fibre optique –Taux de transmission : 4 ou 16 Mbps

34 Module UV Réseaus / SD Page 34 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Comment circule l information dans le réseau 3. FDDI (Fiber Distributed Data Interface) –Norme ANSI X3T9.5 (très semblable à Token Ring). 2 anneaux. –Fibre optique –Pour haut taux de transfert (100 Mbps) –Utilisé pour applications qui nécessitent beaucoup de bande passante (p. ex.: imagerie médicale)

35 Module UV Réseaus / SD Page 35 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Modèle OSI n Modèle de référence pour l interconnexion de systèmes ouverts développé par l ISO –Modèle de référence en couches destiné à fournir un cadre conceptuel aux échanges entre systèmes hétérogènes. Découpe les différentes parties d un réseau informatique en 7 couches distinctes. 1. Couche physique (câbles, connecteurs) 2. Couche liaison de données 3. Couche réseau 4. Couche transport 5. Couche session 6. Couche présentation 7. Couche application (communication logiciel et réseau. par.ex. ftp, smtp, etc)

36 Module UV Réseaus / SD Page 36 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Système dexploitation réseau n Les systèmes d exploitation réseau (NOS - network operating system) peuvent tourner sur n importe quel réseau standard (Ethernet, Token Ring ou FDDI). n Les principaux sont : –Windows NT Server ou Windows 2000 Server de Microsoft (41% du marché des nouveaux achats) –Netware de Novell (13.8%) –UNIX (13.9%) –Linux (27%) –Source : IDC. 10 septembre

37 Module UV Réseaus / SD Page 37 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Système d exploitation réseau n Intègre différents protocoles réseau. n Protocole = ensemble des règles, codes et signaux, conçu pour établir la communication et contrôler les échanges d'informations entre deux entités distinctes à travers un réseau. n Par exemple, le protocole IPX de Novell, le protocole TCP/IP (Transmission Control Protocol/Internet Protocol) utilisé pour la communication entre ordinateurs sur Internet. n Il y a plus d'une centaine de protocoles réunis dans le protocole TCP/IP. Mis à part les protocoles TCP et IP, les trois autres principaux protocoles de cette famille sont le protocole SMTP régissant le courrier électronique, le protocole FTP pour le transfert de fichiers et le protocole Telnet pour la connexion à distance.

38 Module UV Réseaus / SD Page 38 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Système d exploitation réseau n La partie client du système d exploitation réseau installée sur le poste de travail redirige les requêtes des usagers du poste de travail vers le serveur via la carte réseau et le câble. n Lutilisateur se connecte au serveur depuis son poste avec un login et un mot de passe. Ensuite, il peut accéder aux données du serveur selon les droits que lui a accordés ladministrateur.

39 Module UV Réseaus / SD Page 39 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Étapes d implantation d un réseau local 1.Désignation d un administrateur réseau 2.Choix du matériel, de la topologie du réseau et du système d exploitation réseau. 3.Mise au point d une méthodologie d implantation 4.Installation des équipements (serveur, postes de travail, cartes et câbles) 5.Configuration du système d exploitation réseau sur le serveur (droits d accès par groupes d utilisateurs + sécurité d accès (mots de passe, droits des utilisateurs en lecture, écriture, etc.)

40 Module UV Réseaus / SD Page 40 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Étapes d implantation d un réseau local 6.Installation des logiciels d application sur le serveur et/ou les postes de travail 7.Création de l interface utilisateur sur les postes de travail 8.Mise en place des procédures pour le suivi de la gestion des ressources (copies de sauvegarde du serveur, des données des usagers, mise à jour des logiciels, etc.) 9.Rédaction de la documentation de ladministrateur et de l usager 10.Test du réseau 11.Formation des usagers

41 Module UV Réseaus / SD Page 41 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Dossiers partagés n Un poste relié en réseau peut accéder à des disques qui ne sont pas sur son poste mais plutôt sur d autres ordinateurs connectés au réseau n Dans la plupart des cas, on n accède qu à certains dossiers de ces disques réseau qu on appelle dossiers partagés n On peut restreindre l accès aux dossiers partagés par mot de passe n Nomenclature : \\nom du serveur\nom du partage

42 Module UV Réseaus / SD Page 42 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Intranet - Définition n Réseau informatique privé faisant appel aux outils, protocoles (TCP/IP) et technologies d Internet au sein d un réseau corporatif local ou étendu n On se sert d un navigateur Web pour le parcourir et on assure sa sécurité au moyen d un coupe-feu (firewall) lorsqu il est relié à Internet

43 Module UV Réseaus / SD Page 43 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Intranet n L'intranet répond à divers besoins de l entreprise: –Partage de l'information : édition, publication et accès - recherche, navigation et consultation –Développement de la collaboration et des échanges : messagerie, agendas et tâches partagés –Programmation et intégration des applications : développement personnalisé, base de données, mises à jour

44 Module UV Réseaus / SD Page 44 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Extranet - Définition n Réseau informatique constitué des intranets de plusieurs entreprises qui communiquent entre elles, à travers le réseau Internet, au moyen d un serveur Web sécurisé.

45 Module UV Réseaus / SD Page 45 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Mécanisme de communication : sockets Module Java

46 Module UV Réseaus / SD Page 46 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe java.net.InetAddress n Représentation des adresses réseaux Internet – , n Création –InetAddress host = InetAddress.getLocalHost(); –InetAddress host = InetAddress.getByName("www.lifl.fr"); –InetAddress host[] = InetAddress.getAllByName("www.lifl.fr"); n Propriétés –Adresse symbolique : String getHostName() –Adresse IP : String getHostAddress() –Adresse binaire : byte[] getAddress() –boolean isMulticastAddress() n Méthodes –equals, toString, hashCode

47 Module UV Réseaus / SD Page 47 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Obtenir un objet java.net.InetAddress import java.net.InetAddress; try { InetAddress adresseLocale = InetAddress.getLocalHost(); } catch(java.net.UnknownHostException ex) {... } try { InetAddress adresse = InetAddress.getByName("www.lifl.fr"); } catch(java.net.UnknownHostException ex) {... } try { InetAddress[] adresses = InetAddress.getAllByName("www.lifl.fr"); } catch(java.net.UnknownHostException ex) {... }

48 Module UV Réseaus / SD Page 48 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Accès aux propriétés dun objet java.net.InetAddress public static void afficher(InetAddress adresse) { String chaine = adresse.toString(); String nom = adresse.getHostName(); String ip = adresse.getHostAddress(); byte[] binaire = adresse.getAddress(); boolean multicast = adresse.isMulticastAddress()) }

49 Module UV Réseaus / SD Page 49 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quelques protocoles Internet n IP pour Internet Protocol –protocole de routage des messages sur Internet –datagrammes de machine à machine n UDP pour User Datagram Protocol –protocole de transport non fiable de messages –datagrammes de port à port n Multicast IP –protocole de diffusion non fiable de messages –datagrammes vers groupe n TCP pour Transmission Control Protocol –protocole de transport fiable de messages –flux de port à port n Port = identifiant symbolique dun processus / un service

50 Module UV Réseaus / SD Page 50 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le principe dune socket Réseau n Une socket = une prise logicielle daccès au réseau de la machine où elle est créée –#port identifiant unique Application #port Application #port send / receive

51 Module UV Réseaus / SD Page 51 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les Sockets UDP/IP Module Java

52 Module UV Réseaus / SD Page 52 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Principes n UDP pour User Datagram Protocol sur IP n Communication orientée paquets –primitives send() et receive() n Transfert paquets / datagrammes non fiables ! –perte de paquets sur Internet –duplication –pas de contrôle d'erreurs –ordre non garanti n Plus performant que TCP/IP –pas de surcoût pour établissement / contrôle de la connexion –pas de retransmissions n Exemple : la visio-conférence –perte d'une trame non dramatique !

53 Module UV Réseaus / SD Page 53 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La communication en UDP s = DatagramSocket(#port) p = DatagramPacket(buf) s.receive(p) traiter(p) s.close() Application réceptrice s = DatagramSocket() p = DatagramPacket( #port) s.send(p) s.close() Application émettrice Paquet

54 Module UV Réseaus / SD Page 54 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Un serveur UDP import java.net.*; public class ServeurUDP { public static void main (String args[]) throws Exception { DatagramSocket ds = new DatagramSocket(8000); while (true) { DatagramPacket msg = new DatagramPacket( new byte[512], 512); ds.receive(msg); System.out.println(« Recu » + new String(msg.getData())); String texteReponse = « OK »; DatagramPacket reponse = new DatagramPacket( texteReponse.getBytes(), texteReponse.length(), msg.getAddress(), msg.getPort()); ds.send(reponse); }}}

55 Module UV Réseaus / SD Page 55 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Un client UDP import java.net.*; public class ClientUDP { public static void main (String args[]) throws Exception { String message = "Hello world!"; DatagramSocket ds = new DatagramSocket(); DatagramPacket envoi = new DatagramPacket( message.getBytes(), message.length(), InetAddress.getByName("localhost"), 8000); ds.send(envoi); DatagramPacket msg = new DatagramPacket(new byte[512], 512); ds.receive(msg); System.out.println ( new String(msg.getData()) ); ds.close(); }}

56 Module UV Réseaus / SD Page 56 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe java.net.DatagramPacket (1/2) n Représente un paquet UDP –tampon de données, longueur, adresse IP, port n Constructeurs –new DatagramPacket(buffer, taille) –new DatagramPacket(buffer, taille, inetAddress, port) n P ropriétés –Buffer : byte[] getData() –Taille buffer : int getLength() –Adresse IP : InetAddress getAddress() –Port IP : int getPort() –Modification : setData, setLength, setAddress, setPort

57 Module UV Réseaus / SD Page 57 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe java.net.DatagramPacket (2/2) n Un émetteur crée un DatagramPacket avec les données, la longueur, l'adresse et le numéro de port du destinataire –byte[] tampon = new byte[8096]; –ia = InetAddress.getByName("www.lifl.fr"); –DatagramPacket dp = new DatagramPacket(tampon, tampon.length, ia, 1000); n Un récepteur alloue le tampon pour recevoir le paquet et le passe au constructeur de DatagramPacket –byte[] tampon = new byte[8096]; –dp = new DatagramPacket(tampon, tampon.length); n A la réception, le DatagramPacket contient les données, ladresse et le port de lémetteur n Le tampon peut être réutilisé pour plusieurs envois / réceptions

58 Module UV Réseaus / SD Page 58 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe java.net.DatagramSocket n Une prise pour pouvoir communiquer en UDP –peut être connectée à une socket pair n Constructeurs –socket anonyme : new DatagramSocket() –socket avec port : new DatagramSocket(1000) new DatagramSocket(1000,inetAddress) n Propriétés –ladresse locale : InetAddress getLocalAddress() –ladresse distante : InetAddress getAddress() –le port local : int getLocalPort() –le port distant : int getPort() n Méthodes –connexion : void connect(InetAddress ia, int port) –émission : void send(DatagramPacket dp) –réception : void receive(DatagramPacket dp) –fermeture : void close()

59 Module UV Réseaus / SD Page 59 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les Sockets Multicast IP Module Java

60 Module UV Réseaus / SD Page 60 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Applications Multicast IP n Délivrer un message à un ensemble de destinataires n Plus efficace que l'envoi d'un message à chaque destinataire –pris en charge par les routeurs n Destinataires sont identifiés par une unique adresse de groupe –indépendante de la localisation des destinataires –adressage logique des groupes : RFC 966 et 1112 –classe D : 224.x.x.x x.x.x –mais adresse choisie à la main ! n Les membres du groupe peuvent changer à tout moment –primitives d'adhésion et de sortie d'un groupe

61 Module UV Réseaus / SD Page 61 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quelques exemples d'applications Multicast IP n Transmission de vidéo sur Internet : MBONE n Jeux répartis multi-utilisateurs temps réel n Systèmes de fichiers distribués –sans connaître la localisation physique –réplication, tolérances aux pannes n Services de localisation de ressources –rechercher une ressource WWW –le serveur le plus proche répond n Bref beaucoup d'applications intéressantes !

62 Module UV Réseaus / SD Page 62 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La communication en Multicast IP s = MuticastSocket(#port) p = DatagramPacket(buf) s.receive(p) traiter(p) s.close() Application réceptrice s = MuticastSocket() p = DatagramPacket( #port) s.send(p) s.close() Application émettrice Paquet

63 Module UV Réseaus / SD Page 63 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Un serveur Multicast IP import java.net.*; public class ServeurMulticastIP { public static void main (String args[]) throws Exception { InetAddress mcast = InetAddress.getByName(" "); MulticastSocket ms = new MulticastSocket(8000); ms.joinGroup (mcast); while (true) { DatagramPacket msg = new DatagramPacket( new byte[512], 512); ms.receive(msg); System.out.println(msg.getAddress() + ":" + msg.getPort() + " a envoyé " + new String(msg.getData())); } } }

64 Module UV Réseaus / SD Page 64 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Un client Multicast IP import java.net.*; public class ClientMulticastIP { public static void main (String args[]) throws Exception { String message = "Hello world!"; MulticastSocket ms = new MulticastSocket(); InetAddress mcast = InetAddress.getByName(" "); DatagramPacket dp = new DatagramPacket( message.getBytes(), message.length(), mcast, 8000); for (int i=0; i<10; i++) ms.send(dp, (byte)1); ms.close(); }}

65 Module UV Réseaus / SD Page 65 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe java.net.MulticastSocket n Prise pour communiquer en Multicast IP –Sous classe de java.net.DatagramSocket n Nouvelles méthodes –joindre un groupe : void joinGroup (InetAddress mcast); –quitter un groupe : void leaveGroup (InetAddress mcast); –émission : void send(DatagramPacket dp, byte ttl); n Diffusion contrôlable : –champ time-to-live (TTL) –TTL = nombre de réseaux à franchir –TTL = 0 : même machine –TTL = 1 : même sous-réseau –TTL = : selon topologie –TTL = 255 : aucune restriction !

66 Module UV Réseaus / SD Page 66 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Synthèse sur sockets UDP et Multicast IP ù API simple –peu de primitives de communication ù Communication efficace –peu de surcoût par rapport transport IP ÷ Non fiable ! –perte et/ou duplication de messages sur Internet ÷ Programmation clients != programmation serveurs ! –asymétrie des primitives de communication ÷ Rien pour la structuration de lapplication ! –API bas niveau, transfert de paquets doctets –taille du tampon à allouer pour la réception ? ù Seulement approprié pour des applications sur réseaux locaux mais nécessite une fiabilisation réalisée par lapplication –ex. Network File System (NFS)

67 Module UV Réseaus / SD Page 67 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les Sockets TCP / IP Module Java

68 Module UV Réseaus / SD Page 68 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Principes n TCP/IP : Transmission Control Protocol sur IP n Propriétés de la communication –point à point, un circuit virtuel –bidirectionnelle –transport fiable –orienté flux doctets –séquencement de données non dupliquées –sans séparateur d'enregistrement n => un « pipe » étendu au réseau n Interface de programmation de la couche Transport de lInternet

69 Module UV Réseaus / SD Page 69 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Principes n Socket = prise applicative de communication réseau –2 + port –adresse locale de la socket / adresse distante de la socket pair = adresse machine physique –port = identifiant unique sur la machine n Fonctionnement –Serveur crée une socket et attend les requêtes des clients –Client se connecte à la socket d'un serveur, envoie ses requêtes –Dialogue client/serveur à travers des flux de données

70 Module UV Réseaus / SD Page 70 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le schéma de fonctionnement Serveur s = ServerSocket(port#) c = s.accept() OutputStream InputStream c.close() s.close() Client s = OutputStream InputStream s.close() pipe réseau lecture écriture connexion

71 Module UV Réseaus / SD Page 71 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de serveur TCP/IP : Daytime sur port 13 import java.net.*; import java.io.*; public class ServeurDaytime { public static void main(String args[]) throws Exception { ServerSocket serveur = new ServerSocket(13); while (true) { System.out.println(serveur + " en attente !"); Socket client = serveur.accept(); System.out.println(client + " connecté"); PrintStream flux = new PrintStream(client.getOutputStream()); flux.println(new java.util.Date()); client.close(); } serveur.close(); }

72 Module UV Réseaus / SD Page 72 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de client TCP/IP : Daytime sur port 13 import java.net.*; import java.io.*; public class ClientDaytime { public static void main(String args[]) { try { Socket socket = new Socket("localhost", 13); BufferedReader flux = new BufferedReader( new InputStreamReader(socket.getInputStream())); String dateHeure = fluxHeure.readLine(); System.out.println("La date et l'heure sont » + dateHeure); socket.close(); } catch (UnknownHostException err) { System.err.println ("ClientDaytime : " + err); } catch (IOException err) { System.err.println ("ClientDaytime : " + err); } } }

73 Module UV Réseaus / SD Page 73 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe java.net.ServerSocket n Pour les serveurs attendant des connexions clientes n Différents constructeurs : –ServerSocket s = new ServerSocket(8000); –ServerSocket s = new ServerSocket(port,tailleFile); –si port=0 alors le système choisit automatiquement le port n Propriétés : –adresse IP : InetAddress getInetAddress(); –port : int getLocalPort(); –timeout : setSoTimeout, getSoTimeout n Méthodes : –attendre une connexion : Socket accept(); –fermer la socket : void close(); –affichage : String toString() => ServerSocket[addr=,port=,localport=8000]

74 Module UV Réseaus / SD Page 74 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La création et connexion des sockets serveurs et clientes port=8080 (1) s = new ServerSocket(8080) (2) c = s.accept() port=50000 (3) s = new Socket(«M2»,8080) Connexion réseau port=40345 pipe réseau

75 Module UV Réseaus / SD Page 75 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe java.net.Socket n Utiliser durant les communications TCP/IP n Différents constructeurs pour établir la connexion : –Socket s = new Socket("www.lifl.fr", 80); –Socket s = new Socket(inetAddress, 8000); n Propriétés : –adresse IP : InetAddress getInetAddress(), getLocalAdress() –port : int getPort(), getLocalPort() –flux in : InputStream getInputStream() –flux out : OutputStream getOutputStream() –options set/get : TcpNoDelay, SoLinger, SoTimeout n Méthodes : –fermeture de la socket : void close(); –affichage : String toString() => Socket[addr=www.lifl.fr/ x,port=80,localport=50000]

76 Module UV Réseaus / SD Page 76 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle La relation entre deux sockets connectées pipe réseau Socket A sur M1 Socket B sur port=6070 Distante port=5040 Distante Locale n A.getInetAddress()==B.getLocalInetAddress() n A.getPort()==B.getLocalPort() n A.getLocalInetAddress()==B.getInetAddress() n A.getLocalPort()==B.getPort()

77 Module UV Réseaus / SD Page 77 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Lapplication Telnet n Telnet = terminal texte pour dialoguer avec tout serveur TCP utilisant un protocole ASCII Socket TCP Serveur Telnet Ecran Clavier lit écrit

78 Module UV Réseaus / SD Page 78 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quels mots sur la classe java.lang.Thread n Permet de lancer des flots dexécution simultanés au sein dun même processus –calcul parallèle, animation,... –attente sur entrée/sortie bloquante n Méthodes –démarrage : void start(); –arrêt : void interrupt(); –attente fin : void join(); –traitement : void run(); –... Doit être héritée ou instanciée sur 1 objet implantant linterface java.lang.Runnable

79 Module UV Réseaus / SD Page 79 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le thread de redirection de flux public class RedirigerFlux extends Thread { protected java.io.BufferedReader fluxLecture = null; protected java.io.PrintStream fluxEcriture = null; public RedirigerFlux (java.io.InputStream fl, java.io.OutputStream fe) { fluxLecture = new java.io.BufferedReader( new java.io.InputStreamReader(fl)); fluxEcriture = new java.io.PrintStream(fe); super.start(); } public void run() { try { String s; while ( (s = fluxLecture.readLine()) != null ) fluxEcriture.println(s); } catch (java.io.IOException err) {} }

80 Module UV Réseaus / SD Page 80 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Lapplication Telnet en Java public class Telnet { public static void main(String args[]) throws Exception { java.net.Socket socket = new java.net.Socket(machine, port); // Création du thread redirigeant la socket vers l'écran. RedirigerFlux socketVersEcran = new RedirigerFlux(socket.getInputStream(), System.out); // Création du thread redirigeant le clavier vers la socket. RedirigerFlux clavierVersSocket = new RedirigerFlux(System.in, socket.getOutputStream()); // Attendre la fin de lecture sur la socket.. socketVersEcran.join(); // Arrêter de lire le clavier. clavierVersSocket.interrupt(); } }

81 Module UV Réseaus / SD Page 81 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Serveur Un serveur TCP/IP multi - clients Primitives accept () et read () bloquantes ! n => besoin de threads dans le serveur pour gérer simultanément plusieurs clients ! ServerSocket Socket Connexion Client Client connecté accept() read()

82 Module UV Réseaus / SD Page 82 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Un serveur TCP/IP multi-threadé import java.net.*; public class ServeurMultiThreade { public static void main(String args[]) throws Exception { ServerSocket serveur = new ServerSocket(#port); while (true) { System.out.println(serveur + " en attente !"); Socket client = serveur.accept(); new GestionnaireClient(client); } serveur.close(); }

83 Module UV Réseaus / SD Page 83 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le thread gestionnaire des clients public class GestionnaireClient extends Thread { protected java.net.Socket client; public GestionnaireClient(java.net.Socket s) { client = s; super.start(); } public void run() { try { // Traiter les requêtes clientes... puis client.close(); } catch(Exception exc) {... } }

84 Module UV Réseaus / SD Page 84 / 84 Deruelle Laurent Copyright © 2002 Laurent Deruelle Synthèse sur les sockets TCP/IP ù API simple et fiable –peu de primitives orientées communication ÷ Programmation clients != programmation serveurs ! –asymétrie des primitives de communication ÷ De nombreuses questions à se poser avant dutiliser les primitives ! –Voir cours problèmes et solutions ÷ Rien pour la structuration de lapplication ! ù Seulement approprié pour des applications réparties simples (1 client vers 1 serveur) ou comme brique de base pour des couches middleware plus évoluées –par ex. : WWW, FTP, , news,...


Télécharger ppt "CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Réseaux / Java RMI Module Java Expert."

Présentations similaires


Annonces Google