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