Está en la página 1de 13

Tecnologa para la

Construccin de Aplicaciones Construccin de Aplicaciones


Web
(MVC)
Dr. Vctor J . Sosa
vjsosa@tamps.cinvestav.mx
Informacin sintetizada del curso:
Introduccin a los servicios y servidores de informacin en Internet
J uan Ramn Prez (Universidad de Oviedo. Espaa).
De las tecnologas a la arquitectura De las tecnologas a la arquitectura
Cmo construimos una aplicacin web? p
Utilizamos una sola tecnologa?
Cul de ellas podemos utilizar?
C bi i l i d Combinamos varias tecnologas recogiendo sus
ventajas?
En qu parte de la aplicacin encaja cada
tecnologa?
2
Tecnologas Servlets y JSP Tecnologas Servlets y JSP
Pudiendo utilizar J SP. Es necesario desarrollar
algn servlet?
Cul es la mejor forma de combinar servlets y J SP?
Dnde situamos el cdigo escrito en J ava? Dnde situamos el cdigo escrito en J ava?
Hay otros componentes involucrados en el
procesamiento de peticiones como los J avaBeans?
Si es as, en qu parte de la arquitectura aparecen
y cul es su papel?
3
Qu es la arquitectura de una
li i aplicacin
Una arquitectura se utiliza para organizar las q p g
diferentes partes de una aplicacin.
Las aplicaciones web pueden tener muchos
elementos: elementos:
Pginas J SP, clases J ava, archivos HTML.
Definir una arquitectura:
A d d idi di idi l li i b Ayudar a decidir cmo dividir la aplicacin web.
Proporcionar una pauta para definir la forma en que
todos los componentes trabajen juntos para llevar a
b l f i lid d t d i l cabo la funcionalidad que se pretende conseguir con la
aplicacin.
4
Arquitecturas para construir
A li i W b Aplicaciones Web
Arquitectura centrada en pginas. J SPs Arquitectura centrada en pginas. J SPs
gestionan las peticiones directamente.
Modelo 1.
Arquitectura de dispatcher o centrada en
servlets. Un servlet o un J SP acta de
mediador o controlador, delegando la
resolucin de peticiones en pginas J SP y
J B M d l 2 J avaBeans. Modelo 2.
5
Arquitectura centrada en pginas Arquitectura centrada en pginas
Se utilizan pginas J SP/HTML para interactuar con el p g p
usuario (lgica de presentacin).
Pginas J SP responsables de controlar el flujo de la
li i ibi ti i di i l aplicacin: recibir peticiones, direccionar a la
siguiente pgina (lgica de control o
procesamiento).
El acceso a los datos se lleva a cabo desde la
misma pgina J SP o con J avaBeans, segn la
variante variante.
6
Esquema de la arquitectura
d i centrada en pginas
J SP
J SP
Nivel de
lgica de
J SP
J SP
J SP
J SP
HTML
/ J SP
HTML
/ J SP
HTML
HTML
Negocio y Control
J avaBeans
J avaBeans
J avaBeans
/ J S
/ J SP
/ J SP
HTML
/ J SP
J B
J avaBeans
J avaBeans
Nivel de
Datos
Nivel de
presentacin
7
BD
Datos
p
Arquitectura centrada en pginas Arquitectura centrada en pginas
Ventajas: j
es simple de programar y permite al creador de las
pginas generar contenido dinmico fcilmente,
basndose en la peticin y el estado de la aplicacin. p y p
Inconvenientes:
Tiene problemas de mantenimiento cuando la
aplicacincrece Muchos scriptlets incrustados en las aplicacin crece. Muchos scriptlets incrustados en las
pginas J SP.
No slo reduce modularidad y oportunidades de
reutilizacin de cdigo; sino que tambin proporciona reutilizacin de cdigo; sino que tambin proporciona
una separaciones de papeles de desarrollo muy pobre.
8
Modelo 1 (I) Modelo 1 (I)
Esta arquitectura bsica conlleva: Esta arquitectura bsica conlleva:
Invocaciones directas a pginas del servidor
Cdigo J ava incrustado (scriplets) y Cdigo J ava incrustado (scriplets) y
Etiquetas J SP que generan dinmicamente la
salida por sustitucin dentro del HTML.
El acceso a datos se realiza directamente
sobre la pgina J SP.
9
Modelo 1 (II) Modelo 1 (II)
Beneficios:
Desde el punto de vista del desarrollador es una
aproximacin muy directa al problema y fcil de
abordar.
El cdigo es fcil de localizar ya que se encuentra
junto con la pgina que gestiona.
Inconvenientes Inconvenientes
Slo permite abordar aplicaciones web de pequea
escala.
El que todo el cdigo est dentro de las pgina impide El que todo el cdigo est dentro de las pgina impide
separar papeles en el desarrollo.
10
Modelo 1 con JavaBeans Modelo 1 con JavaBeans
Se utilizan J avaBeans para acceder a los datos. p
La utilizacin de componentes J avaBeans permite:
Separar el cdigo J ava relacionado con la lgica del
i d l di d l i t negocio del cdigo de almacenamiento.
Se podran utilizar etiquetas de usuario en la pgina
J SP para hacer referencia al J avaBean. p
Permite realizar una pequea separacin de papeles
en el desarrollo de la aplicacin web.
11
Separacin de papeles en el
d ll d li i b desarrollo de una aplicacin web
Dominio de los
desarrolladores
Lgica
de la
Presentacin
de
datos
desarrolladores
de la
aplicacin
datos
Base de
datos
Acceso
a
datos
Dominio de los
12
Dominio de los
Diseadores web
Arquitectura de dispatcher o
MVC MVC
Los JSP se utilizan para generar el nivel de p g
presentacin y los Servlets para realizar las tareas
que requieren procesamiento y control.
Adems el controlador gestiona la navegacin, Adems el controlador gestiona la navegacin,
decidiendo a qu pgina J SP debe redireccionarse a
continuacin.
No aparece lgica de procesamiento dentro de la No aparece lgica de procesamiento dentro de la
presentacin JSP: simplemente accede a los
J avaBeans que previamente se han cargado para
extraer dinmicamente su contenido extraer dinmicamente su contenido.
13
Esquema de la arquitectura MVC Esquema de la arquitectura MVC
Servlet
Nivel de
lgica de
negocio
1. Envo de peticin
al controlador
o
J SP HTML
/ J SP
HTML
/ J SP
HTML
HTML
negocio
2. Invocacin
J avaBeans
J avaBeans
J avaBeans
/ J S
/ J SP
/ J SP
HTML
/ J SP
J B
3. Redireccin a
la pgina
de Beans
J avaBeans
J avaBeans
Nivel de
Datos
Nivel de
presentacin
14
BD
Datos
Componentes arquitectura MVC Componentes arquitectura MVC
Modelo Vista
Datos
(Propiedades Beans)
E
Beans J SPs
Evento
(forward)
Info.Interfaz
(HTML)
Controlador
Evento
(peticin)
(forward)
Datos
(<jsp:getproperty>)
Info.Eventos
( )
Interfaz
servlet
N d
Evento
(peticin)
(parmetros)
15
Navegador
El Modelo El Modelo
Representa la lgica de negocio de una Representa la lgica de negocio de una
aplicacin.
Encapsula las reglas de negocio en p g g
componentes que son fciles de probar,
permiten mejorar la calidad del software y
promueven la reutilizacin.
16
Componentes de estado Componentes de estado
El estado:
Define el conjunto actual de valores del modelo.
Incluye mtodos para cambiar estos valores.
Estos mtodos recogen parte de la lgica de Estos mtodos recogen parte de la lgica de
negocio.
Deberan de ser independientes del protocolo que se
tili d ll utilizara para acceder a ellos.
Los JavaBeans son la eleccin lgica para
implementar los componentes de estado. p p
17
Cualidades del diseo en
J B JavaBeans
La construccin independiente de estos p
componentes permite las siguientes cualidades de
diseo:
Reutilizacin, la eliminacin de la lgica de Reutilizacin, la eliminacin de la lgica de
presentacin, permite que diferentes aplicaciones
hagan uso de la misma lgica de negocio.
Calidad, recogiendo la lgica de negocio en el mismo , g g g
sitio, se puede probar y revisar.
Robustez, encapsulando toda la lgica en un solo sitio
podemos facilitar su reutilizacin y reducir las p y
posibilidades de que aparezca un error.
18
Componentes de proceso Componentes de proceso
Las acciones (actions): Las acciones (actions):
Definen los cambios permitidos para los
estados en respuesta a los eventos.
La lgica de negocio tambin determina
como se construyen los componentes de
proceso.
19
Alternativas en el diseo de
d componentes de proceso
El diseo de estos componentes permite ms p p
alternativas que los de estado:
En sistemas simples, las acciones pueden ser llevadas
a cabo en el controlador; pero generalmente no se ; p g
recomienda.
Normalmente se plantea un nivel de componentes de
proceso para capturar los requisitos que dirigen la p p p q q g
interaccin con los componentes de estado.
Frecuentemente estos componentes estn ligados a
un protocolo para poder obtener informacin del un protocolo para poder obtener informacin del
evento.
20
La vista La vista
Constituye la lgica de presentacin de una y g p
aplicacin.
Los componentes de la vista obtienen el estado
actual del sistema del modelo y proporcionan el actual del sistema del modelo y proporcionan el
interfaz de usuario para el protocolo involucrado (en
nuestro caso HTTP de los navegadores web).
Como parte de la generacin del interfaz de usuario Como parte de la generacin del interfaz de usuario
la vista presenta los eventos que el usuario puede
activar en cada momento.
JSP l l i t l i l t l i t JSP es la eleccin natural para implementar la vista.
21
El controlador El controlador
Proporciona unin a toda la arquitectura. p q
Responsable de:
recibir eventos,
determinar cual es el manejador apropiado,
invocar este manejador y
determinar la generacin de la respuesta apropiada determinar la generacin de la respuesta apropiada.
Los servlets son la eleccin ideal para la tecnologa
del controlador.
22
Tareas que debera gestionar el
l d controlador
Seguridad, asegurar autentificacin y autorizacin. g g y
Esto podra delegarse en el motor de servlets.
Identificacin de eventos.
Preparar el modelo asegurar la disponibilidad de los Preparar el modelo, asegurar la disponibilidad de los
componentes de modelo requeridos.
Procesamiento del evento.
Gestin de errores, gestionar los errores generados
por los manejadores.
Activar la generacin de la respuesta, pasando el Activar la generacin de la respuesta, pasando el
control al generador apropiado.
23
Cuestiones de diseo Cuestiones de diseo
Esta arquitectura implica, de forma inherente, un q p
cierto acoplamiento entre los distintos componentes
que deberamos de evitar. Ej.: La vista debe
proporcionar informacin de eventos de forma que p p q
puedan ser identificados de forma nica por el
controlador.
La vista tiene acoplamiento con el controlador por la La vista tiene acoplamiento con el controlador por la
informacin de eventos y el controlador est
acoplado tanto con el modelo como con la vista.
Para superar este inconveniente se puede utilizar un Para superar este inconveniente se puede utilizar un
fichero de inicializacin, con las capacidades de
introspeccin y reflectividad de J ava.
24
Ejemplo de arquitectura MVC Ejemplo de arquitectura MVC
i i ( )
(desde el contenedor
de servlets)
init
Tabla manejadores
Controlador (servlet)
init( )
doGet( )
peticin
init
eventos
Evento Manejador
( )
doPost( )
process( )
forward( )
respuesta
process( )
Clases
manejadoras
de eventos
25
( )
respuesta
forward( )
respuesta
de eve os
Proyecto Struts Proyecto Struts
Qu es Struts
Particularidades del MVC en Struts
Para qu sirve?
C d tili ? Cmo se puede utilizar?
Ms informacin
http://jakarta.apache.org/struts
http://jakarta.apache.org/struts/userGuide
http://www.programacion.com/java/tutorial.joa_struts.html
26

También podría gustarte