diff --git a/Cours Archi Client-Serveur/Architecture Client-Serveur.md b/Cours Archi Client-Serveur/Architecture Client-Serveur.md new file mode 100644 index 0000000..4274aa5 --- /dev/null +++ b/Cours Archi Client-Serveur/Architecture Client-Serveur.md @@ -0,0 +1,55 @@ +# 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.