Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
-
Upload
rufino-rojo -
Category
Documents
-
view
214 -
download
0
Transcript of Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
Tutor: Ing. Juan E. Talavera Horn
2010
GWT – EJBPatrones de diseño e integración
MVC aplicado a Google Web Toolkit
El Observer pattern en GWT
El modelo entity access object en EJB
El modelo session facade en EJB
Integración GWT - EJB
Contenido
Modelos aplicados con GWT
MVC – Model View Controller
Modelo: Lógica de negocio y datos
Vista: Interfaz de usuario. Presentación gráfica del modelo.
Controlador: Coordinación entre modelo y vista. Invocado con cada interacción del usuario.
MVC – Model View Controller
MVC – Model View Controller
El modelo debe ser totalmente independiente de la vista y el controlador.
El concepto de MVC puede ser aplicado en distintos niveles en una aplicación.
El modelo puede avisar a los demás componentes cuando ocurren cambios en los datos usando el Observer Pattern (líneas punteadas en figura anterior).
El modelo es el componente que debe ser más reutilizable
MVC – Model View Controller
La vista gralmente tiene una referencia al controlador e invoca métodos de este directamente.
Idealmente el controlador solo actualiza datos en el modelo, y como la vista es un observador del modelo, esta se actualiza también.
MVC – La vista (1)
MVC – La vista (2)
MVC – La vista (3)
Interfaces para Observer Pattern
MVC – El modelo (1)
MVC – El modelo (2)
MVC – El controlador (1)
PropertyChangeSupport (1)
PropertyChangeSupport (2)
PropertyChangeSupport (3)
Modelos aplicados a EJB
Entity Access Object Pattern
Lógica de negocio implementada en Session Beans
Acceso a base de datos a través del EntityManager
Se mezclan lógica de negocios y mecanismos de acceso a los datos
Se inserta una capa más, la de los Entity Access Object (EAO), que se encarga de los detalles de acceso a datos
Entity Access Object Pattern
Se separa el código de consultas del código que implementa reglas de negocios, mejorando la mantenibilidad.
El código de consultas es reutilizable.
Las reglas de negocios son independientes al mecanismo de persistencia utilizado.
Entity Access Object Pattern
La interfaz para el EAO
Implementación del EAO (1)
Implementación del EAO (2)
Capa de business logic
Factory para los EAOs
Session Beans como EAOs (1)
Session Beans como EAOs (2)
Al implementar los EAOs como session beans conseguimos Independency injection, transacciones declarativas y el Entity Manager manejado por el contenedor
El modelo session facade
Para ejecutar un proceso, la capa de interfaz de usuarioinvoca un solo método de la capa de reglas de negocioscon los parámetros necesarios, y dicho método ejecutael caso de uso en su totalidad dentro del Session Bean, opcionalmente haciendo uso de uno o más EAOs
Ejemplo (1)
Proceso: Inscribir masivamente a los alumnos de un curso al primer examen final.
Pasos: en función al identificador del curso …
Obtener la lista de alumnos inscriptos al cursoPor cada alumno, obtener sus parciales y calcular el promedioSi el promedio es mayor a 60 crear nueva “Inscripcion”, asociando alumno al examen.Guardar la nueva inscripciónRepetir para todos los alumnos
Ejemplo (2). Sin session facade
Cliente Contenedor EJB
Controlador UI AlumnosEAO ParcialesEAO InscripcionEAO
Obtener alumnos
Obtener parciales
Guardar inscripción
Calcularpromedio
Ejemplo (3). Con session facade
Cliente Contenedor EJB
Controlador UI AlumnosEAO ParcialesEAO InscripcionEAO
Obtener alumnos
Obtener parciales
Guardar inscripción
Calcularpromedio
InscParcialesFacade
Inscribir masivo
Ventajas
Reducir número de invocaciones remotas
Código de reglas de negocios no esparcidos en capa de UI
Transacciones y seguridad del proceso administradas por el contenedor
Código de reglas de negocios más reutilizable
Integración GWT - EJB
Integración Web tier – EJB
GUI
Aspectos visualesEventos de usuariosFormateo de datos
EJB – Session Facade
Procesos del negocioTransacciones
EJB – EAOs
Acceso a datosPersistencia en gral
EJB – Entity Beans
Representación delmodelo
GWT, Struts, JSF, etc.
Integración GWT - EJB
Widget
Control visual
Controlador
Manejo de eventos
Modelo
Datos a mostrar
Browser cliente
Remote Service GWT
Servicio remoto
Servlet Container EJB – Session Facade
Procesos del negocioTransacciones
EJB – EAOs
Acceso a datosPersistencia en gral
EJB Container
Bibliografía
GWT in practice – Robert Cooper (caps 2 y 4)
EJB 3 in action – Debu Panda (cap 12)