TRANSFER OBJECT
CONTEXTO
Los
clientes de aplicaciones tienen que intercambiar datos con beans Enterprise.
PROBLEMA
Java 2
Platform, Enterprise Edition (J2EE) implementan componentes de negocio del lado
del servidor como beans de sesión y beans de entidad. Algunos métodos expuestos por
los componentes de negocio devuelven datos al cliente. A menudo, el cliente invoca
métodos get de un objeto de negocio varias veces hasta obtener todos los
valores de los atributos.
Los
beans de sesión representan los servicios a las empresas y no se comparten
entre los usuarios. Un bean de sesión proporciona métodos
de servicios de granularidad gruesa cuando se implementa por el patrón Session
Facade.
Los
beans de entidad, por otro lado, son multiusuario, objetos transaccionales que
representan datos persistentes. Un bean de entidad expone los valores
de los atributos, proporcionando un método de acceso (también referido como un captador o método get ) para cada atributo que desea
exponer.
Cada
llamada al método realizado al objeto de servicio de negocio, ya sea un bean de
entidad o un bean de sesión, es potencialmente remoto. Por lo tanto, en una
aplicación de Enterprise JavaBeans (EJB) tales invocaciones remotas utilizan la
capa de red, independientemente de la proximidad del cliente para el grano, la
creación de una sobrecarga de la red. Enterprise bean llamadas a métodos
pueden impregnan las capas de la red del sistema, incluso si el cliente y el
contenedor EJB que sostiene el bean de entidad son a la vez corriendo en la
misma JVM, OS, o una máquina física. Algunos vendedores pueden implementar
mecanismos para reducir esta sobrecarga, utilizando un enfoque de acceso más
directo y sin pasar por la red.
A
medida que el uso de estos métodos aumenta remotas, rendimiento de la
aplicación puede degradar significativamente. Por lo tanto, el uso de
múltiples llamadas para conseguir métodos que devuelven valores únicos
atributos es ineficiente para la obtención de valores de datos de un bean
enterprise.
BENEFICIOS
·
Todo
el acceso a un bean enterprise se realiza a través de interfaces remotos al
bean. Cada
llamada a un bean enterprise es potencialmente una llamada a un método remoto
con sobrecarga de la red.
·
Normalmente, las aplicaciones tienen una
mayor frecuencia de las operaciones de lectura que las transacciones de
actualización. El cliente
requiere los datos de la capa de negocio para la presentación, exhibición, y
otros de sólo lectura tipos de procesamiento. El
cliente actualiza los datos en la capa de negocio con mucha menos frecuencia de
lo que lee los datos.
·
El cliente por lo general requiere valores
para más de un atributo o un objeto dependiente de un bean enterprise. Por lo tanto, el cliente puede invocar
múltiples llamadas remotas para obtener los datos requeridos.
·
El número de llamadas realizadas por el
cliente al bean enterprise afecta al rendimiento de la red. Aplicaciones de los chattier con un
aumento del tráfico entre el cliente y el servidor niveles, a menudo reducen el
rendimiento de la red.
SOLUCIÓN
Utilizar un Transfer Object para
encapsular los datos de empresa. Una sola llamada al método se utiliza para enviar y recuperar el Transfer
Object. Cuando el cliente solicita el bean enterprise para los datos
empresariales, el bean de empresa puede construir el Transfer Object,
rellenarlo con sus valores de atributos, y pasarlo por valor al cliente.
Los
clientes por lo general requieren más de un valor de un bean enterprise. Para reducir el número de
llamadas remotas y evitar la sobrecarga asociada, lo mejor es utilizar objetos
de transferencia para transportar los datos de la empresa de frijol a su
cliente.
Cuando
un bean enterprise utiliza un objeto de transferencia, el cliente realiza una
llamada a un método remoto al bean enterprise para solicitar el Transfer Object
en lugar de numerosas llamadas a métodos remotos para obtener los valores de
atributos individuales.
El
grano de la empresa construye entonces una nueva instancia del objeto de
transferencia, copia los valores en el objeto y lo devuelve al cliente.
El
cliente recibe el Transfer Object y luego puede invocar métodos de acceso (o
comprador) en el Transfer Object para obtener los valores de los atributos
individuales del objeto de transferencia. O bien, la aplicación del
objeto de transferencia puede ser tal que hace que todos los atributos pública. Debido a que el Transfer
Object se pasa por valor al cliente, todas las llamadas a la instancia de
Transfer Object son llamadas locales en vez de invocaciones de métodos remotos.
ESTRUCTURA
Muestra
el diagrama de clases que representa el patrón Transfer Object en su forma más
simple.
ARTICIPANTES Y RESPONSABILIDADES
contiene
el diagrama de secuencia que muestra las interacciones del patrón Transfer
Object.
Transferencia diagrama de secuencia de objetos
Cliente
Esto
representa el cliente del bean enterprise. El cliente puede ser una
aplicación de usuario final, como en el caso de una aplicación de cliente
enriquecido que ha sido diseñado para acceder directamente a los granos de la empresa. El cliente puede ser delegados
de negocios.
BusinessObject
El
BusinessObject representa un papel importante en este modelo que puede ser
cumplido por un bean de sesión, un bean de entidad, o un objeto de acceso a
datos (DAO). El BusinessObject es responsable de
crear el Transfer Object y devolverlo al cliente bajo petición. El BusinessObject también
puede recibir datos desde el cliente en la forma de un objeto de transferencia
y el uso de esos datos para realizar una actualización.
TransferObject
El
TransferObject es un objeto Java serializable se refiere como un Transfer
Object. Una
clase Transfer Object podría proporcionar un constructor que acepta todos los
atributos necesarios para crear el Transfer Object. El constructor puede aceptar
todos los valores de los atributos del bean de entidad que el objeto Transfer
está diseñado para celebrar. Por lo general, los miembros del
Transfer Object se definen como públicos, eliminando así la necesidad de
obtener y establecer métodos. Si algún tipo de protección es
necesario, a continuación, los miembros podrían definirse como protegida o
privada, y se proporcionan métodos para obtener los valores. Al ofrecer ningún método para
establecer los valores, un objeto de transferencia está protegido contra modificaciones
después de su creación. Si se permite que sólo unos pocos
miembros que modificarse para facilitar las actualizaciones, a continuación, se
pueden proporcionar métodos para ajustar los valores. Por lo tanto, la creación de
objetos de transferencia varía dependiendo de los requerimientos de una
aplicación. Se trata de una opción de diseño en
cuanto a si los atributos de la transferencia de objetos son privados y acceder
a través de captadores y definidores, o todos los atributos se hacen públicas.
FilterChain
El FilterChain es una colección ordenada de filtros
independientes.
FilterOne, FilterTwo, FilterThree
Estos son los filtros individuales que se asignan a un objetivo. El FilterChain coordina su procesamiento.
No hay comentarios:
Publicar un comentario