Este patrón es utilizado en sistemas multi-capa
distribuidos cuando es necesaria la invocación de métodos remotos para enviar y
recibir datos entre las distintas capas del sistema.
Evita que los componentes de la capa de
presentación interactúen directamente con los servicios de negocio y sean
vulnerables a los cambios en la capa de negocio. Si no se empleara este patrón
sería necesario exponer la implementación de la interfaz del servicio de
negocio a la capa de presentación obteniendo una fuerte dependencia entre ambas
capas.
Este patrón reduce el acoplamiento entre los
clientes y la capa de negocio, ocultando los detalles de la implementación de
los servicios de negocios y búsquedas y accesos asociados en los sistemas
distribuidos.
Otras de las ventajas del uso de este patrón es la
posibilidad de dotarlo de la capacidad de almacenar resultados y referencias a
servicios remotos que puede mejorar considerablemente el rendimiento.
Puede utilizarse como interfaz entre distintas
capas, ya que no se restringe su uso a la separación de las capas de
presentación y modelo.
Normalmente el business delegate oculta a otro
patrón, el session façade, ocultando la tecnología utilizada en el modelo.
El business delegate actúa como una abstracción de negocio del lado del cliente;
y por lo tanto oculta, la implementación de los servicios del negocio.
Utilizando business delegate se reduce el acoplamiento entre los clientes de la capa de
presentación y los servicios de negocio del sistema.
Si bien es cierto, que los cambios
se harán con más probabilidad en el servicio de negocio que en el business delegate.
El principal beneficio de utilizar
este patrón es ocultar los detalles del servicio. Por ejemplo, el cliente puede
ser transparente para los servicios de búsqueda y nombrado. El business delegate también maneja las excepciones de los servicios de negocio,
como excepciones java.rmi.remote,
excepciones java messages service (jms), etc. el business delegate podría interceptar
dichas excepciones a nivel de servicio y generar en su lugar excepciones a
nivel de aplicación. Las excepciones de nivel de aplicacion son fáciles de
manejar por los clientes, y pueden ser amigables para el usuario. El business delegate también podría realizar de forma transparente cualquier
operación de reintento o de recuperación necesaria en el caso de un fallo en el
servicio otro beneficio es que el delegado podría almacenar resultados y
referencias a servicios de negocio remotos.
Un business delegate utiliza un componente llamado lookup service. Este componente es el responsable de ocultar los detalles
de implementación de código de búsqueda del servicio de negocio. El lookup service podría estar escrito como parte del delegate, pero es recomendable implementarlo como un componente
separado.
·
Estructura (diagrama de clases)
El cliente solicita
al BusinessDelegate que le proporcione acceso al servicio de
negocio subyacente. El BusinessDelegate utiliza un LookupService para localizar el componente BusinessService requerido.
·
Diagrama de secuencia
No hay comentarios:
Publicar un comentario