WS-ReliableMessaging describe un protocolo que permite que los mensajes SOAP se entreguen de manera confiable entre aplicaciones distribuidas en presencia de fallas de componentes de software, sistemas o redes.
La especificación original fue escrita por BEA Systems , Microsoft , IBM y Tibco y en marzo de 2003 y posteriormente perfeccionada durante los dos años siguientes. La versión de febrero de 2005 se presentó al Comité Técnico de OASIS Web Services Reliable Exchange (WS-RX) en junio de ese año. El WS-ReliableMessaging 1.1 resultante fue aprobado como Estándar OASIS el 14 de junio de 2007 y la v1.2 fue aprobada el 2 de febrero de 2009.
Antes de WS-ReliableMessaging, OASIS produjo un estándar competitivo ( WS-Reliability ) que fue respaldado por una coalición de proveedores; a saber , Fujitsu , Hitachi , NEC , Oracle Corporation , Progress Software y Sun Microsystems . La mayoría de estos proveedores ahora también admiten la especificación WS-ReliableMessaging.
Modelo de mensajería confiable
Una fuente de aplicación (AS) desea enviar mensajes de manera confiable a un destino de aplicación (AD) a través de una infraestructura no confiable. Para lograr esto, utilizan una fuente de mensajería confiable (RMS) y un destino de mensajería confiable (RMD). El AS envía un mensaje al RMS. El RMS utiliza el protocolo WS-ReliableMessaging (WS-RM) para transmitir el mensaje al RMD. El RMD entrega el mensaje al AD. Si el RMS no puede transmitir el mensaje al RMD por alguna razón, debe generar una excepción o indicarle al AS que el mensaje no se transmitió. El AS y el RMS pueden implementarse dentro del mismo espacio de proceso o pueden ser componentes separados. De manera similar, AD y RMD pueden existir dentro del mismo espacio de proceso o pueden ser componentes separados.
Lo importante a tener en cuenta es que la especificación WS-RM solo se ocupa del contenido y el comportamiento de los mensajes tal como aparecen "en el cable". Cómo se envían los mensajes desde el AS al RMS, cómo se entregan desde el RMD al AD, si los mensajes se conservan en el disco o en la memoria, etc .; ninguna de estas consideraciones forma parte de la especificación WS-RM.
El protocolo WS-RM define y admite una serie de garantías de entrega. Estos son:
- Al menos una vez
- Cada mensaje se entregará al AD al menos una vez. Si no se puede entregar un mensaje, el RMS y / o el RMD deben generar un error. Los mensajes se pueden entregar al AD más de una vez (es decir, el AD puede recibir mensajes duplicados).
- Como máximo una vez
- Cada mensaje se enviará al AD como máximo una vez. Es posible que los mensajes no se envíen al AD, pero el AD nunca recibirá mensajes duplicados.
- Exactamente una vez
- Cada mensaje se enviará al AD exactamente una vez. Si no se puede entregar un mensaje, el RMS y / o el RMD deben generar un error. El AD nunca recibirá mensajes duplicados.
- En orden
- Los mensajes se entregarán desde el RMD al AD en el orden en que se envían desde el AS al RMS. Esta garantía se puede combinar con cualquiera de las garantías anteriores.
Arquitectura componible
WS-ReliableMessaging utiliza el modelo de extensibilidad de SOAP y WSDL . WS-ReliableMessaging no define todas las funciones necesarias para una solución de mensajería completa. WS-ReliableMessaging es un componente básico que se utiliza junto con otras especificaciones de servicios web y protocolos específicos de la aplicación para crear una solución de mensajería completa.
Crítica
Este artículo intenta argumentar que la confiabilidad no es necesaria a nivel de mensaje, pero sí a nivel empresarial.
Historia
- WS-ReliableMessaging 200303 creado por BEA, IBM, Microsoft y Tibco.
- WS-ReliableMessaging 200403 creado por BEA, IBM, Microsoft y Tibco.
- WS-ReliableMessaging 200502 creado por BEA, IBM, Microsoft y Tibco. Esta versión de la especificación ha sido implementada por varios proveedores y proyectos de código abierto. A veces se denomina "WS-ReliableMessaging 1.0" o "WS-RM 1.0".
- Esta especificación y su política adjunta WS-RM 200502 se enviaron al Comité Técnico de OASIS Web Services Reliable Exchange (WS-RX) para su estandarización en junio de 2005.
- WS-ReliableMessaging 1.1 es el producto del WS-RX TC mencionado anteriormente. Se acompaña de las especificaciones WS-RM Policy 1.1 y WS-MakeConnection 1.0 .
- Las tres especificaciones fueron aprobadas como estándares OASIS el 14 de junio de 2007.
- WS-ReliableMessaging 1.2 La versión reemplaza las referencias a versiones preestándar de WS-Policy con referencias a la recomendación WS-Policy W3C ( WS-Policy 1.5 ) y corrige algunos errores menores. Se acompaña de las especificaciones WS-RM Policy 1.2 y WS-MakeConnection 1.1 .
- Las tres especificaciones fueron aprobadas como estándares OASIS el 2 de febrero de 2009.