Communication par diffusion : Multicast Clientn Serveur Client1 Client2 Gr.

Slides:



Advertisements
Présentations similaires
Gestion des événements (suite)
Advertisements

Cours réseaux Essi2 Anne-Marie Déry
Programmation Réseaux Illustration : Les Sockets en Java
Programmation Réseaux Illustration : Les Sockets en Java
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Communication par diffusion : Multicast
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Applications distribuées et parallèlisme La communication ne doit pas rester bloquée pour un client.
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Programmation Réseaux Illustration : Les Sockets en Java
Les Sockets et Java Cours Harmonisation Anne-Marie Déry.
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
OTB Analog module: Input configuration with TSX PREMIUM (TSXCPP110)

UV Réseaux / Java RMI Module Java Expert
À travailler seuls Concepts généraux Mise en œuvre Java Année
Communication entre processus - TCP From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001 Chapitre.
À travailler seuls Concepts généraux Mise en œuvre Java Année
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI 1502 Principes fondamentaux de conception de logiciels
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
LES PHRASES CONDITIONELLES ce qui est possible. Une phrase conditionnelle  shows what will happen IF something else occurs  use SI…  two part sentences.
Communication entre processus - UDP From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001 Chapitre.
Développement d’application client/serveur
Exceptions B. Liskov, Program Development in Java, chap. 4 Exceptions.
Communication entre processus From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001 Chapitre.
Bonjour!! Pour être prêt: Répondez aux questions:
Cours 7 Classes locales Clonage Divers: tableaux.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
Mastère MIAGE, 2006 Systèmes Distribués Fabrice Huet
Cours Les flux ou streams. Cours 162 Flux : objet possédant des méthodes capables de lire ou écrire des flots d’octets sur tout support (mémoire,
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Français 2, 12 janvier 2015 Ouvrez vos livres à la page 68. Faites #14. Ecrivez-le. What kind of tree can you find in a kitchen? le haricot – bean. C’est.
12/04/ Les exceptions Cours 11 Cours 11.
Entrées / Sorties.
Les sockets.
Le pluriel des articles, noms et adjectifs
Schéma de conception Factory Method Exemple Sylvain Giroux.
Cultural Comparison 1 minute for directions (in English and French, spoken consecutively): You will make an oral presentation to your class on a specific.
Sister Dalton Fireside Make the most of your BYU experience!
French 101 Important Verbs. The most important French verbs – avoir (to have), être (to be), and faire (to do/make) They are used in some of the ways.
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Réseaux Informatiques
Introduction à la programmation objet avec java
WALT: Recognise and use phrases in the past tense with opinions of leisure activities. WILF: To be able to use opinions in the past tense. You must be.
Chapter 6 Lesson 8. Flash Culture ● In France, most people have a carte bleu (bank card) which is like a debit card. A carte bleue has a puce (memory.
Your team’s name. Préselection file You have just downloaded the preselection file: it’s the first step for you to win the challenge! In this file, you.
Le 4-7 novembre. Qui est présent? Quelle heure est-il? La feuille pour étudier L’examen La Jéopardie!
Welcome everyone.
Architecture Client/Serveur
WE’RE ALMOST DONE – CONGRATULATIONS! LE PRONOM « Y »
On conjugue! [Avoir et Etre] It is very important to learn and practise using the conjugations of verbs in French.
© Crown copyright 2011, Department for Education These materials have been designed to be reproduced for internal circulation, research and teaching or.
WILF: TO BE ABLE TO GIVE AN OPINION FOR LEVEL 3
Flash-on-flash-off! You will see some French text in a minute but it will only be on the board for a minute then it will disappear.
Client/Server Socket. Client/Serveur.
Les Prepositions Definition: Prepositions are words that are used to express relationships between words, such as temporal (time) and spacial (space) relationships.
With a partner, try to name all these things without looking at your vocab list!!
Negative sentences Questions
WINS Windows Internet Name Service. What is WINS?  It does name resolution (?!) DNS resolves IP numbers and FQDN ARP resolves IP numbers and MAC addresses.
Courrier électronique ( s) Some features of s: Boîte de messagerie - Inbox Nouveau message -- New message Dossiers - Folders Suprimer - Delete.
PERFORMANCE One important issue in networking is the performance of the network—how good is it? We discuss quality of service, an overall measurement.
IP Multicast Text available on
Transcription de la présentation:

Communication par diffusion : Multicast Clientn Serveur Client1 Client2 Gr

Ouvrir un socket = demander à se Connecter Les clients demandent seulement à joindre un groupe

Exemple de multicast Un serveur de citation qui envoie une citation toutes les minutes à tous les clients qui écoutent (multicast)

Créer un paquet de sortie Préparer et Envoyer une donnée Scénario dun serveur Fermer le socket dentrée Créer le socket dentrée

Scénario dun client Création dun paquet dentrée Attente de données en entrée Réception et traitement des données en entrée Fermer le socket d entrée Créer le socket dentrée

Classe MulticastServer Des constructeurs : par défaut, port à utiliser Des accesseurs en lecture : adresse du groupe (getInterface…) Des méthodes : pour envoyer un paquet datagramme, pour joindre ou quitter un groupe (send, joinGroup, leaveGroup)

Multicast: MulticastSocket Type de socket utilisé côté client pour écouter des paquets que le serveur « broadcast » à plusieurs clients.. Une extension du QuoteServer : broadcast à intervalle régulier à tous ses clients

Cœur du serveur while (moreQuotes) { try { byte[] buf new byte[256]; // don't wait for request...just send a quote String dString = null; if (in == null) dString = new Date().toString(); else dString = getNextQuote(); buf = dString.getBytes(); InetAddress group = InetAddress.getByName(" "); DatagramPacket packet; packet = new DatagramPacket(buf, buf.length, group, 4446); socket.send(packet); try {sleep((long)Math.random() * FIVE_SECONDS); } catch (InterruptedException e) { } } catch (IOException e) { e.printStackTrace(); moreQuotes = false;} } socket.close();}

Différences principales Le DatagramPacket est construit à partir de de « ladresse de plusieurs clients » L adresse et le no de port sont câblés no de port 4446 (tout client doit avoir un MulticastSocket lié à ce no). Ladresse InetAddress " " correspond à un identificateur de groupe et non à une adresse Internet de la machine dun client Le DatagramPacket est destiné à tous les clients qui écoutent le port 4446 et qui sont membres du groupe " ".

Un nouveau Client Pour écouter le port 4446, le programme du client doit créer son MulticastSocket avec ce no. Pour être membre du groupe " " le client adresse la méthode joinGroup du MulticastSocket avec ladresse didentification du groupe. Le serveur utilise un DatagramSocket pour faire du broadcast à partir de données du client sur un MulticastSocket. Il aurait pu utiliser aussi un MulticastSocket. Le socket utilisé par le serveur pour envoyer le DatagramPacket nest pas important. Ce qui est important pour le broadcast est dadresser linformation contenue dans le DatagramPacket, et le socket utilisé par le client pour lécouter.

MulticastSocket socket = new MulticastSocket(4446); InetAddress group = InetAddress.getByName(" "); socket.joinGroup(group); DatagramPacket packet; for (int i = 0; i < 5; i++) { byte[] buf = new byte[256]; packet = new DatagramPacket(buf, buf.length); socket.receive(packet); String received = new String(packet.getData()); System.out.println("Quote of the Moment: " + received); } socket.leaveGroup(group); socket.close();

Synthèse ClientServeur TCPaSocketaServerSocket connectéwriteread readwrite UDPaDatagramSocketaDatagramSocket non connecté sendreceive receivesend MulticastaMulticastSocketaDatagramSocket/ aMulticastSocket receivesend I/O Stream aDatagramPacket

Définir un nouveau type de socket Pourquoi ? Préparer les données avant de les envoyer Préparer les données reçues Exemple Java RMI Sockets spécialisées (marshalling et unmarshalling) Images : Compression et Décompression Comment ? En spécialisant les classes de base

Comment Définir un nouveau type de Sockets La classe CompressionSocket et ses classes relatives 4 étapes 1. Etendre java.io.FilterOutputStream pour créer un output stream pour ce type de Socket. Surcharge de méthodes si nécessaire. 2. Etendre java.io.FilterInputStream 3. Etendre java.net.Socket. Implémenter les constructeurs appropriés et surcharger getInputStream, getOutputStream et close. 4. Etendre java.net.ServerSocket Implémenter le constructeur et surcharger accept pour créer un socket du bon type.

Un nouveau Package : java.nio The central abstractions of the NIO APIs are: Buffers, which are containers for data; Charsets and their associated decoders and encoders, which translate between bytes and Unicode characters; Channels of various types, which represent connections to entities capable of performing I/O operations; and Selectors and selection keys, which together with selectable channels define a multiplexed, non blocking I/O facility.

Le package Channel Multiplexed, non-blocking I/ODescription SelectableChannel A channel that can be multiplexed DatagramChannel A channel for a java.net.DatagramSocket Pipe.sinkChannel The write end of a pipe Pipe.sourceChannel The read end of a pipe ServerSocketChannel A channel for a java.net.ServerSocket SocketChannel A channel for a java.net.Socket Selector A multiplexor of selectable channels SelectionKey A token representing the registration of a channel with a selector Pipe Two channels that form a unidirectional pipe

Les nouvelles sockets This package defines selectable-channel classes corresponding to the DatagramSocket, ServerSocket, and Socket classes defined in the java.net package. Minor changes to these classes have been made in order to support sockets that are associated with channels. This package also defines a simple class that implements unidirectional pipes. In all cases, a new selectable channel is created by invoking the static open method of the corresponding class. If a channel needs an associated socket then a socket will be created as a side effect of this operation.

Conclusion Une large bibliothèque pour traiter les sockets et différents types de communication entre Clients et Serveurs dans Java Une extension naturelle par abstraction à lappel de méthodes à distance - Java RMI et une normalisation Corba avec lintégration dun ORB et maintenant les EJB : Entreprise Java Beans et JINI …..