par Liam McMahon - Mis en ligne le 19/05/2003
Comment faites-vous pour qu'un
ancien programme RPG/400 puisse extraire
des informations en temps réel d'une base de données Microsoft SQL
Server fonctionnant sur un serveur NT
à distance ? C'est exactement le problème
que m'a posé l'un de mes clients
désireux de remplacer sa vieille suite financière
AS/400 par un système NT
tournant sur un serveur à distance.
Malgré la disparition de l'ancienne
suite financière, bon nombre des applications
AS/400 du client subsistaient et
certaines d'entre elles devaient même
communiquer avec le nouveau système
financier en temps réel. De plus,
je devais apporter un minimum de modifications
aux applications AS/400.
Heureusement, Java et l'API Java RMI
(Remote Method Invocation) sont venus
à mon secours.
Au travers des plates-formes avec Java RMI
Java RMI est une méthode simple
pour mettre en oeuvre un modèle d’informatique
distribuée multi-plateforme
en utilisant Java. En essence,
c’est le moyen par lequel une méthode d’une classe Java fonctionnant dans
une JVM (Java Virtual Machine) peut
invoquer une méthode d’une classe
Java qui fonctionne sur une autre JVM,
même si cette dernière tourne sur un
système à distance. Quand la méthode
à distance est invoquée, elle est exécutée
sur le JVM à distance et comme
toutes les méthodes Java, elle peut
renvoyer une réponse sous la forme
d’un objet Java ou d’une variable primitive
vers la méthode appelante.
En ce qui me concerne, c’est idéal.
Une classe Java fonctionnant sur un
AS/400 peut envoyer une demande
d’information à une classe Java fonctionnant
sur un serveur NT à distance ;
la classe de ce dernier peut traiter la requête
(par exemple, interroger une
base de données SQL Server) et renvoyer
l’information extraite à la méthode
appelante sur l’AS/400.
RMI brille par sa simplicité.
Appeler la méthode à distance ressemble
beaucoup à appeler une méthode
sur la machine locale, et peu importe
comment les différentes
plates-formes communiquent parce
que Java s’en occupe entièrement.
Quand une classe client dans une
JVM adresse une requête d’une classe
serveur dans une JVM à distance, plusieurs
couches entrent en scène (figure
1). La couche souche/squelette se
comporte comme le substitut local
pour les objets distants. Quand vous
invoquez une méthode à distance,
vous appelez en fait une méthode dans
la couche souche/squelette. La commande
JDK RMIC (Java Developer’s Kit
RMI Compiler) crée automatiquement
les classes dans la couche souche/squelette, et donc vous n’avez
pas à vous en préoccuper. Si votre JDK
est en version 1.2 ou ultérieure, vous
n’avez besoin d’utiliser que des
souches dans la couche souche/squelette.
Avec les versions antérieures, il
fallait à la fois les souches et les squelettes.
Téléchargez cette ressource
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental