m1/Cours Archi Client-Serveur/Architecture Client-Serveur.md

2.7 KiB

Intro

On va bosser avec Java.

Les différentes "versions" de Java :

  • JME : Mobile

  • JSE : Standard

    • JRE : JVM (Virtual Machine) + librairies de base

    • JDK : IDE

  • JEE : Entreprise

Rapide rappel sur l'UML :

NomClasse Nom de l'objet
- Attr1
-Attr2
Données : ce qu'il est
+Méthode1
+Méthode2
Traitement : ce qu'il sait faire

Signe - : privé Signe + : Public

Pour symboliser l'héritage, on fait une flèche de l'enfant vers le parent.

RMI

Présentation

Architecture (client/serveur, mais on s'en doutait) crée par Sun. C'est un package : ensemble de librairies. RMI pour Remote Method Invocation Centralise un service sur un serveur, les clients s'y connectent pour l'obtenir (on parle plutôt de données brutes). Les clients viennent se connecter à un objet mis à disposition par le serveur, pour obtenir un service.

On a besoin du jdk pour l'exploiter. C'est basé sur RPC : Remote Procedure Call (Accès à une procédure à distance...) On a besoin du même langage et de la même version sur le client ET le serveur.

Structure

RMI a une structure en couches

Côté client Daemon Côté serveur
Interface rmi registry
(Contient annuaire des objets avec alias)
Interface
Classe
(hérite de l'interface)
Appli
(va chercher objet dans rmi registry)
Récupère l'alias (objet = alias) dans annuaire
Appli
(connectée au rmi registry)
(utilise la classe)
Stub Skell

À chaque appel à un objet distant, stub intercepte l'appel, et le communique au skell qui interroge l'objet, puis retransmet le résultat au stub qui le communique à l'appli.