Está en la página 1de 16

Arquitectura

Web

Introduccin

Concepto de Arquitectura en Desarrollo Software


l

Concepcin desde RUP

Concepto de Arquitectura software Moderno


l
l
l

PDF Creator - PDF4Free v2.0

Arquitectura fsica
Distribucin de nodos en la red
Mapeo componente software nodo computacional

Patrones de diseo de arquitectura


Separacin de responsabilidades
No existe forma de representar arquitectura
software con las herramientas actuales (RUP-UML)

http://www.pdf4free.com

Aplicaciones Web
con Java

Fuerte apuesta por parte del sector privado:


l
l
l
l
l

Sun Microsystems. Extensiones J2EE


BEA Systems con Weblogic
IBM con WebSphere
Netscape (y Sun) con iPlanet
Orin Oc4J Oracle 9IAS

Fuerte apuesta del mundo opensource!


l

www.apache.org Desarrollo del servidor web


apache, el ms difundido del mundo.
Jakarta.apache.org Conjunto de frameworks y
clases de utilidad como apoyo al desarrollo de
aplicaciones basadas en java/J2EE.
www.jboss.org Desarrollo del contenedor de EJBs
Jboss. Gratuito y muy efectivo.

Evolucin de
Modelos Arquitectnicos

Modelo 1

Modelo 1.5

Modelo 2

Modelo 2X

Servlets/JSPs
MVC Model

PDF Creator - PDF4Free v2.0

Multicanalidad

http://www.pdf4free.com

Modelo de Arquitectura 1
Aplicaciones CGI

Las ms primitivas
Aplicaciones Web CGI
Presentacin, negocio y persistencia mezclados
El estado se almacena en el cliente y cada peticin
supone una ejecucin completa independiente de
estado (Transacction Script)

Browser

Script
CGI

Database

Modelo de Arquitectura 1.5


JSP y Servlets

Separacin de responsabilidades:
l
l

PDF Creator - PDF4Free v2.0

JSPs llevan la lgica de presentacin


(navegabilidad, visualizacin, etc.)
Beans incrustados asumen las responsabilidades de
negocio y datos

http://www.pdf4free.com

Modelo de Arquitectura 2
MVC
Evolucin del modelo 1.5
Incorporacin del patrn de diseo MVC.

l
l
l

Controlador: Navegacin
Negocio y Datos: Beans
Presentacin: JSPs

Modelo de Arquitectura 2
MVC con Struts

PDF Creator - PDF4Free v2.0

Struts es la implementacin del MVC que


aporta Jakarta para aplicaciones web java.
http://jakarta.apache.org/struts

http://www.pdf4free.com

Modelo de Arquitectura 2X
Aplicaciones Multicanal
Evolucin del modelo
2 para construir
aplicaciones
multicanal.
Implementacin de
referencia STXX
(extiende Struts)
http://stxx.sourceforg
e.net/
Soluciones basadas en
XML y XSLTs.

Aspectos Generales en
Arquitectura WEB

Escalabilidad
Separacin de responsabilidades
Portabilidad
Componentizacin de los servicios de
infraestructura
Gestin de la sesin del usuario, cacheado
de entidades
Aplicacin de patrones de diseo

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Escalabilidad
Importancia?

Caracterstica principal apps WEB:

Es importante:

l
l

Posible incremento vertiginoso del nmero de usuarios


El correcto dimensionamiento de la aplicacin
La adaptabilidad del sistema ante el incremento de
demanda.

Varias opciones:
l
l
l

Escalabilidad Horizontal
Escalabilidad Vertical
Cluster de servidores

Escalabilidad
Horizontal

Clonamos el sistema y balanceamos la


carga.
Balanceador

Usuarios
Internet

Sistema

Sistema

Sistema

Sistema

PDF

Escalabilidad
Horizontal. Balanceador HW

Distribuye por algoritmos predeterminados (Round Robin,


LRU, etc.) las peticiones HTTP entre los distintos clones del
sistema
La seleccin del clon es por tanto aleatoria
Problema: No garantiza que diferentes peticiones de un
mismo usuario sean servidas por el mismo clon del sistema
-> No hay mantenimiento de la sesin del usuario en
servidor -> Condiciona el Diseo!.
La sesin la debe mantener el desarrollador por otros
medios:
l
l

Cookies
En base de datos

Al ser un proceso HW, es MUY rpido.

Escalabilidad
Horizontal. Balanceador SW

Examinan el paquete a nivel del protocolo


HTTP para garantizar el mantenimiento de la
sesin de usuario.
Distintas peticiones del mismo usuario son
servidas por el mismo clon del servidor.
Ms lentos que los balanceadores HW
Normalmente son soluciones baratas.
Ej., mdulo mod_jk de apache.

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Escalabilidad
Horizontal. Balanceador HW HTTP

Dispositivos HW que examinan la peticin a


nivel de paquete HTTP.
Trmino medio entre las dos anteriores.
Garantizan el mantenimiento de sesin.
Ms rpidos que los SW pero menos que los
HW.

Escalabilidad
Vertical

La separacin lgica entre capas se implementar de


forma que permita la separacin fsica de las
mismas.
Es necesario un Middleware entre las capas para
permitir la comunicacin remota.

Capa 1

Mquina 1

PDF Creator - PDF4Free v2.0

