La classe côté serveur RemoteDatabase Server met en oeuvre l'interface RemoteDatabaseServerInf afin que classe côté client puisse envoyer un objet java.rmi.Remote vers la classe côté serveur en utilisant l'interface. Elle étend la classe Java java.rmi.server. UnicastRemoteObject, ce que vous devez faire pour tous les objets Java à distance si vous
La classe Java côté serveur
utilisez RMI. Cette méthode
vous permet d’utiliser le code
déjà présent, ce qui est toujours judicieux.
La méthode main() de la classe démarre
le RMI Registry, crée une instance
de la classe RemoteDatabase-
Server, puis lie cette instance au RMI
Registry. Ensuite, elle attend une requête
de la part du client. La méthode
envoie des messages à la sortie standard
pour vous indiquer ce qui se
passe et pour vous informer d’erreurs
éventuelles.
RMI requiert que la classe à distance
ait un constructeur de classe. Le
constructeur de classe doit émettre
une erreur java.rmi.Remote Exception
et exécuter le constructeur de la superclasse.
Le constructeur RemoteDatabase-
Server définit le gestionnaire de sécurité
d’après le gestionnaire de sécurité
RMI. Côté serveur, le gestionnaire de
sécurité RMI empêche le processus
serveur d’endommager la machine
hôte et empêche tout client d’utiliser
le serveur de manière malveillante. Le
constructeur obtient ensuite une
connexion avec la base de données en
utilisant la méthode getDatabase
Connection().
Toute l’action se déroule dans la
méthode getInvoice(). Quand la classe
Java côté client invoque un appel à distance
vers cette méthode, un driver
JDBC-ODBC extrait la facture requise de la base de données. Si un enregistrement
est extrait correctement, la
méthode crée un objet Invoice pour
encapsuler l’information de facture. Si
une facture n’est pas trouvée, une référence
nulle à un objet Invoice est renvoyée
à l’appelant.
A noter que la méthode getInvoice-
() est définie comme une méthode
synchronisée parce que le serveur
peut être appelé simultanément par
plus d’un client. RMI traitera automatiquement
des requêtes multiples, mais
en rendant getInvoice() synchronisé,
nous verrouillons la méthode pour la
protéger contre un accès synchrone :
ainsi, deux requêtes de client ne pourront
pas se gêner mutuellement.
Chaque requête client devra attendre
que la requête client précédente ait été traitée, avant de pouvoir accéder à la
méthode getInvoice().
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
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Afficher les icônes cachées dans la barre de notification
- Chiffrements symétrique vs asymétrique
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
