Você está na página 1de 16

Arquitectura Web

Introduccin

Concepto de Arquitectura en Desarrollo Software


l

Concepcin desde RUP


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

Concepto de Arquitectura software Moderno


l l l

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

PDF Creator - PDF4Free v2.0

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

Fuerte apuesta del mundo opensource!


l

Evolucin de Modelos Arquitectnicos

Modelo 1 Modelo 1.5

Servlets/JSPs MVC Model

Modelo 2 Modelo 2X

Multicanalidad

PDF Creator - PDF4Free v2.0

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

JSPs llevan la lgica de presentacin (navegabilidad, visualizacin, etc.) Beans incrustados asumen las responsabilidades de negocio y datos

PDF Creator - PDF4Free v2.0

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


Struts es la implementacin del MVC que aporta Jakarta para aplicaciones web java. http://jakarta.apache.org/struts

PDF Creator - PDF4Free v2.0

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:


l

Posible incremento vertiginoso del nmero de usuarios El correcto dimensionamiento de la aplicacin La adaptabilidad del sistema ante el incremento de demanda. Escalabilidad Horizontal Escalabilidad Vertical Cluster de servidores

Es importante:
l l

Varias opciones:
l l l

Escalabilidad Horizontal

Clonamos el sistema y balanceamos la carga.


Sistema Sistema

Balanceador

Usuarios Internet

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

Capa 2 Sistema completo

Capa n

Mquina 1

MquinaMquina 1

Mquina 1

PDF Creator - PDF4Free v2.0

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 PRESENTACIN Y NEGOCIO

CLIENTE

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 Negocio + acceso a datos

Interfaz WEB HTML + lenguaje de script

PDF Creator - PDF4Free v2.0

http://www.pdf4free.com

11

Separacin de Responsabilidades Evolucin


APLICACIONES 3 CAPAS
JSPs, HTML, lgica de presentacin

Presentacin

Negocio

Lgica de negocio, procesos neg.

Persistencia

Componentes de acceso a datos

Separacin de Responsabilidades Evolucin


Modelo de Brown ncapas
JSPs, HTML, lgica de presentacin

Presentacin

Negocio Persistencia

Lgica de negocio, procesos neg.

Componentes de acceso a datos

PDF Creator - PDF4Free v2.0

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

Você também pode gostar