Initiation aux Web-Services avec PHP5 et Java J2MEDate de publication : 17/08/06 , Date de mise à jour : 17/08/06
Par
Jean-Pierre Clair (jp-clair.developpez.com)
Trouver le moyen d'interfacer divers clients écrits en divers langages sur diverses plateformes, c'est le travail du Web-Service. Dans cet article, nous allons créer un service Web simple à l'aide de PHP5, ainsi qu'un fichier WSDL servant à le décrire. Nous créerons un client simple en PHP5, puis un client mobile en Java J2ME à l'aide de KSOAP2. I. Introduction II. Création d'un serveur SOAP en PHP5 II-1. Pré-requis II-2. Création du fichier WSDL II-2-a. Contenu II-2-b. Exemple II-2-c. Pour aller plus loin II-3. Création du moteur PHP5 III. Création d'un client SOAP en PHP5 IV. Création d'un client SOAP en Java J2ME IV-1. Généralités IV-2. Utilisation de KSOAP2 IV-3. Pour aller plus loin I. Introduction
Un grand merci à Yogui pour la relecture et les corrections de cet article, à Ricky81 pour sa disponibilité et ses conseils, et un grand merci à la communauté Développez.
Cet article est également disponible en version PDF ici
Le service Web est une solution apportée aux contraintes des architectures actuelles, il apporte un réponse simple aux nombreux besoins d'interopérabilité.
Concevoir un service qui sera accessible depuis un programme C tournant sur un serveur Linux, depuis un programme J2ME tournant sur un téléphone portable ou bien depuis n'importe quel navigateur Internet, voilà le défi que le service Web relève.
Le protocole que nous allons voir, nommé SOAP (Simple Object Access Protocol), utilise XML et transmet des informations sur le réseau via HTTP.
Pour essayer d'introduire une grande partie des concepts liés à SOAP, nous allons dans un premier
temps utiliser le langage PHP et plus précisément PHP5 ; ainsi nous pourrons nous concentrer sur
les points sensibles (WSDL par exemple).
II. Création d'un serveur SOAP en PHP5II-1. Pré-requis
Pour mettre en place votre service, il vous faut un serveur Apache compilé avec PHP5 et SOAP (--enable-soap) (pour information, certaines sociétés
proposent des hébergements à des prix très abordables avec les options nécessaires) Par usage, on crée en même temps que son service un fichier de description ayant l'extension WSDL (Web Service Description Language). Certains programmes peuvent générer eux-mêmes leurs fichiers WSDL (gSoap par exemple).
II-2. Création du fichier WSDLII-2-a. Contenu
Le fichier WSDL se divise en plusieurs parties :
Definitions contient des informations sur la constitution du fichier WSDL Types regroupe les définitions des types de données (tableau, Objet...) Message élément utilisé pour la constitution d'une opération, composé de : - nom du message - nom du (ou des) paramètre(s) - type du (ou des) paramètre(s) Port Type ensemble des opérations du Web-Service Operation méthode du Web-Service, elle peut être composée de deux parties : - input : Message d'invoquation de la méthode - output : Message de retour de la méthode Binding définit le format des messages ainsi que des détails sur les opérations et les messages Service Regroupe les différents Ports ainsi que la définition du service Port point de sortie de l'application (on définit ici l'URL du serveur SOAP) II-2-b. Exemple
II-2-c. Pour aller plus loin
Dans notre fichier WSDL, nous avons manipulé le type xsd:string, il existe heureusement d'autres types :
Il existe également un type tableau ainsi qu'un type Objet vous permettant de développer des services plus complexes, correspondant parfaitement à vos attentes.
Pour plus d'exemples ou de documentations, consultez : http://www.w3.org/TR/wsdl http://www.xmethods.net II-3. Création du moteur PHP5
III. Création d'un client SOAP en PHP5
IV. Création d'un client SOAP en Java J2MEIV-1. Généralités
Nous n'avons pas ici l'objectif de vous apprendre la programmation Java J2ME, il existe pour cela un cours (Cours de Julien DEFAUT)
Nous partons des pré-requis suivants :
Pour réaliser la partie SOAP, je vous conseille d'utiliser l'outil KToolBar qui contient un moniteur réseau permettant un debug assez efficace. Pour l'activer : Edit > Preferences ... > Monitor > Enable Network Monitor Nous allons ici réaliser un client simple qui va répondre à notre serveur SOAP déjà construit IV-2. Utilisation de KSOAP2
La librairie KSOAP2 comporte un certain nombre de fonctions permettant de créer ou d'analyser un objet SOAP, la gestion de la connexion est implémentée par HTTPConnection, classe présente par défaut.
Le site internet du projet KSOAP2 se trouve ici Une documentation online est disponible ici Le téléchargement se trouve ici. Nous n'avons besoin que du fichier ksoap2-j2me-core-2.X.X.jar, il sera à inclure dans le répertoire lib de KToolBar. Voici le code de notre client SOAP, les commentaires vous permettront de comprendre le fonctionnement
IV-3. Pour aller plus loin
nous avons récupéré une chaîne de texte et nous l'avons affichée mais, par la suite, le type en sortie sera tout autre (SoapObject par exemple). Commencez à vous familiariser avec tout cela en constituant des méthodes SOAP plus complexes avec des retours de type tableau ou objet, voire même des tableaux d'objets.
Le debug des Web-Services n'est pas chose aisée car l'erreur peut provenir du serveur SOAP, du fichier WSDL ou de votre client ; heureusement, un certain nombre d'outils vont vous aider :
|
Copyright © 2006 Jean-Pierre Clair. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.
Copyright © 2000-2012 - www.developpez.com