sábado, 6 de julio de 2013

BUSINESS DELEGATE



Contexto
Un sistema de varios niveles, distribuida requiere invocaciones de métodos remotos para enviar y recibir datos a través de los niveles. Los clientes están expuestos a la complejidad de tratar con componentes distribuidos.
 
Problema
Componentes de la capa de presentación interactúan directamente con los servicios de negocio. Esta interacción directa expone los detalles de la implementación de la interfaz de programa de aplicación de servicio de negocio (API) para la capa de presentación. Como resultado, los componentes de la capa de presentación son vulnerables a los cambios en la aplicación de los servicios a las empresas: Cuando la ejecución del cambio de servicios empresariales, el código de aplicación expuestos en el nivel de presentación debe cambiar también.
 
Además, puede haber un impacto negativo en el rendimiento de la red ya que los componentes de niveles de presentación que utilizan las API de servicios empresariales hacen demasiadas invocaciones a través de la red. Esto ocurre cuando los componentes de la capa de presentación utilizan la API subyacente directamente, sin un mecanismo de almacenamiento en caché del lado del cliente o servicio de agregación.
 
Por último, la exposición de las API de servicio directamente al cliente obliga al cliente para hacer frente a los problemas de red asociados a la naturaleza distribuida de la tecnología Enterprise JavaBeans (EJB).




Fortalezas:
·         Clientes de la capa de presentación necesitan tener acceso a servicios de oficina.
  ·         Diferentes clientes, tales como dispositivos, clientes web y clientes pesados, necesitan tener  acceso a servicios empresariales.
·         Servicios de oficina API puede cambiar a medida que evolucionan las necesidades empresariales.
·         Es deseable minimizar el acoplamiento entre los clientes de la capa de presentación y el servicio de negocio, así ocultar los detalles de implementación del servicio, como la búsqueda y el acceso.
·         Los clientes pueden necesitar para poner en práctica mecanismos de almacenamiento en caché de la información de servicio de negocio.
·         Es deseable reducir el tráfico de red entre el cliente y servicios de oficina.

Solución
Utilice un Business Delegate para reducir el acoplamiento entre los clientes de niveles de presentación y servicios de oficina. El Business Delegate oculta los detalles de la implementación del servicio de negocio, como la búsqueda y la información de acceso de la arquitectura EJB.

Estructura
La Figura 8.1 muestra el diagrama de clases que representa el patrón Business Delegate. El cliente solicita al BusinessDelegate para proporcionar acceso a los servicios de negocio subyacente. El BusinessDelegate utiliza un LookupService para localizar el componente BusinessService requerida.

 
Figura 8.1 Diagrama de clase BusinessDelegate


Participantes y Responsabilidades
Figura 8.2 y la Figura 8.3 muestran los diagramas de secuencia que ilustran las interacciones típicas para el patrón Business Delegate.



 
Figura 8.2 Diagrama de secuencia BusinessDelegate


BusinessDelegate

El papel del BusinessDelegate es proporcionar control y protección para el servicio de negocio. El BusinessDelegate puede exponer dos tipos de constructores a los clientes. Un tipo de solicitud de una instancia del BusinessDelegate sin un ID, mientras que el otro crea una instancia con un ID, donde ID es una versión de cadena de la referencia a un objeto remoto, como EJBHome o EJBObject.
Cuando se inicializa sin una identificación, los BusinessDelegate pide al servicio del servicio de búsqueda, normalmente implementado como un Servicio de localización (consulte "Servicio de localización" en la página 368), que devuelve el servicio de fábrica, tales como EJBHome. Los BusinessDelegate pide que el Service Factory ubicar, crear o eliminar un BusinessService, como un bean enterprise.

Cuando se inicializa con una cadena de ID, la BusinessDelegate utiliza la cadena de ID de volver a conectar a la BusinessService. Por lo tanto, los escudos BusinessDelegate el cliente de los detalles de implementación subyacentes de la nomenclatura BusinessService y búsqueda. Además, el cliente de la capa de presentación nunca hace directamente una invocación remota en un BusinessSession, sino que el cliente utiliza el BusinessDelegate.

LookupService 

El BusinessDelegate utiliza el LookupService para localizar el BusinessService. El LookupService encapsula los detalles de implementación de búsqueda BusinessService.

BusinessService 

El BusinessService es un componente comercial de nivel, como un bean enterprise o un componente JMS, que proporciona el servicio requerido para el cliente.

Estrategias

Delegar Estrategia Proxy 

El Business Delegate expone una interfaz que proporciona a los clientes acceso a los métodos básicos de la API de servicios empresariales. En esta estrategia, un Business Delegate proporciona la función de proxy para pasar los métodos cliente al bean de sesión se encapsula. El Business Delegate podría almacenar en caché, además, todos los datos necesarios, incluyendo las referencias remotas a la casa del bean de sesión o de objetos remotos para mejorar el rendimiento al reducir el número de búsquedas. El Delegado de negocios también puede convertir esas referencias a las versiones de cadena (ID) y viceversa, utilizando los servicios de un Servicio de localización.
En el ejemplo de la aplicación de esta estrategia se explica en la sección "Código de ejemplo" de este patrón.

(© 2001-2002 Sun Microsystems, Inc. Todos los derechos reservados.)
 




No hay comentarios:

Publicar un comentario