Saturday, January 5, 1980

BiblioWatcher

Problématique
Faire communiquer deux programmes ecrits en 2 langages differents et hebergés sur differentes machines.

Cas d'application
Elaboration d'une solution de consultation en ligne de l'etat de la bibliothèque de L'ENSA via n'importe quel PC connecté.

Difficulté
Faire communiquer des pages PHP sous linux avec un produit Microsoft ACCESS installé sur un Windows XP tout en garantissant une sécurité totale des données.

La Solution: Les services web via XML-RPC et SOAP
XML-RPC ?!? Kesako ?
Réponse: "C'est une spécification et un jeu d'implémentations qui permet l'exécution de programmes sur un ensemble de systèmes d'exploitation hétérogènes, et qui s'exécute dans des environnement différents permettant de d'effectuer des appels de procédure au travers de l'Internet. C'est de l'appel de procédure distant (RPC alias Remote Procedure Call ) utilisant HTTP comme couche de transport et XML pour l'encodage. Il est conçu pour être aussi simple que possible, tout en permettant la transmission, le traitement et le renvoi de structures de données complexes."
Et SOAP ?
SOAP est un protocole homologué par le W3C. Il est hautement plus développé que XML-RPC. Il est extensible et génère des requêtes plus complètes et plus précises que XML-RPC mais également plus complexes.

Nos services web de la bibliothèque seront implémentés suivant XML-RPC, quand a SOAP, il sera utilisé dans le partie cliente de Amazon Web Services alias AWS. En fait, amazon.com qu'est le plus grande site de commerce électronique offre via son web service la possibilité d'avoir beaucoup d'informations sur n'importe quel produit(images, critiques...).

Pourquoi pas SOAP à la place du XML-RPC ?
SOAP ne peut pas être concurrent de XML-RPC et réciproquement.
Certes, SOAP est complet, normalisé, puissant, extensible mais dans notre cas, XML-RPC s'avere plus léger,plus rapide et couvre la plupart des problèmes du type webservice.
En plus, le fait que SOAP est très récent par rapport a XML-RPC, on trouve des vieux langages comme REBOL qui ne peuvent pas supporter SOAP et donc XML-RPC se confirme comme étant le plus standard et le plus portable.

Schéma de la solution


La coté serveur
J'ai d'abord commencer à élaborer les services web du coté serveur en ASP. C'est une seule page qui offre les fonctions nécessaires à la consultation de la base ACCESS

La partie serveur hébergé dans le PC 81.192.181.46


La partie cliente
Pour tester mes services web, j'ai programmé deux exemples de client en ASP et en PHP.
La partie Cliente consomme et les web services de la base ACCESS via XML-RPC et les web services de AMAZON via SOAP
Exemple du client en ASP
Dans le client, pour travailler avec les méthodes de la partie serveur comme s'elles étaient locales, il suffit d'indiquer l'URL du web service

Spécification de l'URL du serveur XML-RPC


Appel de la méthode ListerFamille()


Appel de la méthode ListerLivreParFamille(id_famille)


Si le livre existe


Si le livre n'est pas disponible, les info sur l'adhérent concerné


Consommation de service web d'AMAZON pour avoir plus d'informations sur un livre donné


Exemple de client en PHP
C'est pratiquement la même chose en ASP mais codée en PHP avec en plus de la consommation des services web d'amazon, la consultation de la base de Google via son API offerte aussi en SOAP.

Appel en PHP de la methode distante LivreParFamille(id_famille) codée en ASP


Consultation de la base de Google au sein de la même page


Et de même, plus d'informations via Amazon...

No comments:

Post a Comment