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

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

Embed Size (px)

Citation preview

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

CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT

UV Réseaux /Java RMI

Module Java Expert

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

Module UV Réseaus / SDPage 2 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 3 / 84

Deruelle LaurentCopyright © 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

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

Module UV Réseaus / SDPage 4 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Réseau local - Définition

– Partage de systèmes de maintenance pour sauvegardes, installation de logiciels, etc.

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

Module UV Réseaus / SDPage 5 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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)

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

Module UV Réseaus / SDPage 6 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Les réseaux…un monde complexe...

« C ’est juste en attendant que la connexion Internet fonctionne de nouveau »

© Richtennant

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

Module UV Réseaus / SDPage 7 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 8 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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)

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

Module UV Réseaus / SDPage 9 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Réseau poste à poste ou réseau avec serveur dédié?

Réseau poste à poste

YvesLise

YvesLouis

YvesLucie

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

Module UV Réseaus / SDPage 10 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 11 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 12 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Réseau poste à poste ou réseau avec serveur dédié?

Réseau client/serveurLe 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.

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

Module UV Réseaus / SDPage 13 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 14 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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.

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

Module UV Réseaus / SDPage 15 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

YvesLiseLouis Lucie

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

Module UV Réseaus / SDPage 16 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 17 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Types de câbles

Paire torsadée Câble coaxial Fibre optique

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

Module UV Réseaus / SDPage 18 / 84

Deruelle LaurentCopyright © 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).

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

Module UV Réseaus / SDPage 19 / 84

Deruelle LaurentCopyright © 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

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

Module UV Réseaus / SDPage 20 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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.

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

Module UV Réseaus / SDPage 21 / 84

Deruelle LaurentCopyright © 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.

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

Module UV Réseaus / SDPage 22 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 23 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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.

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

Module UV Réseaus / SDPage 24 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 25 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Topologie en étoile

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

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

Module UV Réseaus / SDPage 26 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 27 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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.

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

Module UV Réseaus / SDPage 28 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Topologie en anneau

Structure de réseau où les stations et le serveur sont reliées de manière à former un circuit bouclé.

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

Module UV Réseaus / SDPage 29 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 30 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Topologie en arbre

Structure de réseau qui combine les caractéristiques des topologies bus et étoile

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

Module UV Réseaus / SDPage 31 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 32 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 33 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Comment circule l ’information dans le réseau

2. Le jeton (déterministe) - Technologie Token Ring– Norme 802.5 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

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

Module UV Réseaus / SDPage 34 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Comment circule l ’information dans le réseau

3. FDDI (Fiber Distributed Data Interface)– Norme ANSI X3T9.5 (très semblable à 802.5 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)

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

Module UV Réseaus / SDPage 35 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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ées3. Couche réseau4. Couche transport5. Couche session6. Couche présentation7. Couche application (communication logiciel et réseau.

par.ex. ftp, smtp, etc)

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

Module UV Réseaus / SDPage 36 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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 2001. http://www.idc.com/software/press

/PR/SW091001pr.stm.

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

Module UV Réseaus / SDPage 37 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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.

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

Module UV Réseaus / SDPage 38 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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.

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

Module UV Réseaus / SDPage 39 / 84

Deruelle LaurentCopyright © 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.)

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

Module UV Réseaus / SDPage 40 / 84

Deruelle LaurentCopyright © 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 travail8.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 ’usager10.Test du réseau11.Formation des usagers

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

Module UV Réseaus / SDPage 41 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Dossiers partagés

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

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

Module UV Réseaus / SDPage 42 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 43 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 44 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 45 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Mécanisme de communication : sockets

Module Java

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

Module UV Réseaus / SDPage 46 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

La classe java.net.InetAddress

Représentation des adresses réseaux Internet– 134.206.10.18, www.lifl.fr

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

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

Module UV Réseaus / SDPage 47 / 84

Deruelle LaurentCopyright © 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) { . . .}

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

Module UV Réseaus / SDPage 48 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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())

}

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

Module UV Réseaus / SDPage 49 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 50 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Le principe d’une socket

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

Application A

@IP#port

Application B

@IP#port

send / receive send / receive

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

Module UV Réseaus / SDPage 51 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Les Sockets UDP/IP

Module Java

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

Module UV Réseaus / SDPage 52 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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 !

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

Module UV Réseaus / SDPage 53 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

La communication en UDP

s = DatagramSocket(#port)

p = DatagramPacket(buf)

s.receive(p)

traiter(p)

s.close()

Applicationréceptrice

s = DatagramSocket()

p = DatagramPacket( data, @IP, #port)

s.send(p)

s.close()

Applicationémettrice

Paquet

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

Module UV Réseaus / SDPage 54 / 84

Deruelle LaurentCopyright © 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);

}}}

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

