Detalles del servicio Web de subastas

El servicio Web se desarrolló como otra forma de interactuar con la base de datos de artículos utilizada por la aplicación de subastas, utilizando XML. Los usuarios del servicio Web de subastas pueden añadir artículos a la base de datos, así como información sobre uno o todos los artículos actuales de la subasta.

Un servicio Web es un conjunto de funciones de aplicación relacionadas que pueden publicarse, ubicarse e invocarse a través de Internet. Los servicios Web permiten que aplicaciones que se estén ejecutando en distintas plataformas y que se hayan desarrollado en distintos lenguajes puedan interactuar utilizando componentes basados en XML.

Hay dos métodos generales para desarrollar servicios Web: descendente y ascendente. En el método descendente, un servicio Web se basa en la interfaz de servicios Web y los tipos XML definidos en los archivos WSDL (Lenguaje de descripción de servicios Web) y XSD (Lenguaje de definición de esquemas XML). El desarrollador modifica la implementación del esqueleto para interactuar con la lógica empresarial. En el método descendente se crea un servicio Web basado en la lógica empresarial existente en beans Java o EJB. Se genera un archivo WSDL para describir la interfaz de servicios Web resultante. El método ascendente permite tener más control sobre la interfaz de servicios Web y los tipos XML utilizados y es el método recomendado para desarrollar un servicio Web.

El servicio Web de subastas se desarrolló utilizando un método descendente, definiendo primero los archivos WSDL y XSD. El archivo WSDL define qué interfaces se exponen, qué operaciones se llaman y qué mensajes se pasan durante estas operaciones. El archivo WSDL hace referencia al archivo XSD para obtener la definición exacta de estos mensajes.

Para la aplicación de servicios Web de listado de subastas, las operaciones proporcionan estas funciones:
  • Añadir un artículo al catálogo
  • Eliminar un artículo del catálogo
  • Visualizar información acerca de un artículo específico
  • Visualizar una lista de todos los artículos del catálogo
Para realizar estas operaciones, deben existir el ID de usuario y el ID de categoría.

El diagrama siguiente ilustra las fases del desarrollo para el servicio Web. Los editores WSDL y XSD se utilizan para definir archivos WSDL y XSD. El segundo componente, el esqueleto de bean Java, contiene tres partes distintas que se desarrollan utilizando un asistente. Puesto que estas partes se generan al mismo tiempo y se prueban conjuntamente como una unidad, se describen conjuntamente.

Este diagrama muestra las herramientas y los procesos para el desarrollo del servicio Web.

Definir los archivos WSDL y XSD con los editores WSDL y XSD

La interfaz de servicios Web y los tipos XML definidos en los archivos WSDL (Lenguaje de descripción de servicios Web) y XMD (Definición de esquemas XML) describe el aspecto y el comportamiento del servicio Web al definir los artículos y las acciones asociadas.

Cuando se desarrolló el servicio Web de subastas, se creó un archivo XSD nuevo utilizando el editor de esquemas XML para definir los tipos de esquemas XML que se pasaron en el servicio Web.

A continuación, se creó un archivo WSDL nuevo utilizando el asistente Archivo WSDL nuevo que crea un archivo WSDL de esqueleto utilizando el estilo predeterminado y la utilización de literales de documento. Esta es la opción recomendada por WS-I (Interoperabilidad de servicios Web). WS-I es una organización abierta que publica directrices para asegurarse de que los servicios Web de distintos proveedores puedan funcionar unos con otros.

Después de crear el esqueleto del archivo WSDL, se utilizó el Editor WSDL para editar el archivo WSDL. Las operaciones, los mensajes y los componentes nuevos se crean en el archivo WSDL, conjuntamente con un enlace recién generado. El Editor WSDL está intrínsecamente ligado al editor de esquemas XML, el cual puede abrirse desde el Editor WSDL de forma que los componentes del archivo WSDL pueden hacer referencia a los tipos de esquemas XML definidos en el archivo XSD, tal como se muestra en la captura de pantalla siguiente. Este diagrama muestra el editor de esquemas WSDL.

Generar el esqueleto de bean Java con el asistente Servicios Web

El esqueleto de bean Java se crea a partir de los archivos WSDL y XSD, utilizando el asistente de servicios Web. El asistente de servicios Web genera el código Java de acuerdo con el modelo de programación JAX-RPC. Los descriptores de despliegue de servicio Web se generan de acuerdo con la especificación de servicios Web para J2EE.

Además de para crear el servicio Web de esqueleto, también elegimos utilizar el asistente para crear otros dos artículos:
  • El proxy Java: Un proxy es un cliente de servicio Web que permite al cliente comunicarse con el proveedor de servicios.
  • Un JSP de ejemplo: el JSP de ejemplo es un archivo JavaServer Pages que interactúa con el cliente de servicio Web a efectos de prueba.

Crear el proxy Java y el JSP de ejemplo al mismo tiempo que el servicio Web de esqueleto facilita mucho la prueba conjunta de todos los artículos del servicio Web.

Una vez creado el esqueleto del servicio Web, se abre el archivo de implementación de esqueleto Java generado en el editor Java, archivo que contenía la interfaz necesaria para los métodos, tal como se define en el archivo WSDL. En este punto, el desarrollador modifica el archivo de implementación de esqueleto para acceder a la lógica empresarial de componente de fondo.

El JSP de ejemplo generado es básico y funcional, con el contenido organizado en tres marcos. El marco izquierdo contiene una lista de todos los métodos disponibles con los que puede interactuar el usuario. Al pulsar uno de estos métodos se abre un área de entrada en el marco superior derecho. Una vez se realiza la entrada en el formulario, al pulsar el botón Invocar, se llama al método para procesar la entrada y se visualiza el resultado en el marco inferior derecho.

Este diagrama muestra los tres marcos del JSP generado.

Para el servicio Web de subastas, hemos cambiado el ejemplo JSP generado para crear una interfaz visualmente más atractiva y hemos añadido soporte para manejar matrices, porque la operación que devuelve una lista de todos los artículos de la base de datos devuelve una matriz.

Tema principal: Servicio Web de subastas

Comentarios