Está en la página 1de 26

Combinacin de tecnologas en la construccin de Aplicaciones Web

Juan Ramn Prez Prez


Universidad de Oviedo
jrpp@pinon.ccu.uniovi.es

De las tecnologas a la arquitectura


Ya conocemos varias tecnologas que nos sirven de base para construir servidores de informacin. Pero, Cmo construimos una aplicacin web?
Utilizamos una sola tecnologa?
Cul de ellas podemos utilizar?

Combinamos varias tecnologas recogiendo sus ventajas?


En qu parte de la aplicacin encaja cada tecnologa?

Tecnologas servlets y JSP


Pudiendo utilizar JSP. Es necesario desarrollar algn servlet? Cul es la mejor forma de combinar servlets y JSP? Dnde situamos el cdigo escrito en Java? Hay otros componentes involucrados en el procesamiento de peticiones como los JavaBeans? Si es as, en qu parte de la arquitectura aparecen y cul es su papel?
3

Qu es la arquitectura de una aplicacin


Una arquitectura se utiliza para organizar las diferentes partes de una aplicacin. Las aplicaciones web pueden tener muchos elementos:
Pginas JSP, clases Java, archivos HTML.

Definir una arquitectura:


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 cabo la funcionalidad que se pretende conseguir con la aplicacin.
4

Arquitecturas para construir Aplicaciones Web


Arquitectura centrada en pginas. JSPs gestionan las peticiones directamente. Modelo 1. Arquitectura de dispatcher o centrada en servlets. Un servlet o un JSP acta de mediador o controlador, delegando la resolucin de peticiones en pginas JSP y JavaBeans. Modelo 2.
5

Arquitectura centrada en pginas


Se utilizan pginas JSP/HTML para interactuar con el usuario (lgica de presentacin). Pginas JSP responsables de controlar el flujo de la 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 JSP o con JavaBeans, segn la variante.
6

Esquema de la arquitectura centrada en pginas


JSP JSP JSP JSP Nivel de lgica de negocio

HTML HTML / HTML JSP / HTML JSP / / JSP JSP

JavaBeans JavaBeans JavaBeans JavaBeans Nivel de Datos

Nivel de presentacin

BD
7

Arquitectura centrada en pginas


Ventajas:
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.

Inconvenientes:
Tiene problemas de mantenimiento cuando la aplicacin crece. Muchos scriptlets incrustados en las pginas JSP. No slo reduce modularidad y oportunidades de reutilizacin de cdigo; sino que tambin proporciona una separaciones de papeles de desarrollo muy pobre.
8

Vista-Pgina (I)
Esta arquitectura bsica conlleva:
Invocaciones directas a pginas del servidor Cdigo Java incrustado (scriplets) y Etiquetas JSP que generan dinmicamente la salida por sustitucin dentro del HTML. El acceso a datos se realiza directamente sobre la pgina JSP.

Vista-Pgina (y 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
Slo permite abordar aplicaciones web de pequea escala. El que todo el cdigo est dentro de las pgina impide separar papeles en el desarrollo.
10

Vista-Pgina con JavaBeans


Se utilizan JavaBeans para acceder a los datos. La utilizacin de componentes JavaBeans permite:
Separar el cdigo Java relacionado con la lgica del negocio del cdigo de almacenamiento. Se podran utilizar etiquetas de usuario en la pgina JSP para hacer referencia al JavaBean. Permite realizar una pequea separacin de papeles en el desarrollo de la aplicacin web.

11

Separacin de papeles en el desarrollo de una aplicacin web


Dominio de los
Presentacin de datos

desarrolladores
Lgica de la aplicacin

Dominio de los Diseadores web

Acceso a datos

Base de datos

12

Arquitectura de dispatcher o MVC


Los JSP se utilizan para generar el nivel de presentacin y los Servlets para realizar las tareas que requieren procesamiento. Adems el controlador gestiona la navegacin, decidiendo a que pgina JSP debe redireccionarse a continuacin. No aparece lgica de procesamiento dentro de la presentacin JSP: simplemente accede a los JavaBeans que previamente se han cargado para extraer dinmicamente su contenido.
13

Esquema de la arquitectura MVC


1. Envo de peticin al controlador

HTML HTML / HTML JSP / HTML JSP / / JSP JSP

Servlet o JSP

Nivel de lgica de negocio


2. Invocacin de Beans

3. Redireccin a la pgina

JavaBeans JavaBeans JavaBeans JavaBeans Nivel de Datos BD


14

Nivel de presentacin

Componentes arquitectura MVC


Modelo Beans Evento (peticin)

Datos (Propiedades Beans)

Vista JSPs Info.Interfaz (HTML) Datos (<jsp:getproperty>) Info.Eventos (parmetros) Interfaz Navegador
15

Evento (forward)
Controlador servlet

Evento (peticin)

El Modelo
Representa la lgica de negocio de una aplicacin. Encapsula las reglas de negocio en componentes que son fciles de probar, permiten mejorar la calidad del software y promueven la reutilizacin.

16

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 negocio. Deberan de ser independientes del protocolo que se utilizara para acceder a ellos. Los JavaBeans son la eleccin lgica para implementar los componentes de estado.
17

Cualidades del diseo en JavaBeans


La construccin independiente de estos componentes permite las siguientes cualidades de diseo:
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 sitio, se puede probar y revisar. Robustez, encapsulando toda la lgica en un solo sitio podemos facilitar su reutilizacin y reducir las posibilidades de que aparezca un error.
18

Componentes de proceso
Las acciones:
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 componentes de proceso


El diseo de estos componentes permite ms alternativas que los de estado:
En sistemas simples, las acciones pueden ser llevadas a cabo en el controlador; pero generalmente no se recomienda. Normalmente se plantea un nivel de componentes de proceso para capturar los requisitos que dirigen la interaccin con los componentes de estado.

Frecuentemente estos componentes estn ligados a un protocolo para poder obtener informacin del evento.
20

La vista
Constituye la lgica de presentacin de una aplicacin. Los componentes de la vista obtienen el estado 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 la vista presenta los eventos que el usuario puede activar en cada momento. JSP es la eleccin natural para implementar la vista. 21

El controlador
Proporciona unin a toda la arquitectura. Responsable de:
recibir eventos, determinar cual es el manejador apropiado, invocar este manejador y determinar la generacin de la respuesta apropiada.

Los servlets son la eleccin ideal para la tecnologa del controlador.


22

Tareas que debera gestionar el controlador


Seguridad, asegurar autentificacin y autorizacin. Esto podra delegarse en el motor de servlets. Identificacin de eventos. 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 control al generador apropiado.
23

Cuestiones de diseo
Esta arquitectura implica, de forma inherente, un cierto acoplamiento entre los distintos componentes que deberamos de evitar. Ej.: La vista debe proporcionar informacin de eventos de forma que puedan ser identificados de forma nica por el controlador. 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 fichero de inicializacin, con las capacidades 24 de introspeccin y reflectividad de Java.

Ejemplo de arquitectura MVC


(desde el contenedor de servlets) init init( )
peticin Controlador (servlet)
Tabla manejadores eventos Evento Manejador

doGet( ) doPost( ) process( ) process( ) forward( ) forward( ) Clases manejadoras de eventos


25

respuesta respuesta

Proyecto Struts
Qu es Struts Particularidades del MVC en Struts Para qu sirve? 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.h tml
26

También podría gustarte