Module UV Réseaus / SDPage 55 / 84

Deruelle LaurentCopyright © 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();}}

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

Module UV Réseaus / SDPage 56 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 57 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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– byte[] tampon = new byte[8096];– 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

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

Module UV Réseaus / SDPage 58 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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()

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

Module UV Réseaus / SDPage 59 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Les Sockets Multicast IP

Module Java

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

Module UV Réseaus / SDPage 60 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 61 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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 !

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

Module UV Réseaus / SDPage 62 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

La communication en Multicast IP

s = MuticastSocket(#port)

s.joinGroup(@IP)

p = DatagramPacket(buf)

s.receive(p)

traiter(p)

s.close()

Applicationréceptrice

s = MuticastSocket()

p = DatagramPacket( data, @IP, #port)

s.send(p)

s.close()

Applicationémettrice

Paquet

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

Module UV Réseaus / SDPage 63 / 84

Deruelle LaurentCopyright © 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("225.1.1.1");

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()));

} } }

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

Module UV Réseaus / SDPage 64 / 84

Deruelle LaurentCopyright © 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("225.1.1.1");

DatagramPacket dp = new DatagramPacket(

message.getBytes(), message.length(), mcast, 8000);

for (int i=0; i<10; i++)

ms.send(dp, (byte)1);

ms.close();

}}

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

Module UV Réseaus / SDPage 65 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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 = 2..254 : selon topologie– TTL = 255 : aucune restriction !

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

Module UV Réseaus / SDPage 66 / 84

Deruelle LaurentCopyright © 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 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)

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

Module UV Réseaus / SDPage 67 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Les Sockets TCP / IP

Module Java

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

Module UV Réseaus / SDPage 68 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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

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

Module UV Réseaus / SDPage 69 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Principes

Socket = prise applicative de communication réseau– 2 couples @IP + 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

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

Module UV Réseaus / SDPage 70 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Le schéma de fonctionnement

Serveur

s = ServerSocket(port#)

c = s.accept()

OutputStream

InputStream

c.close()

s.close()

Client

s = Socket(@IP,port#)

OutputStream

InputStream

s.close()

pipe réseaulecture lecture

écritureécriture

connexion

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

Module UV Réseaus / SDPage 71 / 84

Deruelle LaurentCopyright © 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();

} }

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

Module UV Réseaus / SDPage 72 / 84

Deruelle LaurentCopyright © 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);

} } }

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

Module UV Réseaus / SDPage 73 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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]

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

Module UV Réseaus / SDPage 74 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

La création et connexion des sockets serveurs et clientes

ServerSocket@IP=«M2»port=8080

(1) s = new ServerSocket(8080)

(2) c = s.accept()

Socket@IP=«M2»port=50000

(3) s = new Socket(«M2»,8080)

Connexionréseau

Socket@IP=«M1»port=40345

pipe réseau

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

Module UV Réseaus / SDPage 75 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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/134.206.10.x,port=80,localport=50000]

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

Module UV Réseaus / SDPage 76 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

La relation entre deux sockets connectées

pipe réseau

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

A.getInetAddress() == B.getLocalInetAddress() A.getPort() == B.getLocalPort() A.getLocalInetAddress() == B.getInetAddress() A.getLocalPort() == B.getPort()

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

Module UV Réseaus / SDPage 77 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

L’application Telnet

Telnet = terminal texte pour dialoguer avec tout serveur TCP utilisant un protocole ASCII

Socket TCP

Serveur

Telnet

Ecran

Clavier

lit

lit

écrit

écrit

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

Module UV Réseaus / SDPage 78 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Quels mots surla 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

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

Module UV Réseaus / SDPage 79 / 84

Deruelle LaurentCopyright © 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) {}} }

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

Module UV Réseaus / SDPage 80 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

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();

} }

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

Module UV Réseaus / SDPage 81 / 84

Deruelle LaurentCopyright © 2002 Laurent Deruelle

Serveur

Un serveur TCP/IP multi - clients

Primitives accept() et read() bloquantes ! => besoin de threads dans le serveur pour gérer simultanément plusieurs clients !

ServerSocket

Socket

Socket

Connexion Client

Client connecté

Client connecté

accept()

read()

read()

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

Module UV Réseaus / SDPage 82 / 84

Deruelle LaurentCopyright © 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();

}

}

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

Module UV Réseaus / SDPage 83 / 84

Deruelle LaurentCopyright © 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) { . . . }

} }

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

Module UV Réseaus / SDPage 84 / 84

Deruelle LaurentCopyright © 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 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, email, news, . . .