8 de julio de 2013

Business Delegate

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