lunes, 8 de julio de 2013

FAST LANE READER

Este patrón propone un mecanismo para obtener grandes cantidades de información utilizando un acceso directo sobre la base de datos.
Para obtener acceso de sólo lectura a un conjunto de datos que no cambien rápidamente se utiliza este patrón lector modelo, que no pasa por los EJB y utiliza un Data Access Object (posiblemente no transaccional) que encapsula el acceso a los datos. El objeto de acceso a datos en el Fast Lane, lector modelo accede a la base de datos para obtener todos los datos de sólo lectura requeridos de manera eficiente, evitando la sobrecarga de múltiples EJB accede a la base de datos. Los datos resultantes se transfieren al cliente a través de un objeto de valor. El valor del objeto también puede ser almacenado en cache en el servidor para su uso repetido, mejorando aún más el rendimiento. Las mejores prácticas que no pasa por el vean de entidad capa de los lotes lee es útil si se requiere una lista de solo lectura de datos.
Por ejemplo la visualización para la tabla de usuario utilizado detrás de una fachada o vista ayudante utiliza un DAO para leer un lote de datos en la entidad directamente desde la fuente de datos.

VENTAJAS
·         Permite consultas complejas a realizar.

·         Evita la sobrecarga de acceso a grandes cantidades de datos tabulares a través de la entidad de capa.


DESVENTAJAS
·         Aprieta el acoplamiento entre las empresas y lógica de persistencia vean sesión consiente de su mecanismo de persistencia.
·         Menos mantenible (lógica de movimientos que es más susceptibles a defectos en la capa de negocios).
·         Potencial de datos obsoletos.
·         Ignora la capa de concurrencia proporcionada por las entidades.


POR QUE UTILIZAR UN LECTOR FAST LANE

·         Permite  consultas complejas que se realizan con un solo bulto leer en contraste con los N + 1  a través de las llamadas requeridas la capa de entidad.

IMPLEMENTACIÓN
Casos de uso que corresponden a búsquedas que devuelven una colección de objetos.
- cuando se tienen casos de uso que corresponden a búsquedas múltiples y la eficiencia es un factor importante






 





EJEMPLO
public List getAllPeople() throws PersonException {
List peopleList = null;
try {
final PersonDao personDao = DaoFactory.getPersonDao();
peopleList = personDao.getAllPeople();
}
catch (final DaoException daoException) {
throw new PersonException("Could not load list of people.",
daoException);
}
return peopleList;
}


CONCLUSIÓN
Este patrón significa que lee eficientemente los datos que no cambian o aquellos que cambien lentamente  desde el servidor y muestra todos los datos  en una transferencia.



No hay comentarios:

Publicar un comentario