Dans la classe RemoteDatabase- Client, la méthode getRemote- Invoice() est la méthode qui est appelée en réalité à partir de RMTCALL. La méthode utilise la liste de paramètres de style Java pour les procédures cataloguées. Il s'en suit que ce doit être une méthode statique et que les arguments OUT
La classe Java côté client
et INOUT doivent être définis
comme tableaux. Pour renvoyer
une valeur à l’appelant ou pour accéder
aux valeurs transmises à la méthode,
on utilise le premier élément
des tableaux.
La première action de la méthode
getRemoteInvoice() consiste à vérifier
si l’argument du numéro de facture est
zéro. Si oui, un appel fictif pour charger
la JVM est supposé et il n’y a pas
d’autres actions.
Si un appel fictif n’est pas en cours
de traitement, la méthode définit le
gestionnaire de sécurité comme le gestionnaire
de sécurité RMI en appelant
la méthode setSecurityManager().
C’est une étape obligatoire pour
toutes les classes client RMI ; il est impossible
de charger des classes en provenance
d’emplacements distants si le
gestionnaire de sécurité n’a pas été défini.
Le gestionnaire de sécurité RMI
empêche les objets transférés de modifier
le système de fichiers local.
Ensuite, getRemoteInvoice() extrait
une référence au RemoteDatabase
Server à partir du RMI Registry du serveur
en utilisant la méthode
getRemoreReference(). L’appel de méthode
Naming.lookup() dans la méthode
getRemoteReference() examine
le RMI Registry du système à distance
pour envoyer une référence au processus
côté serveur. Il renvoie une référence
d’objet à un objet de type
java.rmi.Remote.
Comme nous le verrons plus loin,
Remote Database Server étend la
classe Java java.rmi.Remote et met en
oeuvre l’interface Remote Database
Server Inf. Donc, nous pouvons transmettre
la référence de java.rmi.Remote
à l’interface et obtenir ainsi l’accès à la
méthode getInvoice() dans la classe
RemoteDatabaseServer pour notre appel
à distance.
La méthode getRemoteInvoice()
invoque ensuite la méthode
getInvoice() de RemoteDatabase-
Server pour extraire l’information de
facture comme un objet Invoice. La
classe Invoice encapsule les attributs
nécessaires d’une facture réelle. La
classe met en oeuvre l’interface
java.io.Serializable pour rendre l’objet
communicable en utilisant RMI.
(Rappelons que seuls les objets sérialisables
peuvent être envoyés et reçus
en utilisant RMI.) Il n’est donc pas
compliqué de rendre une classe sérialisable sérialisable
: il suffit de mettre en oeuvre l’interface
pour obtenir la fonctionnalité.
Après l’appel à la méthode
getInvoice() à distance, getRemote-
Invoice() vérifie la référence de l’objet
Invoice renvoyée. Si elle est nulle, aucune
donnée de facture n’a été extraite
de la base de données à distance, et
getRemoteInvoice() renvoie les valeurs
initiales à l’appelant. Si elle n’est
pas nulle, l’information de facture est
extraite de l’objet Invoice et placée
dans les premiers éléments des tableaux
d’arguments de la méthode
pour renvoi à l’appelant.
Les blocs « try-catch » interceptent
les éventuelles erreurs inaperçues
pouvant se produire pendant le traitement,
afin que les erreurs appropriées
soient renvoyées au programme appelant.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Cyberattaques assistées par IA : Pourquoi le modèle Mythos d’Anthropic représente une menace sérieuse pour la cybersécurité
- Avec les Smart Data, les entreprises mènent la danse de l’observabilité moderne
- Les dirigeants européens redéfinissent la C-suite à l’ère de l’IA
- Analyse Patch Tuesday Mai 2026
Articles les + lus
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
À la une de la chaîne Tech
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
