3ème cycle Internet : Programmation & Applications
POLE UNIVERSITAIRE LEONARD DE VINCI
92916 PARIS-LA-DEFENSE
IPA 2002
eVinci-XP Group
Blaise DELEMAZURE
Hervé MARCANTONI
Michel FEUILLADE
JAVA
XML-RPC LITE
COMPTE-RENDU
Projet: octobre 2001--janvier 2002
Projet JAVA XML-RPC Lite - page 2 -
27/05/17 - eVinci Group IPA:
[email protected], herve.marcantoni@wanadoo.fr, feuillade@freesurf.fr
SOMMAIRE
II PRESENTATION DES 2 PROGRAMMES........................................................... 3
2.1 LE SERVEUR ........................................................................................................................................................ 3
2.1.1 La couche serveur ..................................................................................................................................... 3
2.1.2 La couche RPC............................................................................................................................................ 4
2.1.4 La couche application ............................................................................................................................... 5
2.2 - LE CLIENT .......................................................................................................................................................... 6
2.2.1 La couche RPC............................................................................................................................................ 6
2.2.2 La couche graphique ................................................................................................................................ 8
III ECRITURE DU PROGRAMME ...................................................................... 9
3.1 LES PROBLEMES RESOLUS ............................................................................................................................... 9
3.1.1 - ........................................................................................................................................................................ 9
3.2 LIMITATIONS CONNUES ............................................................................................................................... 9
3.2.1 Passage par l’écriture dur le disque de la hashtable......................................................................... 9
3.2.1 Passage par l’écriture dur le disque des fichiers XML ..................................................................... 9
CONCLUSION ........................................................................................... 10
Projet JAVA XML-RPC Lite - page 3 -
27/05/17 - eVinci Group IPA:
[email protected], herve.marcantoni@wanadoo.fr, feuillade@freesurf.fr
II Présentation des 2 programmes
XML-RPC Lite étant basé sur le modèle client-serveur, deux parties bien distinctes ont
été développées : le serveur et le client.
2.1 Le serveur
L’application XML-RPC Lite serveur est implantée sur le serveur. Elle est constituée de
trois couches superposées :
2.1.1 La couche serveur
Première étape
Le serveur démarre et attend la connexion d’un client éventuel (server Socket).
Seconde étape
Lorsqu’un client se connecte, un thread (serverChild) est créé qui :
1. Lance la couche RPC (RPCLite.start()).
2. Enregistre le document XML du flux d’entrée de la socket dans un fichier
(request.xml).
3. Appel la méthode RPCLite.XMLResponse(). Ce dernier appel est une entorse à la
philosophie qui sous-tend la conception de RPC, car celle-ci est d’encapsuler
complètement la couche RPC, qui ne doit être accessible que par les méthodes
start() et stop().
4. Lit le document XML généré par RPCLite dans un fichier (response.xml) et
l’enregistre dans le flux de sortie de la socket.
Projet JAVA XML-RPC Lite - page 4 -
27/05/17 - eVinci Group IPA:
[email protected], herve.marcantoni@wanadoo.fr, feuillade@freesurf.fr
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.
Projet JAVA XML-RPC Lite - page 5 -
27/05/17 - eVinci Group IPA:
[email protected], herve.marcantoni@wanadoo.fr, feuillade@freesurf.fr
2.1.4 La couche application
Elle est composée de tous les objets, classes et méthodes que le client peut manipuler sur
le serveur. Le développement d’une classe accessible par le client sur le serveur (donc
partageable par RPC-Lite) doit respecter les spécifications suivantes :
La classe doit implémenter Serializable pour que ses instances puissent être
sérialisées avec la table de hachage
Elle ne doit pas avoir de constructeur autre que celui par défaut. En fait c’est une
restriction non nécessaire puisque la méthode Class.getConstructors()
permet de créer des objets avec un constructeur qui accepte des paramètres.
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!