Los servicios asíncronos utilizan un patrón de interacción de devolución de llamada para
las comunicaciones entre los objetos. Se pueden utilizar, por ejemplo, en sistemas de publicación-suscripción
proporcionados por proveedores de middleware orientado a mensajes o en dominios de gestión de dispositivos o sistemas.
Servicios WS-Notification
Los estándares de los servicios asíncronos se establecen en las
especificaciones WS-Notification:
- WS-BaseNotification define las interfaces de servicio web para NotificationProducers y NotificationConsumers.
Esta especificación
incluye intercambios estándares de mensajes implementados por los proveedores de servicios
que desean actuar en estos roles, junto con los requisitos operativos asociados.
- WS-BrokeredNotification define la interfaz de servicios web para
NotificationBroker. Un NotificationBroker es un intermediario que, entre
otras cosas, permite que entidades que no son ellas mismas proveedores de servicios publiquen mensajes. Incluye intercambios estándares de mensajes implementados por proveedores de servicio NotificationBroker,
junto con los requisitos operativos asociados de los proveedores y solicitantes de servicio que participan
en las notificaciones con intermediario.
- WS-Topics define un mecanismo para organizar y categorizar elementos de interés
para la suscripción denominados temas. Se utilizan junto con los mecanismos
de notificación definidos en WS-BaseNotification y WS-BrokeredNotification.
Puede probar servicios web y servicios XML que implementan
la especificación WS-Notification al crear una solicitud asíncrona
dentro de una prueba. La solicitud asíncrona consta de interfaces para la
especificación WS-Notification correspondiente, junto con una estructura
de devolución de llamada.
Servicios asíncronos de propietario
Puede probar servicios asíncronos
de propietario que no implementen especificaciones WS-Notification. Para probar estos servicios, puede crear de forma manual una solicitud de servicio
que contiene interfaces para el servicio y, a continuación, puede
añadir la estructura de devolución de llamada asíncrona a la solicitud.
Los
datos XML de la solicitud asíncrona deben contener un punto final que
especifique el URL del destinatario de la devolución de llamada. Durante la prueba, este punto final se utiliza para redireccionar la devolución de llamada al verificador en lugar
de hacerlo al receptor real.
Estructura de devolución de llamada
Para probar servicios
asíncronos, debe crear una estructura de solicitud asíncrona en la prueba
como se muestra en el siguiente diagrama:
Una solicitud de servicio web o una solicitud
XML sencilla proporcionan la acción de suscripción y contienen un elemento de devolución
de llamada, que describe el comportamiento de la prueba en tres etapas:
- Paralelo contiene elementos de prueba que se ejecutan después
de que se haya enviado la solicitud de suscripción y mientras se espera la respuesta de notificación.
- Recepción contiene elementos de prueba que se ejecutan una vez que se ha recibido la respuesta
de notificación del servicio.
- Tiempo de espera excedido contiene elementos de prueba que se ejecutan si después
del retardo especificado en el elemento de devolución de llamada no se ha recibido la respuesta de notificación.
Cuando todo lo que contienen los elementos del paralelo, recepción y tiempo de espera excedido ha terminado su ejecución, ésta continua con
el siguiente elemento de la prueba después de la solicitud asíncrona.
El método de generación
de la estructura de devolución de llamada asíncrona en la prueba depende de si el servicio asíncrono utiliza la
especificación WS-Notification:
- Servicios WS-Notification: crea la solicitud asíncrona de la
prueba.
- Servicios de propietario: crea de forma manual una solicitud de servicio web o una solicitud XML de la prueba y, a continuación, añade la estructura de devolución de llamada asíncrona
a la solicitud.