Arquitectura Web - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Arquitectura Web

Description:

Arquitectura Web en Aplicaciones Empresariales Java/J2EE. Daniel Fern ndez Lanvin ... M s lentos que los balanceadores HW. Normalmente son soluciones baratas. Ej. ... – PowerPoint PPT presentation

Number of Views:239
Avg rating:3.0/5.0
Slides: 34
Provided by: ikerj
Category:

less

Transcript and Presenter's Notes

Title: Arquitectura Web


1
ArquitecturaWeb
2
IntroducciĆ³n
  • Concepto de Arquitectura en Desarrollo Software
  • ConcepciĆ³n desde RUP
  • Arquitectura fĆ­sica
  • DistribuciĆ³n de nodos en la red
  • Mapeo componente software nodo computacional
  • Concepto de Arquitectura software Moderno
  • Patrones de diseƱo de arquitectura
  • SeparaciĆ³n de responsabilidades
  • No existe forma de representar arquitectura
    software con las herramientas actuales (RUP-UML)

3
Aplicaciones Web con Java
  • Fuerte apuesta por parte del sector privado
  • Sun Microsystems. Extensiones J2EE
  • BEA Systems con Weblogic
  • IBM con WebSphere
  • Netscape (y Sun) con iPlanet
  • Fuerte apuesta del mundo opensource!
  • www.apache.org Desarrollo del servidor web
    apache, el mƔs 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.

4
EvoluciĆ³n de Modelos ArquitectĆ³nicos
  • Modelo 1
  • Modelo 1.5
  • Modelo 2
  • Modelo 2X

Servlets/JSPs
MVC Model
Multicanalidad
5
Modelo de Arquitectura 1Aplicaciones CGI
  • Las mĆ”s primitivas
  • Aplicaciones Web CGI
  • PresentaciĆ³n, negocio y persistencia mezclados

6
Modelo de Arquitectura 1.5JSP y Servlets
  • SeparaciĆ³n de responsabilidades
  • JSPs llevan la lĆ³gica de presentaciĆ³n
    (navegabilidad, visualizaciĆ³n, etc.)
  • Beans incrustados asumen las responsabilidades de
    negocio y datos

7
Modelo de Arquitectura 2MVC
  • EvoluciĆ³n del modelo 1.5
  • IncorporaciĆ³n del patrĆ³n de diseƱo MVC.
  • Controlador NavegaciĆ³n
  • Negocio y Datos Beans
  • PresentaciĆ³n JSPs

8
Modelo de Arquitectura 2MVC con Struts
  • Struts es la implementaciĆ³n del MVC que aporta
    Jakarta para aplicaciones web java.
  • http//jakarta.apache.org/struts

9
Modelo de Arquitectura 2XAplicaciones Multicanal
  • EvoluciĆ³n del modelo 2 para construir
    aplicaciones multicanal.
  • ImplementaciĆ³n de referencia STXX (extiende
    Struts)
  • http//stxx.sourceforge.net/
  • Soluciones basadas en XML y XSLTs.

10
Aspectos Generales enArquitectura WEB
  • Escalabilidad
  • SeparaciĆ³n de responsabilidades
  • Portabilidad
  • ComponentizaciĆ³n de los servicios de
    infraestructura
  • GestiĆ³n de la sesiĆ³n del usuario, cacheado de
    entidades
  • AplicaciĆ³n de patrones de diseƱo

11
EscalabilidadImportancia?
  • CaracterĆ­stica principal apps WEB
  • Posible incremento vertiginoso del nĆŗmero de
    usuarios
  • Es importante
  • El correcto dimensionamiento de la aplicaciĆ³n
  • La adaptabilidad del sistema ante el incremento
    de demanda.
  • Varias opciones
  • Escalabilidad Horizontal
  • Escalabilidad Vertical
  • Cluster de servidores

12
EscalabilidadHorizontal
  • Clonamos el sistema y balanceamos la carga.

