lunes, 8 de julio de 2013

TRANSFER OBJECT

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