Sunteți pe pagina 1din 36

Tema 17: Arquitecturas Web

(Bloque V)

Fundamentos de la Web
ndice

Introduccin
Contenedores de servicios y aplicaciones
Niveles de las arquitecturas Web
Arquitectura de un nivel
Arquitectura de dos niveles
Arquitectura de tres niveles
Arquitectura de N-niveles
Arquitectura orientada a servicios
Bibliografa

Fundamentos de la Web 2
Introduccin
Las aplicaciones web son sistemas complejos
formados por BBDD, Servidores, Redes, Sistemas de
seguridad, Sistemas de copias de seguridad, etc.
Necesitan del diseo de una arquitectura software.
Las arquitectura del software representa el diseo de
ms alto nivel de la estructura de un sistema.
Consiste en un conjunto de patrones y abstracciones
que proporcionan un marco de referencia en el diseo
del sistema.
La arquitectura software indica la estructura,
funcionamiento e interaccin entre las distintas partes
del software.
Fundamentos de la Web 3
Introduccin
Distribucin fsica y lgica: las diferentes arquitecturas
deben distinguir entre:
Modelo fsico: cmo se organizan los elementos y
componentes de la arquitectura.
Modelo lgico: cmo se organizan los datos y la informacin
que utiliza un modelo fsico determinado.

Fundamentos de la Web 4
ndice

Introduccin
Contenedores de servicios y aplicaciones
Niveles de las arquitecturas Web
Arquitectura de un nivel
Arquitectura de dos niveles
Arquitectura de tres niveles
Arquitectura de N-niveles
Arquitectura orientada a servicios
Bibliografa

Fundamentos de la Web 5
Contenedores de servicios y aplicaciones

Las aplicaciones distribuidas en Internet se suelen ejecutar en


contenedores o servidores que proporcionan:
Un entorno donde se restringe el acceso a recursos
como los dispositivos fsicos o la configuracin del sistema
(sandbox) lo cual ayuda a limitar las consecuencias de los
errores y fallos en las aplicaciones y a resolver los
problemas de seguridad.
Una serie de servicios, como:
Control de acceso, identificacin y autenticacin.
Concurrencia, distribucin de carga
Persistencia (bases de datos, cookies)
etc

D. de ap. distribuidas,F. Gortzar y M.Martnez 6


Contenedores de servicios y aplicaciones

Actualmente existen multitud de tecnologas y estndares


tanto en los contenedores como en los lenguajes y
bibliotecas que se usan para construir aplicaciones que se
ejecutan sobre ellos, y estn evolucionando muy
rpidamente.

D. de ap. distribuidas,F. Gortzar y M.Martnez 7


Contenedores de servicios y aplicaciones

En computadores porttiles y de sobremesa:


Mquinas virtuales, como JVM, VMWare, VirtualBox.
Tecnologas de escritorio remoto y administracin remota,
como RDP, VNC, conexin a escritorio remoto de
Windows, etc
Aplicaciones Web:
En el lado del cliente
El contenedor suele ser un navegador Web, a menudo
combinado con maquinas virtuales como JVM
Lenguajes y plataformas para construir las aplicaciones:
applets, javascript, AJAX, JAX-WS, PHP, Python,
Django, etc

D. de ap. distribuidas,F. Gortzar y M.Martnez 8


Contenedores de servicios y aplicaciones

Aplicaciones Web (continuacin):


En el lado del servidor
El contenedor suele ser un servidor Web o servidor
de aplicaciones (Jetty, Tomcat, App Engine, etc)
Lenguajes y plataformas para construir las
aplicaciones:
JAX-WS, Django
CGI
Servlets, JSP, JSF
JDO, JPA, EJB
etc

D. de ap. distribuidas,F. Gortzar y M.Martnez 9


Contenedores de servicios y aplicaciones

En dispositivos mviles (smartphones, tabletas, etc) y en