Sistema
Sistema
Usuarios Internet
Sistema
Sistema
13
EscalabilidadHorizontal. Balanceador HW
  • Distribuye por algoritmos predeterminados (Round
    Robin, LRU, etc.) las peticiones HTTP entre los
    distintos clones del sistema
  • La selecciĆ³n del clon es por tanto aleatoria
  • Problema No garantiza que diferentes peticiones
    de un mismo usuario sean servidas por el mismo
    clon del sistema -gt No hay mantenimiento de la
    sesiĆ³n del usuario en servidor -gt Condiciona el
    DiseƱo!.
  • La sesiĆ³n la debe mantener el desarrollador por
    otros medios
  • Cookies
  • En base de datos
  • Al ser un proceso HW, es MUY rĆ”pido.

14
EscalabilidadHorizontal. Balanceador SW
  • Examinan el paquete a nivel del protocolo HTTP
    para garantizar el mantenimiento de la sesiĆ³n de
    usuario.
  • Distintas peticiones del mismo usuario son
    servidas por el mismo clon del servidor.
  • MĆ”s lentos que los balanceadores HW
  • Normalmente son soluciones baratas.
  • Ej., mĆ³dulo mod_jk de apache.

15
EscalabilidadHorizontal. Balanceador HW HTTP
  • Dispositivos HW que examinan la peticiĆ³n a nivel
    de paquete HTTP.
  • TĆ©rmino medio entre las dos anteriores.
  • Garantizan el mantenimiento de sesiĆ³n.
  • MĆ”s rĆ”pidos que los SW pero menos que los HW.

16
EscalabilidadVertical
  • La separaciĆ³n lĆ³gica entre capas se implementar
    de forma que permita la separaciĆ³n fĆ­sica de las
    mismas.
  • Es necesario un Middleware entre las capas para
    permitir la comunicaciĆ³n remota.

17
EscalabilidadCusters de Servidores
  • Habituales en los servidores de aplicaciones
    comerciales (Weblogic, WebSphere, iPlanet, etc.).
  • Dependiendo de cĆ³mo 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 mĆ”quina que sirva
    la peticiĆ³n http tendrĆ” acceso a la sesiĆ³n del
    usuario (ReplicaciĆ³n de sesiĆ³n)
  • La replicaciĆ³n de sesiĆ³n es MUY costosa, produce
    bajo rendimiento del sistema.

18
EntoncesQuĆ© hacer con la sesiĆ³n?
  • Primeras tendencias eran evitar apoyarse en la
    sesiĆ³n (objeto Session) sĆ³lo habĆ­a balanceadores
    hw.
  • Hoy en dĆ­a, 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 sesiĆ³n no se liberan
    hasta que no caduque la misma.

19
SeparaciĆ³n de Responsabilidades
  • Premisa base para la separaciĆ³n de capas
  • Distintas Responsabilidades no deben ser
    delegadas en la misma clase (separaciĆ³n de
    incumbencias)
  • Tendencia actual en aplicaciones WEB
  • Arquitectura n-capas
  • El modelo mĆ”s bĆ”sico es el de tres capas
  • Capa de presentaciĆ³n
  • Capa de negocio
  • Capa de persistencia
  • Independencia de capas

20
SeparaciĆ³n de Responsabilidades EvoluciĆ³n
  • APLICACIONES MAINFRAME

ƚnica capa fĆ­sica y lĆ³gica
21
SeparaciĆ³n de Responsabilidades EvoluciĆ³n
  • APLICACIONES CLIENTE - SERVIDOR

CLIENTE
SERVIDOR
SeparaciĆ³n LĆ³gica y FĆ­sica de la interfaz de
usuario
22
SeparaciĆ³n de Responsabilidades EvoluciĆ³n
23
SeparaciĆ³n de Responsabilidades EvoluciĆ³n
  • APLICACIONES 3 CAPAS

24
SeparaciĆ³n de Responsabilidades EvoluciĆ³n
  • Modelo de Brown ncapas

