Utilice este tema como introducción para utilizar los servicios web. WebSphere Application Server
admite servicios Web que se desarrollan y se implementan en varios modelos de
programación Java™. Utilice los servicios web al operar simultáneamente en varias plataformas, incluidas las plataformas Java EE (Java Platform,
Enterprise Edition) y las plataformas que no sean Java EE.
Antes de empezar
Decida si la implementación de los servicios web va a beneficiar a los procesos de su empresa.
Acerca de esta tarea
Best practice: IBM®
WebSphere Application Server soporta el modelo de programación JAX-WS (Java API for XML-Based Web Services)
y el modelo de programación JAX-RPC (Java API
for XML-based RPC). JAX-WS es la siguiente generación del modelo de programación de servicios que amplía la base proporcionada por el modelo de programación JAX-RPC.
Con el modelo de programación JAX-WS estratégico, se
simplifica el desarrollo de clientes y servicios web ya que se da soporte
a un modelo de anotación basado en estándares. Aunque el modelo de
programación JAX-RPC y las aplicaciones siguen recibiendo soporte, puede
beneficiarse de la facilidad de implementación del modelo de programación
JAX-WS para desarrollar nuevas aplicaciones y clientes de servicios
web.best-practices
Para obtener una lista completa de los estándares y las especificaciones a los que se da soporte, consulte las especificaciones y la documentación de la API de los servicios Web.
La implementación de aplicaciones de servicios web es una forma fácil
de integrar sistemas de aplicación dentro o fuera de la infraestructura de la empresa que
funcionan como sistemas autónomos. Por ejemplo, la base de datos de información de clientes
es una aplicación autónoma, pero es probable que desee que la aplicación de contabilidad
acceda a los datos de los clientes. Puede crear un servicio web
para la base de datos de clientes y, a continuación, habilitar la aplicación de contabilidad como un cliente
de servicio web. Ahora la aplicación de contabilidad puede acceder a la información de clientes. Al implementar un servicio web, estas dos aplicaciones pueden compartir información de forma eficaz.
Puesto que los servicios web se aplican fácilmente a aplicaciones y a activos de tecnología de la información, puede desarrollar, desplegar y recomponer nuevas
soluciones rápidamente para abordar nuevas oportunidades. A medida que los servicios web se
utilizan con más frecuencia, la agrupación de servicios crece y se
fomenta el desarrollo de modelos más sólidos de integración de empresa
y aplicaciones JIT (Just-in-time) en Internet.
Puede utilizar aplicaciones de servicios web con el servidor de aplicaciones realizando los pasos siguientes:
Procedimiento
- Planifique la utilización de servicios web. Revise todos los componentes de los servicios Web para obtener información sobre cómo
hacer que un plan de utilización de los servicios Web sea más potente.
- (Opcional) Migre
los servicios web existentes.
Dado que los entornos de Java EE acentúan la compatibilidad, la mayoría de los servidores de aplicaciones que ofrecen soporte a las especificaciones JAX-WS y JAXB más recientes continúan dando soporte a la antigua especificación JAX-RPC. A consecuencia de ello, es probable que los servicios web existentes puedan seguir basados en JAX-RPC, mientras que los nuevos se desarrollan utilizando JAX-WS y JAXB.
Sin embargo, a medida que pasa el tiempo y las aplicaciones se revisan y se reescriben, es posible que lo mejor sea migrar un servicio web basado en JAX-RPC a uno basado en JAX-WS y JAXB. Así, un proveedor podría optar por proporcionar mejoras sobre las cualidades del servicio que sólo estuviesen a disposición de los nuevos modelos de programación. Por ejemplo, el soporte para SOAP 1.2 y MTOM (SOAP Message Transmission Optimization Mechanism) sólo está disponible en los modelos de programación JAX-WS 2.x y JAXB 2.x, y no en JAX-RPC.
Consulte las mejores prácticas para la migración de servicios web para obtener más información sobre los métodos recomendados y los ejemplos a la hora de migrar los servicios web JAX-RPC a los servicios web JAX-WS y JAXB.
Nota: Las aplicaciones JAX-RPC existentes que desean utilizar las características de JAX-WS se deben volver a escribir utilizando el modelo de programación JAX-WS.
Si ha utilizado servicios web basados en Apache SOAP y ahora desea desarrollar e implementar la especificación Servicios Web para Java EE, debe migrar las aplicaciones de cliente desarrolladas con todas
las versiones 4.0 y 5.0 anteriores a la 5.0.2. Para obtener más información, consulte la migración de los servicios web de Apache SOAP a los servicios web JAX-RPC basados en información de estándaresJava EE.
- Desarrolle aplicaciones de servicios web. Puede desarrollar los servicios web de una de las maneras siguientes:
- Desarrolle servicios web a partir de archivos WSDL utilizando JAX-WS.
Puede crear un servicio web JAX-WS comenzando con un archivo WSDL
(web Services Description Language) que describe la interfaz de servicio para una aplicación de JavaBeans o de enterprise beans.
Normalmente, el archivo WSDL se define como parte del proceso de creación de modelos de aplicación. El uso de una definición de servicio existente o de un archivo WSDL para generar una aplicación nueva se denomina enfoque descendente para desarrollar los servicios web.
- Desarrolle aplicaciones de servicios web utilizando JAX-WS.
Puede utilizar el modelo de programación JAX-RPC (Java API for XML-Based Web)
para desarrollar servicios web. JAX-WS simplifica el desarrollo de aplicaciones a través del soporte de
un modelo estándar basado en anotaciones, para desarrollar aplicaciones y clientes de servicios web. Un conjunto común de reglas de vinculación para objetos Java y XML facilita la incorporación de datos XML y funciones de proceso en aplicaciones Java. Otro conjunto de mejoras ayuda a optimizar el
envío de archivos adjuntos binarios, tales como imágenes o archivos
con solicitudes de servicios web.
Versión 9.0 incluye soporte para los enterprise beans de sesión singleton
como puntos finales JAX-WS.
Los beans de sesión singleton son útiles en las
situaciones donde una sola instancia de un bean de implementación de punto
final de servicios web es necesario para procesar todas las solicitudes que
se reciban para un punto final de servicios web concreto.
Es posible que una
sola instancia de bean tenga que compartir información de estado
entre solicitudes. Normalmente, se crea una instancia nueva de un bean de
implementación de punto final de servicios web para procesar cada solicitud.
Cuando desarrolle un servicio Web JAX-WS a partir de los JavaBeans
existentes o de los enterprise beans sin estado o de sesión singleton, puede exponer
el bean como un servicio web JAX-WS utilizando las anotaciones. Al añadir la anotación @WebService o @WebServiceProvider al bean, éste se define como un servicio web JAX-WS. Los enterprise beans que se exponen como servicios web JAX-WS deben estar empaquetados en módulos
EJB 2.1 o EJB 3.0 o superiores.
La transformación de una aplicación existente en servicios web recibe el nombre de enfoque ascendente para el desarrollo de servicios web. Este proceso se
denomina ascendente porque comienza con la implementación en lugar de comenzar
con un servicio existente o un archivo WSDL (Web Services
Description Language).
- Desarrolle y despliegue los clientes de servicios web JAX-WS. Los clientes de servicios web que pueden acceder a servicios web JAX-WS, e invocarlos, se desarrollan de acuerdo con los servicios web para la especificación Java EE (Java Platform, Enterprise Edition). El servidor de aplicaciones da soporte a clientes de Enterprise JavaBeans (EJB), clientes de aplicaciones Java EE, archivos de JavaServer Pages (JSP) y servlets basados en el modelo de programación JAX-WS.
- Desarrollo aplicaciones de servicios web a partir de archivos WSDL con JAX-RPC.
Puede crear un servicio web JAX-RPC comenzando con un archivo WSDL existente que
describe la interfaz de servicio de una implementación de enterprise bean
utilizando un enfoque descendente para desarrollar los servicios web.
- Desarrolle aplicaciones de servicios web utilizando JAX-RPC.
Puede utilizar el modelo de programación JAX-RPC (API de Java
para RPC basado en XML) para desarrollar servicios web. Cuando desarrolle un servicio web JAX-RPC empezando desde JavaBeans o enterprise beans, tendrá que desarrollar un archivo WSDL. Puede
utilizar JavaBeans o enterprise beans existentes y, a
continuación, habilitar la implementación para servicios web.
- Desarrolle y despliegue los clientes de servicios web JAX-RPC Puede desarrollar clientes de servicios web en función de la especificación de servicios web para Java Platform, Enterprise Edition (Java EE) y la especificación JAX-RPC (API de Java para RPC basado en XML). El servidor de aplicaciones da soporte a clientes de Enterprise JavaBeans (EJB), clientes de aplicaciones Java EE, archivos de JavaServer Pages (JSP) y servlets basados en el modelo de programación JAX-RPC.
- Habilite los servicios web a través de las tecnologías de integración de servicios
Puede utilizar la habilitación de servicios web del bus de integración de servicios para conseguir los objetivos siguientes:
- Dejar disponible como un servicio web un servicio alojado internamente que está disponible en el destino del bus.
- Dejar disponible de forma interna un servicio web externo en un destino de bus.
- Utilice la pasarela de servicios web para correlacionar un servicio existente, ya sea un servicio alojado internamente o un servicio web externo, con un servicio web nuevo que es proporcionado por la pasarela.
Puede desarrollar servicios web para utilizar el soporte de Addressing (WS-Addressing), Web Services Resource Framework (WSRF) y Web Services Transaction (WS-Transaction).
- Utilice la SPI de WS-Addressing: realice tareas más avanzadas de direccionamiento de servicios web.
Puede desarrollar
servicios web para sacar partido de WS-Addressing (web Services Addressing), que ayuda a la
interoperabilidad entre los servicios web utilizando un método estándar para direccionar los servicios web y proporcionar información de direccionamiento en los mensajes.
- Cree servicios web con estado utilizando WSRF (Web Services Resource Framework).
Con el soporte
WSRF (Web Services Resource Framework) en el servidor de aplicaciones, puede implementar un servicio web con estado como un WS-Resource, y hacer referencia a dicho servicio usando una referencia
de punto final de WS-Addressing.
- Utilice la política WS-Transaction para coordinar las transacciones o las actividades empresariales para servicios web.
WS-Transaction es un estándar de interoperatividad que incluye las especificaciones WS-AtomicTransaction, WS-BusinessActivity y WS-Coordination. El soporte de transacción atómica de servicios web (WS-AT) del servidor de aplicaciones proporciona un servicio de transacciones de calidad para los entornos de servicios web. Las aplicaciones de servicios web distribuidas, así como los recursos que utilizan, pueden tomar parte en las transacciones globales distribuidas.
Con el soporte de WS-BA (Web Services Business Activity) en el servidor de aplicaciones, los servicios web de diferentes sistemas pueden coordinar actividades que se acoplan más débilmente que las transacciones atómicas. Estas actividades pueden ser difíciles o imposibles de retrotraer de forma
atómica y, por lo tanto, requieren un proceso de compensación en caso de
que se produzca un error.
- Utilice WS-Policy para intercambiar políticas en formato estándar.
WS-Policy es un estándar de interoperatividad utilizado para describir y comunicar las políticas de un servicio web, de modo que los proveedores de servicios puedan exportar los requisitos de políticas en un formato estándar. Los clientes pueden combinar los requisitos del proveedor de servicios con sus propias posibilidades para establecer las políticas necesarias para una interacción específica.
- Despliegue
servicios web.
Consulte información sobre todo lo necesario para ensamblar un servicio web y el orden en el qué se ensamblan las partes, por ejemplo, un archivo EAR (Enterprise Archive).
- Despliegue servicios Web.
Consulte información sobre los pasos necesarios para desplegar el archivo EAR que ha sido configurado y habilitado para los servicios web.
- Administre los servicios web desplegados.
Cuando haya desplegado la aplicación de servicios web, podrá configurar los valores de seguridad, ver los descriptores de despliegue y los documentos WSDL, establecer el alcance de un puerto de servicio web y gestionar los conjuntos de políticas y los proveedores de servicios. Estas tareas se pueden hacer utilizando la consola administrativa o con las herramientas de la línea de mandatos.
- Proteja servicios web.
- Publique el archivo WSDL.
Después de instalar una aplicación de servicios web y modificar, opcionalmente, la información de punto final, quizá necesite archivos WDSL (Web Services
Description Language) que contengan la información de punto final actualizada. Consulte información sobre los pasos necesarios para publicar los archivos WSDL para que esta información esté disponible.
- Supervise el rendimiento de las aplicaciones de servicios web.
Consulte información sobre cómo utilizar la infraestructura de supervisión del rendimiento (PMI) para calcular el tiempo necesario para procesar las solicitudes de servicios web.
- Resuelva
problemas de servicios web.
Consulte información sobre cómo resolver problemas de los distintos procesos utilizados para desarrollar, implementar y utilizar servicios web, incluidos: herramientas de línea de mandatos, errores de compilación Java, errores y excepciones de ejecución de cliente, errores de serialización y deserialización y avisos de autenticación y anomalías de autorización con la seguridad de los servicios web.
Ejemplo
En el siguiente ejemplo se muestra cómo una empresa puede utilizar los servicios web.
La propietaria de una floristería desea empezar a recibir
pedidos de clientes a través de Internet. Primero busca
proveedores de flores mayoristas, pone precio a los productos y cierra
contratos para futuros pedidos de flores.
Mediante los
servicios web, la propietaria puede buscar proveedores de flores
mayoristas. Un modo de encontrar nuevos proveedores es mediante un registro UDDI (Universal Description, Discovery and Integration) para buscar posibles proveedores.
Una vez seleccionados los proveedores, el registro le envía información sobre cómo contactar con los distribuidores de flores que
cumplen los criterios del propietario de la floristería.
La propietaria de la
floristería puede solicitar listas de precios de todos los proveedores
mediante la obtención de un archivo WSDL para cada posible proveedor. El archivo WSDL se puede bajar desde la página web del proveedor, recibirlo a través del correo electrónico o recuperarlo desde la entrada del registro UDDI del proveedor.
En el archivo WSDL se describe la llamada a procedimiento.
Cuando se utiliza el servidor de aplicaciones, la llamada de procedimiento es una llamada de procedimiento JAX-RPC o
JAX-WS. Cualquiera de estos tipos de llamada a procedimiento recupera la lista de precios. El archivo WSDL también especifica el localizador universal de recursos
(URL), donde se envía la solicitud.
El propietario de la floristería ahora sólo tiene que comparar los precios
recibidos de cada proveedor, decidir con qué proveedores trabajar y ultimar los detalles para futuros pedidos. La floristería ya puede vender sus productos a través de Internet utilizando los servicios web
como medio de comunicación con los proveedores para obtener los
mejores precios y finalizar los procesos de pedido. Es necesario publicar la listas de precios de la mercancía
en el sitio web así como disponer de un mecanismo para que los clientes puedan hacer pedidos de flores.
Los clientes de servicios web del proveedor de flores se despliegan en el servidor de la floristería. Cuando un cliente realiza una transacción para adquirir flores a través de la Web, el pedido se envía
al proveedor a través de la llamada a procedimiento. Para responder, el proveedor envía la aserción con el número de pedido y la fecha de envío.
Los proveedores mantienen el inventario y la propietaria de la floristería se ocupa de la facturación y la gestión de los pedidos de los clientes.
De forma similar, el catálogo de la floristería se pueden componer automáticamente a partir de los catálogos de los proveedores. Si el proveedor entrega el pedido directamente al cliente, las consultas de seguimiento del pedido pueden pasar directamente al sistema de rastreo de pedidos del proveedor. El proveedor también puede utilizar los servicios web para enviar facturas de pedidos de la floristería. Los procesos, para los que previamente ha sido necesario que
se rellenen formularios manualmente y que se envíen por fax o correo,
ahora ya pueden realizarse automáticamente, con un ahorro de trabajo
tanto para la floristería como el proveedor.
La utilización de
servicios web supone una ventaja, ya que la floristería puede acceder
a un inventario mucho más amplio. El mantenimiento de los productos no
provoca una carga de trabajo adicional y la floristería
puede ofrecer a sus clientes productos que de otro modo quizás no
sería posible. La venta de flores a través de la web aumenta el capital de la floristería sin la carga de trabajo adicional de otro almacén o de la inversión de dinero
en productos adicionales.
Para ver un escenario más detallado, consulte la información sobre la visión general de escenarios de servicios web que relata la historia de ficticia de un proveedor de productos de jardinería, Plants by WebSphere, y explica la forma en que se ha incorporado el concepto de servicios web.
Consulte la sección de ejemplos del
Information Center para obtener ejemplos adicionales que muestran los servicios web JAX-WS y JAX-RPC.