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