Capa Sistema
2
completo

MquinaMquina
1

Capa n

Mquina 1

http://www.pdf4free.com

Escalabilidad
Custers de Servidores

Habituales en los servidores de aplicaciones


comerciales (Weblogic, WebSphere, iPlanet, etc.).
Dependiendo de cmo se aplique puede clasificarse
como horizontal o vertical.
Distribuye y escala el sistema de modo transparente
a usuario y administrador.
Garantiza que sea cual sea la mquina que sirva la
peticin http tendr acceso a la sesin del usuario
(Replicacin de sesin)
La replicacin de sesin es MUY costosa, produce
bajo rendimiento del sistema.

Entonces
Qu hacer con la sesin?

Primeras tendencias eran evitar apoyarse en


la sesin (objeto Session): slo haba
balanceadores hw.
Hoy en da, est aceptado y se fomenta su
uso.
OJO! Es MUY delicado. El uso excesivo del
objeto session puede acarrear problemas de
rendimiento, puesto que los objetos en
sesin no se liberan hasta que no caduque la
misma.

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

Separacin
de Responsabilidades

Premisa base para la separacin de capas


Distintas Responsabilidades no deben ser delegadas
en la misma clase (separacin de incumbencias)
Tendencia actual en aplicaciones WEB:
l Arquitectura n-capas
El modelo ms bsico es el de tres capas:
l Capa de presentacin
l Capa de negocio
l Capa de persistencia

Independencia de capas

Separacin
de Responsabilidades Evolucin
APLICACIONES MAINFRAME

APLICACIN

SERVIDOR
nica capa fsica y lgica

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

10

Separacin
de Responsabilidades Evolucin
APLICACIONES CLIENTE - SERVIDOR

CLIENTE

PRESENTACIN
Y NEGOCIO

SERVIDOR

NEGOCIO Y
ACCESO A DATOS

Separacin Lgica y Fsica de la


interfaz de usuario

Separacin
de Responsabilidades Evolucin
PRIMERAS APLICACIONES WEB
Arquitectura basada en Transaction
Scripts (CGIs, Modelo 1)

Presentacin

Interfaz WEB HTML


+ lenguaje de script

Negocio +
acceso a datos

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

11

Separacin
de Responsabilidades Evolucin
APLICACIONES 3 CAPAS

Presentacin

Negocio

Persistencia

JSPs, HTML,
lgica de
presentacin

Lgica de
negocio,
procesos neg.

Componentes de
acceso a datos

Separacin
de Responsabilidades Evolucin
Modelo de Brown ncapas

Presentacin

Negocio
Persistencia

PDF Creator - PDF4Free v2.0

JSPs, HTML,
lgica de
presentacin

Lgica de
negocio,
procesos neg.

Componentes de
acceso a datos

http://www.pdf4free.com

12

Separacin
de Responsabilidades Capa de
presentacin

Comprende las responsabilidades de


lgica de presentacin:
l
l
l
l
l
l

Navegabilidad del sistema


Validacin de datos de entrada
Formateo de los datos de salida
Internacionalizacin
Renderizado de presentacin
Etc.

Separacin
de Responsabilidades Capa de
negocio

Comprende las responsabilidades de


lgica de negocio (o dominio) del
sistema.
Resultado del anlisis funcional:
l

Conjunto de reglas de negocio que


abstraen el mundo real.

La capa de negocio ha de ser


independiente de la capa de
presentacin y viceversa (en la
medida de lo posible).

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

13

Separacin
de Responsabilidades Capa de
persistencia

Comprende las responsabilidades de lgica


de persistencia de las entidades que maneja
el sistema en desarrollo.
l
l
l
l
l

Insercin
Eliminacin
Actualizaciones
Bsquedas
Etc.

No tiene porqu tratarse necesariamente de


una base de datos relacional.

Portabilidad

Una aplicacin web debe poder


adaptarse a las distintas arquitecturas
fsicas posibles en el despliegue.
Las tareas de adaptacin a un nuevo
entorno deben limitarse al mbito de
la configuracin, no del desarrollo.
Supuesto de ejemplo: Cliente reacio a
las tecnologas de componentes J2EE
(EJBs) por costes, rendimiento o
simplemente, moda.

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

14

Componentizacin de los servicios de


infraestructura

Servicio de infraestructura?: Componentes


independientes del dominio.
Rompen aparentemente la separacin vertical de
capas.
Dan lugar a la capa de infraestructura.
Ej.:
l
l
l
l
l

Servicio de Log
Pool JDBC
Sistema de configuracin
Gestor de permisos de acceso
Etc.

Gestin de la sesin del usuario

Aspecto muy delicado del sistema


Cacheado de entidades en
l
l

Sesin de usuario
Contexto de la aplicacin

Caducidad de la informacin
Refresco de datos
Rendimiento del sistema. Consumo de
recursos del sistema.

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

15

Aplicacin de patrones de Diseo

Definicin de patrn de diseo


GOF 94 Design Patterns
Adems de una solucin vlida para
problemas habituales, son un medio de
entendimiento que facilita la comunicacin
entre analista y desarrollador.
Aceleran el desarrollo de Software
Facilitan el mantenimiento
En proceso de integracin en las
herramientas CASE (Rose, Together, etc.).

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

16

También podría gustarte