8 de julio de 2013

Value List Handler

Se utiliza para controlar la búsqueda y hacer caché de resultados que se proporcionan al cliente con un tamaño y desplazamiento que cumpla con los requisitos. Se utiliza un Iterator que nos ofrece una interfaz estándar para recorrer una estructura de datos sin que nos tengamos que preocupar por la representación interna de los datos y proporcionando a nuestro código independencia de la estructura de los datos.
Puede ayudar a acceder a una gran lista de Transfer Objects (patrón que representa los objetos de negocios) de manera eficiente. Este patrón controla la funcionalidad de la ejecución de consulta y el caché de resultados. Puede acceder directamente a un objeto de acceso a datos (implementación del patrón Data Access Object, DAO) y almacenar los resultados obtenidos como una colección de Transfer Objects.
Este patrón, al solicitar objetos por bloques, proporciona una mayor flexibilidad de consulta y mejora el rendimiento de la red.

 

La mayoría de las aplicaciones de la plataforma J2EE tienen un requerimiento de búsqueda y consulta para buscar y listar ciertos datos. En algunos casos, dichas operaciones de búsqueda y consulta podrían traer resultados que pueden ser bastante grandes. No es práctico devolver toda la hoja de resultados cuando los requerimientos del cliente son moverse por los resultados, en vez de procesar el conjunto completo.

Muchas veces el cliente sólo ve los primeros registros que devuelve la búsqueda, y podría descargar los registros restantes e intentar otra nueva consulta. La práctica de obtener una lista de valores representados en un bean de entidad llamando al método ejbFind(), que devuelve una collection de objetos remotos, y luego llamar a cada bean de entidad para obtener el valor, consume muchos recursos de red y se considera una mala práctica.

La aplicación cliente necesita una facilidad de consulta eficiente para evitar tener que llamar al método ejbFind() de cada bean e invocar a cada objeto remoto devuelto.

Se necesita una mecanismo de caché en la capa-servidor para servir a los clientes que no pueden recibir y procesar el cojunto de resultados completo.

Se puede optimizar una consulta que se ejecuta repetidamente sobre unos datos razonablemente estáticos para proporcionar resultados más rápidos. Esto depende de la aplicación y de la implementación de este patrón.


Utilizar un Value List Handler para controlar la búsqueda, hacer un caché con los resultados, y proporcionar los resultados al cliente en una hoja de resultados cuyo tamaño y desplazamiento cumpla los requerimientos del cliente es una de las mejores opciones para mejorar el rendimiento
Este patrón crea un ValueListHandler para controlar la funcionalidad de la ejecución de la consulta y el caché de resultados. El ValueListHandler accede directamente a un DAO que puede ejecutar la consulta requerida. El ValueListHandler almacena los resultados obtenidos del DAO como una colección de Transfer Objects. El cliente le pide al ValueListHandler que proporcione resultados de la consulta según los necesite.
·         Estructura (diagrama de clases)


·         Diagrama de secuencia

No hay comentarios:

Publicar un comentario