En este apéndice se detallan todas las estrategias de adaptación presentadas en la Sección 2.5.4, las cuales permiten abordar la degradación en la calidad de los servicios, la saturación de servicios y los cambios en los contratos de los servicios.
Invocar Servicio Equivalente
Esta estrategia consiste en invocar un servicio equivalente para un Servicio Virtual que requiera una necesidad de adaptación. Concretamente, esta estrategia permite abordar las siguientes necesidades de adaptación:
Degradación de la calidad: Considerando esta necesidad, se podría mejorar el tiempo de
respuesta de un servicio si se invoca un servicio equivalente con menor tiempo de respuesta. También se lograría mejorar el porcentaje de respuestas exitosas si el servicio equivalente así lo permite.
Cambio de contrato: Para abordar la necesidad de cambio de contrato de un servicio, esta
estrategia permite invocar a un servicio equivalente que preste las mismas funcionalidades del servicio original. El real aporte de esta estrategia se presenta en aquellos casos donde la estrategia Modificar Solicitud y Respuesta no se puede aplicar.
En la Figura 70 se muestra un flujo de adaptación que representa la estrategia Invocación a Servicio Equivalente. Dicho flujo está compuesto por servicios de adaptación que utilizan mecanismos de transformaciones. En una primera instancia se aplican dos transformaciones (TRN-1 y TRN-2), que permiten ajustar el mensaje SOAP recibido a la interfaz del servicio equivalente, luego se aplican otras dos transformaciones (TRN-3 y TRN-4), para ajustar el mensaje SOAP de respuesta del servicio equivalente a la interfaz del servicio original.
Figura 70 - Implementación de estrategia de invocación a servicio equivalente.
Distribuir Solicitud a Servicios Equivalentes
Esta estrategia consiste en enviar una solicitud a varios servicios, que sean equivalentes al Servicio Virtual original, para luego responder a la aplicación cliente a partir de la primera respuesta obtenida. En particular, esta estrategia permite abordar la siguiente necesidad de adaptación:
Degradación de la calidad: Con respecto a esta necesidad, al invocar a varios servicios
equivalentes se tiene más posibilidades de que alguno de ellos tenga un menor tiempo de respuesta que el Servicio Virtual original, por ende los tiempos de respuesta disminuyen. De
- 120 -
manera similar, hay más posibilidades de obtener alguna respuesta exitosa si se envía la solicitud a varios servicios equivalentes.
La Figura 71 despliega un flujo de adaptación el cual representa una posible estrategia de Distribuir Solicitud a Servicios Equivalentes. Este flujo utiliza los mecanismos de lista de destinatarios, transformaciones y el unificador de respuestas.
Figura 71 - Implementación de la estrategia para distribuir solicitudes a servicios virtuales equivalentes.
Balancear Carga
Esta estrategia permite distribuir uniformemente las diferentes solicitudes a un Servicio Virtual entre sus servicios equivalentes. Con respecto a las necesidades de adaptación, esta estrategia permite abordar la siguiente necesidad:
Saturación: Esta estrategia reduce claramente la cantidad de invocaciones que un servicio
procesa por período de tiempo, debido a la distribución uniforme que la misma realiza.
La Figura 72 muestra un flujo de adaptación que representa esta estrategia. Este flujo utiliza los mecanismos de ruteo intermediario y transformaciones.
Figura 72 - Ejemplo de una implementación de la estrategia que balancea la carga.
Utilizar Información Almacenada
Esta estrategia utiliza información almacenada en invocaciones previas de un servicio, generando una respuesta sin la necesidad de invocar directamente al Servicio Virtual. Específicamente, esta estrategia permite abordar las siguientes necesidades de adaptación:
- 121 -
Degradación de la calidad: Con respecto a esta necesidad, disponer de información
previamente almacenada, puede ser útil tanto para incrementar las respuestas exitosas de un servicio que no esté siempre disponible, como para disminuir sus tiempos de respuesta.
Saturación: Para abordar la saturación de servicios, esta estrategia permite generar una
respuesta sin la necesidad de invocar a un Servicio Virtual. Consecuentemente, se reduce la cantidad de invocaciones que llegan a un servicio saturado.
Cambio de contrato: Para abordar la necesidad de cambio de contrato de un servicio, esta
estrategia permite generar respuestas utilizando información previamente almacenada, sin la necesidad de realizar la invocación a un servicio que modificó su contrato.
La Figura 73 presenta un flujo de adaptación que constituye la estrategia Utilizar Información Almacenada para cierto Servicio Virtual. Este flujo utiliza el mecanismo de cache el cual se encargará de retornar directamente una respuesta en caso de poseer información previamente almacenada.
Figura 73 - Implementación de estrategia que utiliza información almacenada.
Diferir Pedidos
Esta estrategia recibe un mensaje y posterga su entrega por un determinado período de tiempo. Concretamente, esta estrategia permite abordar la siguiente necesidad de adaptación:
Saturación: Esta estrategia permite reducir el número de solicitudes que recibe un servicio por
período de tiempo. La estrategia tiene como objetivo diferir pedidos para que el servicio no procese más solicitudes de las que puede soportar.
La Figura 74 muestra el flujo de adaptación que representa a la estrategia encargada de diferir los pedidos a un Servicio Virtual.
- 122 -
Modificar Solicitud y Respuesta
Esta estrategia tiene la capacidad de modificar tanto un mensaje de solicitud a un Servicio Virtual, así como también su respuesta. Específicamente, esta estrategia aborda la siguiente necesidad de adaptación:
Cambio de contrato: Para abordar esta necesidad, la estrategia permite manipular el mensaje
de solicitud/respuesta de un servicio, de forma tal que se pueda seguir invocando a las operaciones que sufrieron algún tipo de cambio.
La Figura 75 presenta una forma de implementar esta estrategia en el ESB utilizando los mecanismos de ruteo y transformaciones.