lunes, 8 de julio de 2013

SESSION FACADE
Session Facade abstrae las interacciones de objetos de negocio subyacentes y proporciona una capa de servicio que expone sólo las interfaces necesarias. Por lo tanto, se esconde de la vista del cliente las complejas interacciones entre los participantes. Session Facade maneja las interacciones entre los datos empresariales y objetos de servicios empresariales que participan en el flujo de trabajo, y encapsula la lógica de negocio asociada a los requisitos. Así, el bean de sesión (que representa el Session Facade) maneja las relaciones entre los objetos de negocio. El bean de sesión también gestiona el ciclo de vida de los participantes mediante la creación, la localización (mirando hacia arriba), modificación y eliminación de las condiciones establecidas en el flujo de trabajo. En una aplicación compleja, el Session Facade podría delegar la gestión de estilo de vida para un objeto independiente. Por ejemplo, para manejar el estilo de vida de la sesión los participantes y beans de entidad, el Session Facade podría delegar esa labor a un localizador de objeto de servicio.Es importante examinar la relación entre los objetos de negocio. Algunas relaciones entre objetos de negocio son transitorios, lo que significa que la relación es aplicable sólo a que la interacción o escenario. Otras relaciones pueden ser más permanente. Relaciones transitorios se modelan mejor como flujo de trabajo en una fachada, donde la fachada gestiona las relaciones entre los objetos de negocio. Relaciones permanentes entre dos objetos de negocio deben ser estudiados para determinar qué objeto de negocio (si no ambos objetos) mantiene la relación.

Estrategias

El Session Facade es un objeto de controlador comercial de nivel que controla las interacciones entre el cliente y los datos empresariales participantes y objetos de servicios empresariales. En una aplicación compleja, puede haber numerosos Fachadas sesión que puede intermedios entre el cliente y estos objetos. Se puede identificar que un Session Facade podría ser útil en el estudio de las necesidades del cliente y las interacciones normalmente documentados en los casos de uso y escenarios. Este análisis permite identificar un controlador de capa compuesta de Sesión Fachadas, que puede actuar como fachadas para estos escenarios.
Esta sección explica las diferentes estrategias para la implementación de un Session Facade.

 

CONTEXTO

Beans Enterprise encapsulan lógica de negocio y datos de negocio y exponen sus interfaces, y por lo tanto la complejidad de los servicios distribuidos, a la capa de cliente.

PROBLEMA

