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

UV Réseaux / Java RMI Module Java Expert

Présentations similaires


Présentation au sujet: "UV Réseaux / Java RMI Module Java Expert"— Transcription de la présentation:

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

2 Module Java Vue d’ensemble du langage Java
Le langage Java : syntaxe et sémantique Programmation multi-tâche : les threads Accéder aux bases de données Composants réutilisables : le modèle MVC Développement Client/Serveur Présentation de l’IDE VisualAge Les serveurs d’applications J2EE Les Enterprise JavaBeans Ré-ingénierie d’applications Java

3 Réseau local - Définition
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.

4 Réseau local - Définition
Partage de systèmes de maintenance pour sauvegardes, installation de logiciels, etc.

5 LAN versus MAN versus WAN
MAN - metropolitan area network / réseau métropolitain Réseau qui regroupe des réseaux locaux situés dans une même zone urbaine. 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 Les réseaux…un monde complexe...
« C ’est juste en attendant que la connexion Internet fonctionne de nouveau » © Richtennant

7 Composantes d’un réseau local
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 Logiciel Système d ’exploitation du réseau local

8 Réseau poste à poste ou réseau avec serveur dédié?
Critères à considérer pour le choix du type de réseau à installer: Taille de l’entreprise Niveau de sécurité nécessaire Type d’activité Niveau de compétence d’administration disponible Volume du trafic sur le réseau Besoins des utilisateurs du réseau Budget alloué au fonctionnement du réseau (pas seulement l’achat mais aussi l’entretien et la maintenance)

9 Réseau poste à poste ou réseau avec serveur dédié?
Yves Lise Yves Louis Yves Lucie

10 Réseau poste à poste ou réseau avec serveur dédié?
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 Réseau poste à poste ou réseau avec serveur dédié?
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 Réseau poste à poste ou réseau avec serveur dédié?
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 d’un client.

13 Réseau poste à poste ou réseau avec serveur dédié?
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. 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 Réseau poste à poste ou réseau avec serveur dédié?
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 Réseau poste à poste ou réseau avec serveur dédié?
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 Carte d’interface réseau
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 Types de câbles Fibre optique Paire torsadée Câble coaxial

18 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 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 Types de câbles 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 Réseaux sans fils 1. Infrarouge 2. Radio-fréquences
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 Topologie de réseau 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 Topologie en bus 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 Topologie en bus Utilise le câble coaxial
Peu sensible aux perturbations électromagnétiques Si il y a un bris de câble, toute communication sur le réseau est impossible

25 Topologie en étoile Structure de réseau où chaque station est reliée à un point central. Liaison dite point à point.

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

27 Topologie en étoile 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 Topologie en anneau Structure de réseau où les stations et le serveur sont reliées de manière à former un circuit bouclé.

29 Topologie en anneau Si il y a bris d ’un câble, le reste du réseau n ’est pas affecté si on utilise un double anneau Utilise de la paire torsadée ou de la fibre optique Requiert plus de câble que la topologie bus mais moins que la topologie étoile

30 Topologie en arbre Structure de réseau qui combine les caractéristiques des topologies bus et étoile

31 Topologie en arbre La longueur totale de chaque segment est limitée par le type de câble utilisé Si le câble dorsal fait défaut, tout le segment tombe en panne Plus difficile à configurer que les autres topologies

32 Comment circule l ’information dans le réseau
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 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 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 Modèle OSI 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 Système d’exploitation réseau
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). 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 Système d ’exploitation réseau
Intègre différents protocoles réseau. 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. Par exemple, le protocole IPX de Novell, le protocole TCP/IP (Transmission Control Protocol/Internet Protocol) utilisé pour la communication entre ordinateurs sur Internet. 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 Système d ’exploitation réseau
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. L’utilisateur 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 l’administrateur.

39 É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 É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 l’administrateur et de l ’usager 10.Test du réseau 11.Formation des usagers