25
SeparaciĆ³n de Responsabilidades Capa de
presentaciĆ³n
  • Comprende las responsabilidades de lĆ³gica de
    presentaciĆ³n
  • Navegabilidad del sistema
  • ValidaciĆ³n de datos de entrada
  • Formateo de los datos de salida
  • InternacionalizaciĆ³n
  • Renderizado de presentaciĆ³n
  • Etc.

26
SeparaciĆ³n de Responsabilidades Capa de negocio
  • Comprende las responsabilidades de lĆ³gica de
    negocio (o dominio) del sistema.
  • Resultado del anĆ”lisis funcional
  • Conjunto de reglas de negocio que abstraen el
    mundo real.
  • La capa de negocio ha de ser independiente de la
    capa de presentaciĆ³n y viceversa (en la medida de
    lo posible).

27
SeparaciĆ³n de Responsabilidades Capa de
persistencia
  • Comprende las responsabilidades de lĆ³gica de
    persistencia de las entidades que maneja el
    sistema en desarrollo.
  • InserciĆ³n
  • EliminaciĆ³n
  • Actualizaciones
  • BĆŗsquedas
  • Etc.
  • No tiene porquĆ© tratarse necesariamente de una
    base de datos relacional.

28
Portabilidad
  • Una aplicaciĆ³n web debe poder adaptarse a las
    distintas arquitecturas fĆ­sicas posibles en el
    despliegue.
  • Las tareas de adaptaciĆ³n a un nuevo entorno deben
    limitarse al Ć”mbito de la configuraciĆ³n, no del
    desarrollo.
  • Supuesto de ejemplo Cliente reacio a las
    tecnologĆ­as de componentes J2EE (EJBs) por
    costes, rendimiento o simplemente, moda.

29
ComponentizaciĆ³n de los servicios de
infraestructura
  • Servicio de infraestructura? Componentes
    independientes del dominio.
  • Rompen aparentemente la separaciĆ³n vertical de
    capas.
  • Dan lugar a la capa de infraestructura.
  • Ej.
  • Servicio de Log
  • Pool JDBC
  • Sistema de configuraciĆ³n
  • Gestor de permisos de acceso
  • Etc.

30
GestiĆ³n de la sesiĆ³n del usuario
  • Aspecto muy delicado del sistema
  • Cacheado de entidades en
  • SesiĆ³n de usuario
  • Contexto de la aplicaciĆ³n
  • Caducidad de la informaciĆ³n
  • Refresco de datos
  • Rendimiento del sistema. Consumo de recursos del
    sistema.

31
AplicaciĆ³n de patrones de DiseƱo
  • DefiniciĆ³n de patrĆ³n de diseƱo
  • GOF 94 Design Patterns
  • AdemĆ”s de una soluciĆ³n vĆ”lida para problemas
    habituales, son un medio de entendimiento que
    facilita la comunicaciĆ³n entre analista y
    desarrollador.
  • Aceleran el desarrollo de Software
  • Facilitan el mantenimiento
  • En proceso de integraciĆ³n en las herramientas
    CASE (Rose, Together, etc.).

32
WorkShop!
  • Desarrollo de un contador de visitas. Empleo de
    los objetos de sesiĆ³n y contexto.
  • Descargarse de la web el entorno de trabajo 0.5
    (Contador de visitas de cada usuario!).
  • Descomprimir en el directorio del curso, compilar
    y desplegar.
  • Probar contador accediendo mediante el navegador
    a
  • http//localhost8080/arqui-java
  • Abrir el fichero index.jsp y examinar el cĆ³digo

33
WorkShop (II)!
  • Modificar el contador de visitas para que cuente
    las de TODOS los usuarios que accedan a la pƔgina
  • Editar el fichero index.jsp.
  • En Lugar de colocar y recuperar el atributo
    contador de la sesiĆ³n, hacerlo del contexto.
  • Ej. Sustituir
  • session.getAttribute("contador")
  • Por
  • session.getServletContext().getAttribute("contador
    ")
  • Compilar y desplegar con Ant, y probar la
    aplicaciĆ³n en
  • http//localhost8080/arqui-java
Write a Comment
User Comments (0)
About PowerShow.com