En una plataforma de varios niveles Java 2, Enterprise Edition (J2EE), entorno de aplicación, surgen los siguientes problemas:
·         Acoplamiento apretado, lo que conduce a dirigir la dependencia entre los clientes y los objetos de negocio;
·         Demasiados invocaciones de método entre el cliente y el servidor, lo que lleva a problemas de rendimiento de la red;
·         La falta de una estrategia de acceso de cliente uniforme, exponer objetos de negocio a un mal uso.
Una aplicación J2EE varios niveles cuenta con numerosos objetos del lado del servidor que se implementan como beans enterprise. Además, algunos otros objetos arbitrarios pueden proporcionar servicios, datos, o ambos. Estos objetos se conocen colectivamente como objetos de negocio, ya que encapsulan los datos de negocio y la lógica de negocio.
Aplicaciones J2EE implementan objetos de negocio que proporcionan servicios de procesamiento como beans de sesión. Objetos de negocio de grano grueso que representan una vista de objetos de almacenamiento persistente y son compartidos por varios usuarios suelen aplicarse como beans de entidad.
Los clientes de aplicaciones tienen acceso a los objetos de negocio para cumplir con sus responsabilidades y cumplir con los requerimientos del usuario. Los clientes pueden interactuar directamente con los objetos de negocio, ya que exponen sus interfaces. Al exponer los objetos de negocio con el cliente, el cliente debe entender y ser responsable de las relaciones de objeto de datos de negocio, y debe ser capaz de manejar el flujo de procesos de negocio.
Sin embargo, la interacción directa entre el cliente y los objetos de negocio lleva a la estrecha conexión entre los dos, y esa estrecha conexión hace depender directamente al cliente sobre la aplicación de los objetos de negocio. Dependencia directa significa que el cliente debe representar y poner en práctica las complejas interacciones sobre las búsquedas y creaciones de objetos de negocio, y debe manejar las relaciones entre los objetos de negocio participantes, así como entender la responsabilidad de la demarcación de transacción.
A medida que aumentan los requisitos de cliente, la complejidad de la interacción entre los diversos objetos de negocio aumenta. El cliente se hace más grande y más compleja para cumplir con estos requisitos. El cliente se convierte en muy susceptible a los cambios en la capa de objeto de empresa y, además, el cliente está innecesariamente expuesto a la complejidad subyacente del sistema.
Estrecho acoplamiento entre los objetos también se produce cuando los objetos gestionar su relación dentro de sí mismos. A menudo, no está claro en que se gestiona la relación. Esto conduce a las relaciones complejas entre los objetos de negocio y la rigidez en la aplicación. Esta falta de flexibilidad hace que la aplicación menos manejable cuando se requieren cambios.
Al acceder a los beans de empresa, los clientes interactúan con objetos remotos. Los problemas de rendimiento de la red pueden resultar si el cliente interactúa directamente con todos los objetos de negocio participantes. Cuando se invoca beans enterprise, cada invocación cliente es potencialmente una llamada a un método remoto. Cada acceso al objeto de negocio es relativamente fino. Como el número de participantes aumenta en un escenario, el número de tales métodos remotos llama aumenta. A medida que el número de método remoto llama aumenta, la chattiness entre el el negocio del lado del servidor y cliente objetos aumenta. Esto puede resultar en la degradación del rendimiento de la red para la aplicación, ya que el gran volumen de llamadas de método remoto aumenta la cantidad de interacción a través de la capa de red.
Un problema también surge cuando un cliente interactúa directamente con los objetos de negocio. Dado que los objetos de negocio se exponen directamente a los clientes, no existe una estrategia unificada para acceder a los objetos de negocio. Sin una estrategia de acceso de cliente uniforme tanto, los objetos de negocio están expuestas a los clientes y pueden reducir el uso constante.

Fuerzas

·         Proporcionar una interfaz más sencilla para los clientes al ocultar todas las complejas interacciones entre los componentes de negocio.
·         Reducir el número de objetos de negocio que se expone al cliente a través de la capa de servicios en la red.
·         Ocultar desde el cliente las interacciones subyacentes e interdependencias entre los componentes de negocio. Esto proporciona una mejor manejabilidad, centralización de interacciones (responsabilidad), una mayor flexibilidad y una mayor capacidad para hacer frente a los cambios.
·         Proporcionar una capa de servicio de grano grueso uniforme para separar aplicación objeto de negocio de la abstracción de servicios empresariales.
·         Evitar la exposición de los objetos de negocio subyacentes directamente al cliente para mantener estrecho acoplamiento entre los dos niveles a un mínimo.

SOLUCIÓN

Use un bean de sesión como fachada para encapsular la complejidad de las interacciones entre los objetos de negocio que participan en un flujo de trabajo. El Session Facade maneja los objetos de negocio y proporciona una capa de acceso a servicios de grano grueso uniforme a los clientes.


ESTRUCTURA
Muestra el diagrama de clases que representa el patrón Session Facade.




PARTICIPANTES Y COLABORACIONES



 

contiene el diagrama de secuencia que muestra las interacciones de un Session Facade con dos beans de entidad, un bean de sesión y un DAO, todos actuando como participantes en el cumplimiento de la solicitud del cliente.

Cliente

Esto representa el cliente del Session Facade, que necesita acceso a servicios empresariales. Este cliente puede ser otro bean de sesión (Session Facade) en el mismo nivel de negocios o un delegado de negocio.

SessionFacade

El SessionFacade se implementa como un bean de sesión. El SessionFacade gestiona las relaciones entre los numerosos BusinessObjects y proporciona un nivel de abstracción más alto para el cliente. El SessionFacade ofrece acceso genérico a la BusinessObject participar representado por la invocación al bean de sesión.

BusinessObject



El BusinessObject es un objeto de función que facilita la aplicación de diferentes estrategias, como la sesión frijoles beans de entidad y un DAO (vea la siguiente sección, "Estrategias"). A BusinessObject proporciona datos y / o algún servicio en el diagrama de clases. El SessionFacade interactúa con varias instancias BusinessObject para prestar el servicio.

No hay comentarios:

Publicar un comentario