Capa de Presentación

Anuncio
Capa de
Presentación
Capa de Presentación
Responsabilidades
¡
¡
¡
¡
¡
¡
PDF Creator - PDF4Free v2.0
Navegabilidad del sistema
Formateo de los datos de salida
Internacionalización
Validación de los datos de
entrada
Interfaz gráfica de usuario
Multicanalidad del sistema
http://www.pdf4free.com
1
Patrón MVC
(Model View Controller)
Patrón arquitectónico aportado por
SmallTalk
Modelo 2 de aplicaciones WEB
Reparte las responsabilidades de la
aplicación entre tres elementos:
¡
¡
¡
l
l
l
El Modelo: Core de la aplicación. Reglas
de negocio y capa de persistencia
La Vista: Renderizado del sistema
El Controlador: Control del flujo de
navegación de la aplicación.
Patrón MVC
Historia
¡
¡
¡
Inventado por Trygve Reenskaug
Introducido en el entorno de
desarrollo del SmallTalk 80
desarrollador en XEROX PARC.
Los elementos del MVC aparecen el
varios modelos de GUIs modernos
l
l
l
l
PDF Creator - PDF4Free v2.0
MFCs
Swing
JSF
Etc
http://www.pdf4free.com
2
Arquitectura
MVC
Vista
Output
Modelo
Input
Controlador
MVC
El modelo
¡
¡
Encapsula los datos y reglas específicos de la
aplicación (Capa de negocio + Capa
persistencia).
Aporta:
l
l
¡
PDF Creator - PDF4Free v2.0
Métodos para el manejo de datos y servicios
Métodos para acceder al estado del sistema.
Mantiene registro de las diferentes vistas y
cotroladores para notificar los cambios
(Modelo de eventos).
http://www.pdf4free.com
3
MVC
La Vista
Mecanismo necesario para mapear los
datos provenientes del modelo al
renderizado de la interfaz.
Cuando el Modelo cambia, la vista es
informada.
¡
¡
l
l
La vista solicita al modelo la información
Se responsabiliza de actualizar la pantalla
¡
Detectar áreas defectuosas (quedan
descubiertas cuando estuvieron ocultas por otra
ventana, por ejemplo).
¡
Redibujar la pantalla cuando se solicite.
MVC
El controlador
¡
¡
¡
PDF Creator - PDF4Free v2.0
Intercepta los eventos de entrada
provenientes del usuario del sistema
Traduce los eventos en invocaciones al
modelo de la aplicación
Activa o desactiva los elementos de la
interfaz de usuario (en el ámbito de
las aplicaciones Windows, pone los
botones habilitados o en gris)
http://www.pdf4free.com
4
Persistencia de Entidades
en Sesión
El único medio para almacenar el estado de
la sesión del usuario en el servidor junto a la
base de datos.
Nos sirve de caché
Muy delicado. No se debe sobrecargar, dado
que existe una sesión por cada usuario
activo.
Origen potencial de problemas:
¡
¡
¡
¡
l
l
La interfaz de la sesión es muy débilmente tipada,
puesto que almacenamos instancias de Object
Solución: Centralizar la gestión de la sesión en un
solo punto…
Persistencia de entidades
en Sesión – Gestor de Sesión y Contexto
¡
¡
Centralizamos TODA la lógica de manejo del objeto
sesión y del contexto en un solo objeto
Hacemos que el objeto presente una interfaz rígida
para evitar los errores de programación …
l
En tiempo de compilación, desarrollando un método
para cada objeto susceptible de ser cacheado
¡
¡
¡
l
En tiempo de ejecución, comprobándolo en tiempo real
y contrastándolo con la configuración externalizada en
XML
¡
¡
¡
PDF Creator - PDF4Free v2.0
Más robusto
Más tedioso de desarrollar
Difícil y costoso de mantener
Sólo se detectan los errores en tiempo de ejecución,
pero se detectan a la primera
Componente reutilizable
Fácil de mantener
http://www.pdf4free.com
5
Persistencia de entidades
en Sesión – Gestor de Sesión y Contexto
¡
En la sesión almacenamos y cacheamos
los datos propios del usuario. Ej.:
l
l
l
¡
UsuarioBean con las propiedades del usuario
Lista de privilegios de acceso consultados a
base de datos.
Etc.
En el contexto podemos almacenar datos
comunes a distintos usuarios. Ej.:
l
l
l
La lista de países que carga el combo box de la
pantalla de alta
La lista de idiomas
Etc.
Persistencia de entidades
en Sesión – Consideraciones
¡
¡
¡
¡
PDF Creator - PDF4Free v2.0
La sesión es delicada. Hay que tener en
cuenta que hay una por usuario activo, y
que en una aplicación web podemos tener de
repente 500 usuarios simultáneos. Ojo con
el tamaño de la sesión!
La sesión permanece activa durante un
tiempo determinado por lo que la presencia
de usuarios sobrecarga el sistema incluso si
no es simultánea.
El contexto es menos delicado, puesto lo que
metemos en el contexto se mete una sola
vez para todos.
Hay que controlar la caducidad de la
información en el contexto
http://www.pdf4free.com
6
Centralización de la lógica de
recuperación de Información
Lógica de recuperación descentralizada:
Cada vez que necesitamos algo de negocio
invocamos a la capa directamente
Problemas: Si cambia el origen del dato
tendremos que “tocar” todos los métodos
que invocan el método.
Ej.: Cierto resultado de un método pasa a
ser cacheado en sesión o aplicación:
¡
¡
¡
l
el cierre mensual de facturación
¡ proceso muy pesado
¡ no cambia el resultado en todo el mes ->
cacheado en contexto con caducidad de 30 días.
Centralización de la lógica de
recuperación de Información
Servlet o
Action
Servlet o
Action
Servlet o
Action
Object Manager
Helper a Negocio
PDF Creator - PDF4Free v2.0
Servlet o
Action
Servlet o
Action
Gestión de
Sesión y
Contexto
http://www.pdf4free.com
7
Referencias
URLs
¡
l
l
Libros
¡
l
l
l
PDF Creator - PDF4Free v2.0
http://jakarta.apache.org/Struts
http://theserverside.com
Programming Jakarta Struts de
O’Reilly
Mastering Tomcat Development de
WILEY
Java Server Programming J2EE
Edition de Wrox
http://www.pdf4free.com
8
Descargar