Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.

Post on 23-Jan-2016

214 views 0 download

Tags:

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)