
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.