Chapitre 2 Remote Method Invo - 2023

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 21

Architecture Distribué Microservices

Dr. Hassen Lazrag


Ingénieur Développement et Consultant génie logiciel
Iteam University
Plan du module

 Partie 1: Technologies de distribution

Chapitre 1: Architecture distribué

Chapitre 2: RMI

Chapitre 3: Services Web SOAP.

Chapitre 4: Services Web RESTful.

Cours MS 2023 Hassen Lazrag


Plan du module

 Partie 2: Architectures Microservices Synchrones


Chapitre 1: Challenges with Microservices

Chapitre 2: Microservices with Spring Coud

Chapitre 3: Docker with Microservices using Spring Cloud

Chapitre 4: Kubernetes with Microservices using Docker

Cours MS 2023 Hassen Lazrag


Plan du module

 Partie 3: Architectures Microservices Asynchrones


Chapitre 1: Concepts de base en Big Data

Chapitre 2: Modèle des systèmes distribués Asynchrones JMS

Chapitre 3: Kafka Brokers

Chapitre 4: Microservices with kafka Broker

Cours MS 2023 Hassen Lazrag


Pré-requis

 La Programmation Orientée Objet (Java).

 Le métalangage UML 2.0.

 Framework Spring et Spring Boot

 Framework Hibernate, JPA.

 Eclipse/ IntelliIj

Cours MS 2023 Hassen Lazrag


Partie1: Technologies de distribution

Chapitre 2: Remote Method Invocation (RMI)

Dr. Hassen Lazrag


C’est quoi RMI?

Cours MS 2023 Hassen Lazrag


C’est quoi RMI?

 Le but de RMI est de créer un modèle objet distribué Java


 RMI est apparu dès la version 1.1 du JDK
 Avec RMI, les méthodes de certains objets (appelés objets
distants) peuvent être invoquées depuis des JVM différentes
 RMI assure la communication entre le serveur et le client via
TCP/IP et ce de manière transparente pour le développeur.
 Il utilise des mécanismes et des protocoles définis et standardisés
tels que les sockets et RMP (Remote Method Protocol).
 Le développeur n'a donc pas à se soucier des problèmes de
niveaux inférieurs spécifiques aux technologies réseaux.

Cours MS 2023 Hassen Lazrag


RMI et Interfaces

Cours JEE 2023 Hassen Lazrag


RMI et Interfaces

 Les interfaces sont le cœur de RMI.


 L’architecture RMI est basé sur un principe important :
 La définition du comportement et l’exécution de ce
comportement sont des concepts séparés.
 La définition d’un service distant est codé en utilisant une
interface Java.
 L’implémentation de ce service distant est codée dans
une classe.

Cours MS 2023 Hassen Lazrag


Architecture RMI

Cours JEE 2023 Hassen Lazrag


Architecture RMI

Cours MS 2023 Hassen Lazrag


Architecture RMI

Cours MS 2023 Hassen Lazrag


Architecture RMI

 RMI est essentiellement


construit sur une abstraction
en trois couches.
 Stubs et Skeletons (Souche et
Squelette)
 Remote Reference Layer
(Couche de référencement
distante)
 Couche Transport

Cours MS 2023 Hassen Lazrag


Stubs et Skeletons

Cours MS 2023 Hassen Lazrag


Stubs

 Les stubs sont des classes placées dans la


machine du client.
o Lorsque notre client fera appel à une méthode
distante, cet appel sera transféré au stub.
o Le stub est un relais du côté du client.
 Le stub est le représentant local de l’objet
distant.
o Il emballe les arguments de la méthode
distante et les envoie dans un flux de données
vers le service RMI distant.
o D’autre part, il déballe la valeur ou l’objet de
retour de la méthode distante.
o Il communique avec l’objet distant par
l’intermédiaire d’un skeleton.

Cours MS 2023 Hassen Lazrag


Skeletons

 Le skéleton est lui aussi un relais mais du


côté serveur. Il devra être placé sur la
machine du serveur.
o Il débale les paramètres de la méthode
distante, les transmet à l’objet local
o et embale les valeurs de retours à renvoyer
au client.
 Les stubs et les skeletons sont donc des
intermédiaires entre le client et le serveur.
o Ils gèrent le transfert distant des données.
o On utilise le compilateur rmic pour la
génération des stubs et des skeletons avec
le JDK

Cours MS 2023 Hassen Lazrag


Remote Reference Layer

Cours MS 2023 Hassen Lazrag


Remote Reference Layer

 La deuxième couche est la couche de


référence distante.
 Ce service est assuré par le lancement du
programme rmiregistry du coté du serveur
 Le serveur doit enregistrer la référence de
chaque objet distant dans le service
rmiregistry en attribuant un nom à cet
objet distant.
 Du coté du client, cette couche permet
l’obtention d’une référence de l’objet
distant à partir de la référence locale (le
stub) en utilisant son nom rmiregsitry

Cours MS 2023 Hassen Lazrag


Couche de Transport

Cours MS 2023 Hassen Lazrag


Couche transport

 La couche transport est basée sur les


connexions TCP/IP entre les machines.
 Elle fournit la connectivité de base entre
les 2 JVM.
 De plus, cette couche fournit des
stratégies pour passer les firewalls.
 Elle suit les connexions en cours.
 Elle construit une table des objets
distants disponibles.
 Elle écoute et répond aux invocations.
 Cette couche utilise les classes Socket et
ServerSocket.
 Elle utilise aussi un protocole propriétaire
R.M.P. (Remote Method Protocol).

Cours MS 2023 Hassen Lazrag

Vous aimerez peut-être aussi