41 On peut restreindre l ’accès aux dossiers partagés par mot de passe
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 Dans la plupart des cas, on n ’accède qu ’à certains dossiers de ces disques réseau qu ’on appelle dossiers partagés On peut restreindre l ’accès aux dossiers partagés par mot de passe Nomenclature : \\nom du serveur\nom du partage

42 Intranet - Définition 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 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 Intranet 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 Extranet - Définition 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 Mécanisme de communication : sockets
Module Java Mécanisme de communication : sockets

46 La classe java.net.InetAddress
Représentation des adresses réseaux Internet , Création InetAddress host = InetAddress.getLocalHost(); InetAddress host = InetAddress.getByName("www.lifl.fr"); InetAddress host[] = InetAddress.getAllByName("www.lifl.fr"); Propriétés Adresse symbolique : String getHostName() Adresse IP : String getHostAddress() Adresse binaire : byte[] getAddress() boolean isMulticastAddress() Méthodes equals, toString, hashCode

47 Obtenir un objet java.net.InetAddress
import java.net.InetAddress; try { InetAddress adresseLocale = InetAddress.getLocalHost(); } catch(java.net.UnknownHostException ex) { . . . } InetAddress adresse = InetAddress.getByName("www.lifl.fr"); InetAddress[] adresses = InetAddress.getAllByName("www.lifl.fr");

48 Accès aux propriétés d’un 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 Quelques protocoles Internet
IP pour Internet Protocol protocole de routage des messages sur Internet datagrammes de machine à machine UDP pour User Datagram Protocol protocole de transport non fiable de messages datagrammes de port à port Multicast IP protocole de diffusion non fiable de messages datagrammes vers groupe TCP pour Transmission Control Protocol protocole de transport fiable de messages flux de port à port Port = identifiant symbolique d’un processus / un service

50 Le principe d’une socket
Application A Application B send / receive send / receive @IP #port @IP #port Réseau Une socket = une prise logicielle d’accès au réseau @IP de la machine où elle est créée #port identifiant unique

51 Module Java Les Sockets UDP/IP

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

53 La communication en UDP
Application réceptrice Application émettrice s = DatagramSocket(#port) s = DatagramSocket() p = DatagramPacket( #port) p = DatagramPacket(buf) Paquet s.receive(p) s.send(p) traiter(p) s.close() s.close()

54 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 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 La classe java.net.DatagramPacket (1/2)
Représente un paquet UDP tampon de données, longueur, adresse IP, port Constructeurs new DatagramPacket(buffer, taille) new DatagramPacket(buffer, taille, inetAddress, port) Propriétés Buffer : byte[] getData() Taille buffer : int getLength() Adresse IP : InetAddress getAddress() Port IP : int getPort() Modification : setData, setLength, setAddress, setPort

57 La classe java.net.DatagramPacket (2/2)
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); Un récepteur alloue le tampon pour recevoir le paquet et le passe au constructeur de DatagramPacket dp = new DatagramPacket(tampon, tampon.length); A la réception, le DatagramPacket contient les données, l’adresse et le port de l’émetteur Le tampon peut être réutilisé pour plusieurs envois / réceptions

58 La classe java.net.DatagramSocket
Une prise pour pouvoir communiquer en UDP peut être connectée à une socket pair Constructeurs socket anonyme : new DatagramSocket() socket avec port : new DatagramSocket(1000) new DatagramSocket(1000,inetAddress) Propriétés l’adresse locale : InetAddress getLocalAddress() l’adresse distante : InetAddress getAddress() le port local : int getLocalPort() le port distant : int getPort() Méthodes connexion : void connect(InetAddress ia, int port) émission : void send(DatagramPacket dp) réception : void receive(DatagramPacket dp) fermeture : void close()

59 Les Sockets Multicast IP
Module Java Les Sockets Multicast IP

60 Applications Multicast IP
Délivrer un message à un ensemble de destinataires Plus efficace que l'envoi d'un message à chaque destinataire pris en charge par les routeurs 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 ! Les membres du groupe peuvent changer à tout moment primitives d'adhésion et de sortie d'un groupe

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

