lunes, 8 de julio de 2013

BUSINESS DELEGATE
Proporciona el control y protección para el servicio de negocio.
BusinessDelegate puede exponer dos tipos de constructores al cliente. Un tipo de petición ejemplariza el BusinessDelegate sin una ID, mientras que el otro lo inicializa con un ID, donde ID es una versión String de la referencia al objeto remoto como un EJBHome o unEJBObject.
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

 

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.

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 expuesta 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).

BENEFICIOS

 

·         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.

SOLUCION

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.
El Delegado de negocios actúa como una abstracción de negocio del lado del cliente, sino que proporciona una abstracción para, por lo que se esconde, la aplicación de los servicios a las empresas. El uso de un Business Delegate reduce el acoplamiento entre los clientes de la capa de presentación y servicios de negocio del sistema. Dependiendo de la estrategia de implementación, el Business Delegate podría proteger a clientes de la posible volatilidad en la implementación de la API de servicios empresariales. Potencialmente, esto reduce el número de cambios que se deben de introducirse en el nivel de presentación código de cliente cuando el servicio de negocio API o sus cambios de implementación subyacentes.
Sin embargo, los métodos de interfaz en el Business Delegate aún pueden requerir modificaciones si los cambios en la API de servicios empresariales subyacentes. Es cierto, sin embargo, es más probable que se realicen cambios en el servicio de negocio en lugar de a la Delegada de negocios.
El principal beneficio está ocultando los detalles del servicio subyacente. Por ejemplo, el cliente puede llegar a ser transparente para servicios de nombres y de búsqueda. El Delegado de negocios también se ocupa de las excepciones de los servicios a las empresas, como las excepciones java.rmi.Remote, Java Servicio Mensajes (JMS), excepciones, etc. El Business Delegate podría interceptar las excepciones de nivel de servicio y generar excepciones a nivel de aplicación en su lugar. Las excepciones de nivel de aplicación son más fáciles de manejar por los clientes, y puede ser fácil de usar. El Delegado de negocios también puede llevar a cabo de forma transparente cualquier reintento o las operaciones de recuperación necesario en el caso de una falla en el servicio sin exponer al cliente para el problema hasta que se determine que el problema no se puede resolver. Estas ganancias representan una razón de peso para utilizar el patrón.
Otro beneficio es que el delegado puede almacenar en caché los resultados y las referencias a los servicios empresariales a distancia. El almacenamiento en caché puede mejorar significativamente el rendimiento, ya que limita de ida y vuelta innecesarios y potencialmente costosa en la red.
Un Business Delegate utiliza un componente llamado el servicio de búsqueda. El servicio de búsqueda se encarga de ocultar los detalles de la implementación del servicio de código de búsqueda empresarial. El servicio de búsqueda puede ser escrito como parte de la delegada, pero se recomienda que se aplique como un componente separado, como se indica en el patrón Service Locator (Consulte "Servicio de localización" en la página 368.)
Cuando el Business Delegate se utiliza con un Session Facade, normalmente hay un uno-a-uno entre los dos. Existe este uno-a-uno, porque la lógica que podría haber sido encapsulada en un Business Delegate en relación a su interacción con múltiples servicios a las empresas (creación de un uno-a-muchos) a menudo será de nuevo un factor en un Session Facade.
Por último, cabe señalar que este patrón se podría utilizar para reducir el acoplamiento entre otros niveles, no simplemente la presentación y los niveles de negocio.

CONSECUENCIAS
·         Reduce el Acoplamiento, Mejora Manejabilidad 
El Business Delegate reduce el acoplamiento entre la capa de presentación y la capa de negocio al ocultar todos los detalles de implementación de negocios de nivel. Es más fácil gestionar los cambios, ya que se centralizan en un solo lugar, el Delegado de negocios.
·         Traduce negocios excepciones de servicio 
El Delegado de negocios es responsable de traducir cualquier red o excepciones relacionadas con la infraestructura en las excepciones empresariales, protegiendo a los clientes a partir del conocimiento de los detalles de la implementación subyacente.
·         Implementa la recuperación de fallos y Sincronización de subprocesos 
El Delegado de negocios al encontrarse con un error de servicio de negocio, puede implementar características de recuperación automática sin necesidad de exponer el problema al cliente. Si la recuperación se realiza correctamente, el cliente no necesita saber sobre el fracaso. Si el intento de recuperación no tiene éxito, entonces el Delegado de negocios tiene que informar al cliente de la falla. Además, los métodos de delegado de negocios pueden ser sincronizados, si es necesario.
·         Impactos Performance 
El Business Delegate podría proporcionar servicios de almacenamiento en caché (y mejor rendimiento) a la capa de presentación de las solicitudes de servicios comunes.
·         Presenta capa adicional 
El Delegado de negocios puede ser visto como la adición de una capa innecesaria entre el cliente y el servicio, introduciendo de este modo la complejidad añadida y la disminución de la flexibilidad. Algunos desarrolladores pueden pensar que se trata de un esfuerzo adicional para desarrollar los delegados de negocios con las implementaciones que utilizan la estrategia Proxy Delegado. Al mismo tiempo, los beneficios de la pauta típicamente son mayores que tales inconvenientes.
·         Oculta lejanía 
Si bien la transparencia ubicación es uno de los beneficios de este modelo, un problema diferente puede surgir debido al desarrollador tratamiento de un servicio remoto como si fuera un solo local. Esto puede suceder si el desarrollador del cliente no entiende que el Delegado de negocios es un proxy de cliente a un servicio remoto. Por lo general, una invocación de métodos sobre los resultados Delegado de negocios en una invocación de métodos remotos bajo el secreto. Haciendo caso omiso de esto, el desarrollador puede tender a hacer numerosas llamadas de métodos para llevar a cabo una única tarea, aumentando así el tráfico de red.


CONCLUSION: Mejora el rendimiento reduciendo el número de búsquedas.

No hay comentarios:

Publicar un comentario