El Conversor de servicio es un patrón de implementación de servicio que permite a una implementación de servicio concreta estar disponible con una interfaz distinta. Determinadas operaciones de la interfaz puede reestructurarse u ocultarse para usuarios específicos de esa interfaz.
Puede utilizar este patrón para:
- Dar soporte a una interfaz concreta para clientes internos pero proporcionar una interfaz distinta (quizás con alguna restricción) a los clientes externos.
- Exponer un conjunto de servicios basado en una interfaz/modelo de datos estándar del sector a consumidores de servicios externos.
- Ofrecer distintas calidades de servicio para que puedan seleccionarse según el cliente.
- Dar soporte a distintas versiones del mismo servicio donde las nuevas versiones hayan introducido cambios en la interfaz.
- Dar soporte al caso en que los clientes de zonas geográficas distintas necesiten que lo datos se envíen o reciban utilizando las unidades de medida locales
- Dar soporte al caso en que los clientes de zonas geográficas distintas necesiten que se envíe o se devuelva la traducción idiomática de datos
El proveedor de servicios se virtualiza desplegando una mediación de bus de servicio empresarial (ESB) que implementa la interfaz proxy que el solicitante de servicio necesita. La mediación transforma la solución como corresponde y luego direcciona la solicitud al proveedor de servicios. La mediación también debe procesar las respuestas del servicio de destino, volviendo a transformarlas al formato que el cliente espera. Los clientes sólo ven el servicio virtual proporcionado por la mediación, que da la impresión de ser el proveedor real del servicio.
La mediación de servicio puede implementar una serie de características adicionales, incluyendo:
- Autenticación
- Autorización
- Auditoría y anotaciones
- Conversión de protocolos
- Correlación de respuestas
El diagrama siguiente muestra un ejemplo de un escenario de Conversión de servicio:
Solución
La solución es implementar un flujo de mediación que contenga lo siguiente:
- Un flujo de solicitudes para cada operación unidireccional en la interfaz de servicio proxy que se correlacione con una operación unidireccional en el servicio de proveedor.
- Un flujo de solicitudes para cada operación de solicitud-respuesta en la interfaz de servicio proxy que se correlacione con una operación unidireccional en el servicio de proveedor.
- Un flujo de solicitudes y un flujo de respuestas para cada operación de solicitud-respuesta en la interfaz de servicio proxy que se correlacione con una operación de solicitud-respuesta en la interfaz del proveedor de servicios.
Los flujos de solicitudes correlacionan cada solicitud entrante a un punto final de proveedor de servicios preconfigurado.
Además, tiene la opción de anotar y rastrear los mensajes de solicitud y respuesta.