Détails du service Web Auction

Le service Web a été développé comme un autre moyen d'interagir avec la base de données des articles utilisée par l'application Auction, à l'aide de XML. Les utilisateurs du service Web Auction peuvent ajouter ou supprimer des articles dans la base de données. Ils peuvent aussi afficher des informations détaillées sur un article particulier ou sur tous les articles actuellement en vente sur le site.

Un service Web est un ensemble de fonctions d'application associées pouvant être publiées, recherchées et appelées sur Internet. Les services Web permettent à des applications exécutées sur des plateformes différentes et développées dans des langages également différents d'interagir à l'aide de composants définis en XML.

Il existe deux approches générales pour le développement de services Web : descendante et ascendante. Dans le cas de l'approche descendante, un service Web est basé sur une interface et des types XML définis dans les fichiers WSDL (Web Services Description Language) et XSD (XML Schema Definition). Le développeur modifie alors l'implémentation squelette pour l'interfacer avec la logique métier (ou applicative). Dans le cas de l'approche ascendante, un service Web est créé à partir de la logique métier existante codée dans des beans Java ou des EJB. Un fichier WSDL est généré pour décrire l'interface de service Web résultante. L'approche descendante offre un plus grand contrôle sur l'interface du service Web et les types XML utilisés. A ce titre, elle est préconisée pour le développement d'un service Web.

Le service Web Auction a été développé suivant l'approche descendante, en définissant d'abord les fichiers WSDL et XSD. Le fichier WSDL définit les interfaces exposées, les opérations appelées et les messages transmis lors de ces opérations. Le fichier WSDL fait référence au fichier XSD pour la définition exacte de ces messages.

Pour l'application de service Web du site de vente aux enchères Auction, les opérations définies fournissent les fonctions suivantes :
  • Ajout d'un article au catalogue
  • Suppression d'un article du catalogue
  • Affichage des informations sur un article spécifique
  • Affichage d'une liste de tous les articles du catalogue
Pour que ces opérations soient possibles, l'ID utilisateur et l'ID de la catégorie doivent exister.

Le diagramme ci-après illustre les phases de développement du service Web. Les éditeurs WSDL et XSD permettent de définir les fichiers WSDL et XSD. Le second composant, un squelette de bean Java, contient trois parties distinctes qui sont toutes développées à l'aide d'un assistant. Ces parties étant générées simultanément et testées comme un tout, elles sont décrites ensemble.

Diagramme illustrant les outils et les processus mis en oeuvre pour développer le service Web

Définir les fichiers WSDL et XSD à l'aide des éditeurs WSDL et XSD

L'interface de service Web et les types XML définis dans les fichiers WSDL (Web Services Description Language) et XSD (XML Schema Definition) décrivent la présentation du service Web et son comportement en définissant ses éléments et les actions associées.

Lorsque le service Web Auction a été développé, un fichier XSD a été créé à l'aide de l'éditeur de schéma XML pour définir les types XML Schema, qui ont ensuite été transmis dans le service Web.

Un fichier WSDL a ensuite été créé à l'aide de l'assistant Nouveau fichier WSDL, qui crée un fichier squelette WSDL utilisant la combinaison style/utilisation par défaut, c'est-à-dire "document/littéral". Cette combinaison est celle qui est recommandée par l'organisation WS-I (Web Services Interoperability). WS-I est une organisation spécialisée dans les normes ouvertes, qui publie des directives visant à garantir l'interopérabilité des services Web émanant de différents fournisseurs.

Une fois le fichier squelette WSDL créé, l'éditeur WSDL a été utilisé pour l'éditer. Les nouveaux messages, opérations et parties sont créés dans le fichier WSDL, avec une liaison nouvellement générée. L'éditeur WSDL est étroitement couplé avec l'éditeur de schéma XML. Ce dernier peut d'ailleurs être lancé depuis l'éditeur WSDL, si bien que les parties définies dans le fichier WSDL peuvent faire référence aux types XML Schema définis dans le fichier XSD (voir l'illustration suivante). Diagramme illustrant l'éditeur de schéma WSDL

Générer le squelette de bean Java avec l'assistant Service Web

Le squelette de bean Java est créé à partir des fichiers WSDL et XSD, à l'aide de l'assistant Service Web. Cet assistant génère un code Java conforme au modèle de programmation JAX-RPC. Les descripteurs de déploiement du service Web sont générés conformément à la spécification Web Services for J2EE.

Parallèlement à la création du squelette de service Web, nous avons choisi d'utiliser l'assistant pour créer deux autres éléments :
  • Le proxy Java : un proxy est un client de service Web capable de dialoguer avec le fournisseur du service.
  • Une page JSP : il s'agit d'un exemple de fichier JSP (JavaServer Pages) qui interagit avec le client du service Web à des fins de test.

La création du proxy Java et de l'exemple de page JSP en même temps que le squelette de service Web facilite considérablement le test simultané de tous les éléments du service Web.

Une fois le squelette de service Web créé, le fichier d'implémentation du squelette Java généré a été ouvert dans l'éditeur Java, qui contenait l'interface requise pour les méthodes telle que définie par le fichier WSDL. A ce stade, le développeur a modifié le fichier d'implémentation du squelette pour programmer l'accès à la logique métier d'arrière-plan.

Le fichier JSP généré est un exemple de base, fonctionnel, dont le contenu est organisé en trois cadres. Le cadre de gauche contient la liste de toutes les méthodes disponibles avec lesquelles l'utilisateur peut interagir. Si vous cliquez sur l'une de ces méthodes, une zone d'entrée s'ouvre dans le cadre supérieur droit. Une fois l'entrée saisie dans le formulaire, si vous cliquez sur le bouton Invoke, la méthode chargée de traiter l'entrée est appelée et le résultat est affiché dans le cadre inférieur droit.

Diagramme illustrant les trois cadres du JSP généré

Pour le service Web Auction, nous avons modifié l'exemple de JSP généré afin de créer une interface visuellement plus attrayante. Nous avons aussi ajouté le support de traitement des tableaux (arrays), car l'opération chargée de renvoyer la liste de tous les articles enregistrés dans la base de données retourne un tableau.

Sujet parent : Service Web Auction

Vos commentaires