Imaginez que vous êtes chez vous avec des amis devant un match de foot et vous proposez à vos amis de vous faire livrer des pizzas. Vous prenez votre annuaire afin de localiser un restaurant de livraison de pizza à domicile, une fois un numéro trouvé vous appelez le restaurant, vous précisez à l'interlocuteur ou l'interlocutrice votre commande à partir du menu qu'elle/il vous annonce oralement, vous lui transmettez vos coordonnées (nom, prénom, adresse, n° de téléphone) afin que le livreur puisse vous localiser et vous livrer puis vous raccrochez. Le cuisinier du restaurant prend votre commande en charge et fabrique votre pizza avec les ingrédients précisés sur le menu, la pizza cuit, une fois cuite le pizzaïolo place votre pizza dans un carton et annonce au livreur qu'elle est prête. Le livreur prend alors en charge la pizza et vous localise sur une carte à partir des coordonnées que vous avez précisées, le livreur fais sa course, arrive devant votre porte, vous récupérez la pizza et vous la payez, vous pouvez enfin manger votre pizza. Le livreur rentre au restaurant et le gérant du restaurant encaisse votre paiement.
Dans cet exemple, vous faites appel à un service, bien entendu pour y faire appel il vous faut effectuer quelques actions, la première étant de découvrir le service de livraison de pizza à domicile. Une fois le service localisé s'ensuit une suite d'actions à partir d'un message (votre commande et vos coordonnées) que vous transmettez au restaurant.
Les services web fonctionnent de la même manière, sur un réseau quelques ordinateurs proposent des services à partir de messages que d'autres ordinateurs transmettent. Pour faire appel à un service il faut donc :
1.Le localiser : vous cherchez dans l'annuaire un restaurant de pizza qui fait de la livraison à domicile
2.Invocation du service : vous téléphonez au restaurant et vous transmettez vos coordonnées pour la création d'une fiche client
3.Description du service : vous passez commande à partir du menu
L'adresse d'un service web se présentant sous la forme d'une URI (
Universal Resource Identifier) c'est une adresse générique standardisée permettant d'identifier une ressource Internet, par exemple
http://www.uneadresseweb.com/unServiceWeb.
Pour localiser un service web, il faut donc connaître son URI, soit vous la connaissez et vous l'utilisez directement dans les applications soit vous ne la connaissez pas ou alors elle peut changer alors vous faites appel à un annuaire de services appelé annuaire UDDI (
Universal Description Discovery and Integration).
Pour l'invoquer, le service attendra de vous plusieurs informations, en premier lieu votre adresse afin qu'il puisse vous localiser puis les informations nécessaires au traitement de l'action à déclencher, ces actions doivent être mis en forme sous la forme de messages en fonction d'un protocole connu du service. La personne qui répond au téléphone est chargé de mettre en forme votre commande et vos coordonnées sous la forme d'un message afin que vous et tous les acteurs du restaurant vous compreniez, une fiche est créée pour votre commande, sa forme est utilisée pour tous les clients : on dira que cette fiche client est le protocole pour communiquer. Avec les services web, il existe deux protocoles :
-SOAP (
Simple Object Access Protocol), le plus répandu
-XML-RPC (
XML Remote Procedure Call), le plus ancien
Ces deux protocoles de communication utilisent des messages au format XML, dans lequel on retrouvera des informations concernant l'adresse des appelants, les actions demandées, les informations à transmettre, etc.
Enfin le service propose des actions et attend éventuellement des informations pour répondre à vos attentes, ces informations sont listés dans le menu (pizzas, boissons, desserts, etc.), une fois les informations transmises des actions vont être déclenchées pour enfin vous transmettre un message en retour : votre pizza. Ces actions et le format des informations sont formalisées dans le menu, avec un service web c'est le fichier WSDL (
Web Service Description Language) qui fait office de menu, il doit déclarer les actions qu'il est possible de déclencher, pour notre exemple "fabriquer pizza", "cuir pizza", "livrer pizza", "encaisser pizza"; il doit également déclarer le type de message, le détail de ce qu'il y a dans le menu :
-pour les pizzas :
o les ingrédients des pizzas
o la taille
o le nbre de personne
-pour les desserts :
o gâteau
o glace
o poids
-pour les boissons :
o quantité
o eau
o alcool
Un service web c'est donc :
-une adresse sue le web via HTTP
-un protocole de communication pour échanger des messages, la plupart du temps SOAP
-des échanges de messages grâce à des informations et des d'actions déclarées dans un fichier WDSL
La mise en place d'un service web est tout aussi compliqué que la création du restaurant de livraison à domicile, il faut déclarer l'entreprise, acheter du matériel, embaucher du personnel, respecter les règles d'hygiènes, etc. Heureusement il existe sur le marché un ensemble de frameworks qui va simplifier et accélérer le travail du développeur AXIS et CXF font parties de ceux les plus utilisé.
Partager