> Tech > La classe Java côté client

La classe Java côté client

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

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

Guide de Sécurité IA et IoT

Guide de Sécurité IA et IoT

Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010