
   
Projet JAVA – XML-RPC Lite   - page 4 - 
27/05/17  -  eVinci Group IPA: 
 
2.1.2 – La couche RPC 
Première étape 
Elle analyse le fichier XML par la méthode de contrôle XMLResponse() qui crée le DOM 
en  mémoire  en  analysant  le  fichier  request.xml  et  fait  appel  selon  le  premier  tag  reçu 
(<request> ou <stock>) : 
 Soit à la méthode getAction() à laquelle elle transmet le DOM en paramètre pour 
fournir la méthode demandée  
 Soit à la méthode getStock(), façon WSDL, pour fournir le « stock » de  classes, 
méthodes et objets présents sur le serveur et disponibles pour les clients. 
 
Ces  deux  méthodes  traitent  la  demande  du  client  et  génèrent  un  document  XML, 
contenant les résultats, qui est enregistré dans un fichier response.xml. 
 
Seconde étape 
La couche RPC est composée des éléments suivants :  
 
1. Une  table  de  hachage,  un  champ  de  RPCLite,  qui  permet  de  retrouver  les 
références sur les objets avec leur nom. Elle est désérialisée et sérialisée dans le 
fichier  hashtable.bin à  chaque  connexion  d’un  client,  c’est  à  dire  à  chaque 
invocation  des  méthodes  RPCLite.start()  et  RPCLite.stop()  Cette  solution 
pose des problèmes de cohérence car un client peut écraser les objets créés par 
un autre. Il faudra dans  une version ultérieure charger la table de hachage une 
seule fois par session du serveur.  
2. Une  classe  de  méthodes  utilitaires  auxquelles  font  appel  getAction()  et 
getStock()  Cette  classe,  Utilities,  est  interne  à  la  classe  RPCLite  car  ses 
méthodes manipulent la table de hachage 
3. Une  méthode loadConfig(),  pour  configurer  RPC,  qui  est  lancée  en  exécutant 
directement  la  méthode  main()  de  RPC  et  fait  appel  à  deux  fichiers que 
l’administrateur peut éditer : config.xml et update.xml. Cette méthode permet 
dans  cette  version  de  créer  éventuellement  une  nouvelle  table  de  hachage  et 
surtout  de  charger  de  nouvelles  classes  à  disposition  des  clients.  D’autres 
fonctionnalités pourront être développées pour une version ultérieure.