Ce document présente une introduction à l'architecture RMI (Remote Method Invocation). RMI permet d'invoquer des méthodes sur des objets distants de manière transparente. Il repose sur trois couches principales : les stubs et skeletons qui gèrent les appels distants, la couche de référencement distant qui enregistre les objets, et la couche de transport basée sur TCP/IP.
0 évaluation0% ont trouvé ce document utile (0 vote)
22 vues21 pages
Ce document présente une introduction à l'architecture RMI (Remote Method Invocation). RMI permet d'invoquer des méthodes sur des objets distants de manière transparente. Il repose sur trois couches principales : les stubs et skeletons qui gèrent les appels distants, la couche de référencement distant qui enregistre les objets, et la couche de transport basée sur TCP/IP.
Ce document présente une introduction à l'architecture RMI (Remote Method Invocation). RMI permet d'invoquer des méthodes sur des objets distants de manière transparente. Il repose sur trois couches principales : les stubs et skeletons qui gèrent les appels distants, la couche de référencement distant qui enregistre les objets, et la couche de transport basée sur TCP/IP.
Ce document présente une introduction à l'architecture RMI (Remote Method Invocation). RMI permet d'invoquer des méthodes sur des objets distants de manière transparente. Il repose sur trois couches principales : les stubs et skeletons qui gèrent les appels distants, la couche de référencement distant qui enregistre les objets, et la couche de transport basée sur TCP/IP.
Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
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).