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
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Afficher les icônes cachées dans la barre de notification
- Une baie de stockage c’est quoi ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- Secteur public : l’IA accélère la modernisation des infrastructures
- De l’inventaire à l’action : l’Asset Management au service d’un Numérique plus responsable
- IA et bureaucratie : la complexité qui grève les projets
- IA dans les services financiers : priorité stratégique, mais passage à l’échelle sous tension
Articles les + lus
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
À la une de la chaîne Tech
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