62 La communication en Multicast IP
Application réceptrice Application émettrice s = MuticastSocket(#port) s = MuticastSocket() p = DatagramPacket( #port) p = DatagramPacket(buf) Paquet s.receive(p) s.send(p) traiter(p) s.close() s.close()

63 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 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 La classe java.net.MulticastSocket
Prise pour communiquer en Multicast IP Sous classe de java.net.DatagramSocket Nouvelles méthodes joindre un groupe : void joinGroup (InetAddress mcast); quitter un groupe : void leaveGroup (InetAddress mcast); émission : void send(DatagramPacket dp, byte ttl); 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 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 l’application ! API bas niveau, transfert de paquets d’octets 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 l’application ex. Network File System (NFS)

67 Module Java Les Sockets TCP / IP

68 Principes TCP/IP : Transmission Control Protocol sur IP
Propriétés de la communication point à point , un circuit virtuel bidirectionnelle transport fiable orienté flux d’octets séquencement de données non dupliquées sans séparateur d'enregistrement => un « pipe » étendu au réseau Interface de programmation de la couche Transport de l’Internet

69 Principes Socket = prise applicative de communication réseau
2 + port adresse locale de la socket / adresse distante de la socket pair @IP = adresse machine physique port = identifiant unique sur la machine 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 Le schéma de fonctionnement
Serveur Client s = ServerSocket(port#) connexion c = s.accept() s = InputStream lecture lecture InputStream pipe réseau OutputStream écriture écriture OutputStream c.close() s.close() s.close()

71 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 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) { } } }

73 La classe java.net.ServerSocket
Pour les serveurs attendant des connexions clientes 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 Propriétés : adresse IP : InetAddress getInetAddress(); port : int getLocalPort(); timeout : setSoTimeout, getSoTimeout Méthodes : attendre une connexion : Socket accept(); fermer la socket : void close(); affichage : String toString() => ServerSocket[addr=,port=,localport=8000]

74 La création et connexion des sockets serveurs et clientes
(1) s = new ServerSocket(8080) ServerSocket @IP=«M2» port=8080 Connexion réseau (3) s = new Socket(«M2»,8080) (2) c = s.accept() Socket @IP=«M1» port=40345 Socket @IP=«M2» port=50000 pipe réseau

75 La classe java.net.Socket
Utiliser durant les communications TCP/IP Différents constructeurs pour établir la connexion : Socket s = new Socket("www.lifl.fr", 80); Socket s = new Socket(inetAddress, 8000); 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 Méthodes : fermeture de la socket : void close(); affichage : String toString() => Socket[addr=www.lifl.fr/ x,port=80,localport=50000]

76 La relation entre deux sockets connectées
Socket A sur M1 Socket B sur M2 @IP=«M2» port=5040 @IP=«M1» port=6070 Distante Locale @IP=«M1» port=6070 @IP=«M2» port=5040 Distante Locale pipe réseau A.getInetAddress() == B.getLocalInetAddress() A.getPort() == B.getLocalPort() A.getLocalInetAddress() == B.getInetAddress() A.getLocalPort() == B.getPort()

77 L’application Telnet Telnet Ecran Clavier Serveur écrit lit Socket TCP
Telnet = terminal texte pour dialoguer avec tout serveur TCP utilisant un protocole ASCII

78 Quels mots sur la classe java.lang.Thread
Permet de lancer des flots d’exécution simultanés au sein d’un même processus calcul parallèle, animation, . . . attente sur entrée/sortie bloquante 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 l’interface java.lang.Runnable

79 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 L’application 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 Un serveur TCP/IP multi - clients
Connexion Client ServerSocket accept() Client connecté Socket read() read() Client connecté Socket Primitives accept() et read() bloquantes ! => besoin de threads dans le serveur pour gérer simultanément plusieurs clients !

82 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 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 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 d’utiliser les primitives ! Voir cours problèmes et solutions Rien pour la structuration de l’application ! 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 "UV Réseaux / Java RMI Module Java Expert"

Présentations similaires


Annonces Google