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 des articles dans la base de données et en supprimer, mais également afficher des informations sur un ou tous les articles actuels du catalogue Auction.

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 langues également différentes d'interagir à l'aide de composants XML.

Il existe deux approches générales pour le développement de services Web : descendante et ascendante. Dans le cas d'une approche descendante, un service Web est basé sur l'interface des services Web et les 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 du squelette pour interagir avec la logique métier. Dans le cas d'une approche ascendante, un service Web est créé à partir de la logique métier existante dans des beans JavaBeans ou des EJB. Un fichier WSDL est généré pour décrire l'interface résultante du service Web. L'approche descendante offre un plus grand contrôle sur l'interface du service Web et les types XML utilisés ; c'est l'approche recommandée pour le développement d'un service Web.

Le service Web Auction a été développé à l'aide d'une 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 des services Web du catalogue Auction, les opérations offrent 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

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, le squelette de bean Java, contient trois parties distinctes développées à l'aide d'un assistant. Ces parties étant générées simultanément et testées comme une même unité, elles sont décrites ensemble.

Les sections suivantes décrivent comment ces principaux composants ont été créés :

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

L'interface des services Web et les types XML définis dans les fichiers WSDL (Web Services Description Language) et XSD (XML Schema Definition) décrivent le 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 de schéma XML 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 WSDL de squelette à l'aide du style par défaut et d'un littéral de document. Cette méthode est recommandée par l'organisation de l'interopérabilité des services Web (WS-I). WS-I est une organisation spécialisée dans les normes ouvertes, qui publie des instructions permettant de s'assurer que les services Web des différents fournisseurs sont compatibles entre eux.

Une fois que le fichier WSDL de squelette a été 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 lié à l'éditeur de schéma XML, qui peut être ouvert à partir de l'éditeur WSDL de sorte que les parties du fichier WSDL puissent se reporter aux types de schéma XML définis dans le fichier XSD, comme illustré dans la capture d'écran ci-après.

 

Génération du squelette de Bean Java à l'aide de l'assistant des services Web

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

En parallèle à la création du squelette de service Web, nous avons choisi de créer deux autres éléments à l'aide de l'assistant :

  • Le proxy Java : Un proxy est un client de service Web permettant au client de communiquer avec le fournisseur de services.
  • Un exemple de page JSP : Cet exemple de page JSP est un fichier 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 la vérification simultanée de tous les éléments du service Web.

Une fois que le squelette de service Web a été créé, le fichier d'implémentation du squelette Java généré a été ouvert dans l'éditeur Java, qui contient l'interface requise pour les méthodes, comme défini par le fichier WSDL. A ce stade, le développeur a modifié le fichier d'implémentation du squelette pour accéder à la logique métier du système dorsal.

La page JSP de l'exemple 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 de droite. Une fois l'entrée saisie dans le formulaire, si vous cliquez sur le bouton Appeler, la méthode permettant de traiter l'entrée est appelée et le résultat est affiché dans le cadre de droite inférieur.

Pour le service Web Auction, nous avons modifié la page JSP de l'exemple généré pour créer une interface visuellement plus conviviale et ajouté la prise en charge du traitement des tableaux car l'opération qui renvoie une liste de tous les éléments de la base de données renvoie un tableau.