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.
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.
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.
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.
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.
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.