computacin ubicua (WebTV, domtica, etc) la tendencia es
a utilizar tecnologas especficas, sobre todo en el lado del
cliente
Sistemas operativos (Apple iOS, Android, ChromeOS
que integran las funciones de los contenedores, por lo que
al usuario los clientes le aparecen como aplicaciones
nativas independientes (no sobre un navegador)
Bibliotecas especficas (Apple iOS SDK, Android SDK)

D. de ap. distribuidas,F. Gortzar y M.Martnez 10


ndice

Introduccin
Contenedores de servicios y aplicaciones
Niveles de las arquitecturas Web
Arquitectura de un nivel
Arquitectura de dos niveles
Arquitectura de tres niveles
Arquitectura de N-niveles
Arquitectura orientada a servicios
Bibliografa

Fundamentos de la Web 11
Niveles de las arquitecturas Web
Para comprender la arquitectura de los sistemas
distribuidos es necesario comprender los conceptos de
nivel y capa.
Las capas representan diferentes roles dentro de un
mismo sistema. Es por lo tanto una forma conceptual y
no necesariamente fsica de dividir los componentes de
un sistema.
Hablar de niveles implica hablar indirectamente de
capas. La diferencia reside en que cuando se habla de
niveles, se hace referencia a dispositivos fsicamente
separados. P.ej. un sistema de 3 capas podra estar
organizado en 2 niveles (2 capas + 1 capa).

Fundamentos de la Web 12
Niveles de las arquitecturas Web
Arquitectura de capas
Una arquitectura de capas es aquella donde diferentes
partes del sistema software tienen un rol perfectamente
diferenciado.

En una arquitectura de capas aparecen tres capas


bsicas:
Capa de presentacin: tiene que ver con la interfaz de usuario.
En la web de una tienda se encargara de generar y gestionar
las pginas web que se ven con un navegador.

Fundamentos de la Web 13
Niveles de las arquitecturas Web

Arquitectura de capas
Capa de lgica del negocio: tiene que ver con los procesos de
negocio y con los conceptos utilizados en la aplicacin.
En la web de una tienda, se encargara de tareas como calcular
el total, los impuestos de venta y el coste de la entrega.
Capa de gestin de datos/gestin de recursos: tiene que ver
con la gestin y persistencia de los datos subyacentes del
sistema.

Fundamentos de la Web 14
Niveles de las arquitecturas Web

Arquitectura de capas

Fundamentos de la Web 15
Niveles de las arquitecturas Web
Arquitectura de capas

Segn el nmero de niveles de un sistema de


informacin, con una arquitectura de capas, podemos
hablar de diferentes tipos de arquitecturas:

De un nivel
De dos niveles (Cliente/Servidor)
De tres niveles (Middleware)
De N-Niveles

Fundamentos de la Web 16
Niveles de las arquitecturas Web
Arquitecturas de un nivel
Estn totalmente centralizadas. Las capas de
presentacin, lgica de la aplicacin y gestin de
recursos se construyen de forma monoltica. Los
usuarios acceden al sistema a travs de terminales.
Era la arquitectura tpica de los mainframes. Presenta
algunas ventajas destacables:
No fuerza cambios de contexto en el flujo de control.
Al estar todo centralizado, el control y la gestin de recursos es
ms fcil.
El diseo se puede optimizar al no distinguirse separacin entre
capas.

Fundamentos de la Web 17
Niveles de las arquitecturas Web
Arquitecturas
de un nivel

Fundamentos de la Web 18
Niveles de las arquitecturas Web
Arquitecturas de dos niveles
Es la arquitectura conocida como cliente/servidor.
La capa de presentacin se mueve al cliente.
Presenta las siguientes ventajas:
Los clientes son independientes entre s.
Se puede aprovechar la mquina cliente teniendo capas de
presentacin ms sofisticadas.
Introduce el concepto de API (Application Programming
Interface). Una interfaz para invocar al sistema desde fuera.
Esto permite a los diseadores federar los sistemas en un nico
sistema.

Fundamentos de la Web 19
Niveles de las arquitecturas Web
Arquitectura
de dos niveles

Servidor

Fundamentos de la Web 20
Niveles de las arquitecturas Web
Arquitecturas de dos niveles
Los sistemas cliente/servidor introducen la nocin de
servicio (el cliente invoca el servicio implementado en el
servidor).
Junto con la nocin de servicio, se introduce la nocin
de interface de servicio (cmo invoca el cliente un
servicio dado).
Los interfaces de todos los servicios ofrecidos por un
servidor definen la API que describe cmo interactuar
con el servidor desde fuera.
Hubo muchos esfuerzos de estandarizacin por la
necesidad de acordar API comunes para cada tipo de
servidor.

Fundamentos de la Web 21
Niveles de las arquitecturas Web
Arquitecturas de dos niveles

API del servidor

interfaz interfaz interfaz interfaz


del servicio del servicio del servicio del servicio

servidor
servicio servicio servicio servicio

capa de gestin de
recursos

Fundamentos de la Web 22
Niveles de las arquitecturas Web
Arquitecturas de dos niveles
Con respecto a las de un nivel
Menor seguridad en los datos corporativos.

Con respecto a las de tres niveles


Los datos y los programas que los manejan aparecen juntos.
Difcil de separar los datos de la lgica de la aplicacin.
El cliente recibe los datos y la informacin directamente del
servidor.
El gestor de recursos slo ve un cliente: la capa de la lgica
de la aplicacin. Esto mejora las prestaciones del sistema
puesto que no hay conexiones ni sesiones de clientes que
mantener.
Utilizadas en esquemas poco complejos (simplicidad del
diseo).
Fundamentos de la Web 23
Niveles de las arquitecturas Web
Con respecto a las de tres niveles (continuacin)
Si un cliente quiere comunicarse con dos o ms
servidores:
Los servidores y los sistemas subyacentes no se
conocen entre s, y tpicamente no tendrn una
lgica de negocio y unos APIs comunes.
El cliente es el responsable de saber dnde
estn las cosas, cmo comunicarse para
obtenerlas, y asegurar la consistencia.
Esto es muy ineficiente, ya que a menudo la
capacidad del cliente es limitada, y tambin desde
otros puntos de vista como diseo de software,
portabilidad, reutilizacin, etc
Niveles de las arquitecturas Web
Arquitectura de tres niveles
En un sistema de 3 niveles, las tres capas estn
completamente separadas.
Las capas suelen estar tambin distribuidas, obteniendo
ventajas de la modularidad completa del diseo (en
dos capas, el servidor suele estar centralizado).
Un sistema basado en middleware es una arquitectura
de 3 niveles. Esto es una simplificacin, pero es
conceptualmente correcto, puesto que los sistemas
subyacentes pueden tratarse como cajas negras.

Fundamentos de la Web 25
Niveles de las arquitecturas Web
Arquitectura
de tres niveles

Fundamentos de la Web 26
Niveles de las arquitecturas Web
Arquitectura de tres niveles
Un middleware es simplemente un nivel de indireccin
entre los clientes y el resto de capas del sistema.
Un middleware es un sistema ms que puede ser a su
vez un sistema de una, dos, tres o N niveles.
Mediante un sistema de middleware:
Se simplifica el diseo de los clientes reduciendo el nmero de
interfaces
Se ofrece acceso transparente a los sistemas subyacentes
El middleware acta como la plataforma para integrar la
funcionalidad de los sistemas y soporta la lgica de aplicacin
de alto nivel, y se preocupa de localizar los recursos, acceder a
estos, y recoger los resultados.

Fundamentos de la Web 27
Niveles de las arquitecturas Web
Arquitectura de N-niveles
Las arquitecturas de N-niveles resultan de la conexin de varios
sistemas de 3-niveles entre s y/o aadiendo una capa adicional
que permite el acceso al sistema a travs de un servidor Web.
La capa Web era, inicialmente, externa al sistema (una capa real
adicional). Hoy en da, esta capa se va incorporando lentamente a
la capa de presentacin que reside en el lado del servidor (parte
de la infraestructura middleware en un sistema de 3-niveles, o parte
del servidor directamente en un sistema de 2-niveles).
La incorporacin de la capa Web nos lleva a la nocin de
servidores de aplicacin, que se utiliza para referirse
habitualmente a plataformas middleware que soportan acceso a
travs de Web.

Fundamentos de la Web 28
Niveles de las arquitecturas Web
Arquitectura de
N niveles

Fundamentos de la Web 29
Niveles de las arquitecturas Web
Ejemplo de sistema de N niveles

Fundamentos de la Web 30
ndice

Introduccin
Arquitecturas de sistemas de informacin
Arquitectura de un nivel
Arquitectura de dos niveles
Arquitectura de tres niveles
Arquitectura de N-niveles
Arquitectura orientada a servicios
Bibliografa

Fundamentos de la Web 31
Arquitectura orientada a servicios
Arquitecturas orientadas a servicios (SOA: Service
Oriented Architecture)
Con la aparicin de Internet y de los Servicios Web,
surge la necesidad de aadir dinmicamente servidores
y que los clientes puedan localizarlos y conocer sus
caractersticas con facilidad.
Aaden la posibilidad de registrar un servidor y la
descripcin de los servicios que ofrece en un directorio.

D. de ap. distribuidas, F. Gortzar y M.Martnez 32


Arquitectura orientada a servicios
Una arquitectura orientada a servicios contiene tres
roles claramente diferenciados:
Proveedor del servicio: es el responsable de crear una
descripcin de un servicio y publicarlo.

Cliente del servicio: es responsable de buscar


descripciones publicadas de servicios y de utilizar dichas
descripciones para invocar los servicios web.

Registro del servicio: es responsable de dar acceso a


las descripciones de los servicios web publicadas.

D. de ap. distribuidas, F. Gortzar y M.Martnez 33


Arquitectura orientada a servicios

Fundamentos de la Web 34
ndice

Introduccin
Arquitecturas de sistemas de informacin
Arquitectura de un nivel
Arquitectura de dos niveles
Arquitectura de tres niveles
Arquitectura de N-niveles
Arquitectura orientada a servicios
Bibliografa

Fundamentos de la Web 35
Bibliografa

[1] Web Services Concepts, Architectures and


Applications. Gustavo Alonso, Fabio Casati, Harumi
Kuno, Vijay Machiraju Springer Verlag, ISBN 3-540-
44008-9. Springer Verlag 2004.

[2] http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/

Fundamentos de la Web 36

S-ar putea să vă placă și