El documento describe diferentes arquitecturas web, incluyendo la arquitectura cliente-servidor, modelos distribuidos, arquitecturas de 2 a 3 capas, y arquitecturas de aplicaciones web. Explica que la arquitectura cliente-servidor distribuye las tareas entre servidores y clientes, y que las aplicaciones web suelen seguir este modelo. También describe cómo las funciones de presentación, negocio y datos pueden distribuirse entre el cliente y servidor.
2. Arquitectura Web
René Guamán-Quinche
Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Sistemas/Computación
Mayo, 2020
Loja, Ecuador
3. 3
1. Arquitectura Cliente - Servidor
2. Modelo Distribuido
3. Arquitectura de 2 a 3 capas
4. Arquitectura de una aplicación web
Agenda
4. 4
Arquitectura cliente - servidor
Las aplicaciones Web suelen tener una arquitectura cliente -
servidor
La arquitectura cliente – servidor es un modelo de aplicación
distribuida en el que las tareas se repartes entre los proveedores de
recursos o servicios, llamadas servidores y los demandantes de
los recursos llamados clientes
5. 5
Arquitectura cliente - servidor
Las aplicaciones Web suelen tener una arquitectura
cliente - servidor
La capacidad de proceso está repartida en el cliente y el
servidor
6. 6
Arquitectura cliente - servidor
La separación del cliente y el servidor es de tipo lógica:
El servidor no se ejecuta sobre una sola máquina ni tampoco es un
sólo programa
Las aplicaciones Web están distribuidas entre varios ordenadores a
través de una red de ordenadores
7. 7
Arquitectura cliente - servidor
cliente se ejecuta en
navegador web
Servidor ejecuta el
servidor web
Ambos se comuican por el protocolo http
por medio de internet o intranet (redes
privadas)
8. 8
Arquitectura cliente - servidor
Al inicio de la web, la capacidad de procesamiento del
cliente era nula porque simplemente mostraba las páginas
web que recibía del servidor web (web 1.0)
En 1995, el navegador Netscape introdujo el lenguaje
Javascript
Mayor capacidad de procesamiento
Validaciones de formularios
Cálculos
9. 9
Arquitectura cliente - servidor
2005 apareció AJAX
Es una técnica de desarrollo web para crear aplicaciones
interactivas o RIA (Rich Internet Applications)
Estas aplicaciones se ejecutan en el cliente, en el
navegador de los usuarios mientras mantiene la
comunicación asíncrona con el servidor
De esta forma es posible realizar cambios sobre las
páginas sin necesidad de recargarlas, mejorando la
interactividad, velocidad y usabilidad en las aplicaciones
10. 10
Modelo Distribuido
Modelos de distribución en aplicaciones cliente - servidor
Según como se distribuyan las tres funciones básicas de una
aplicación (presentación, negocio y datos) entre el cliente y el
servidor, podemos contemplar tres modelos:
presentación distribuida
aplicación distribuida
datos distribuidos
14. 14
Arquitectura de 2 a 3 capas
A dos capas
La diferencia entre las arquitecturas de dos y tres niveles (o
capas) es en la forma de distribución de la aplicación entre el
cliente y el servidor
Arquitecturas a dos niveles se está haciendo referencia a una
aplicación donde el cliente mantiene la lógica de presentación,
de negocio, y de acceso a los datos, y el servidor únicamente
gestiona los datos
15. 15
Arquitectura de 2 a 3 capas
A tres capas
La lógica de presentación, la lógica de negocio y la lógica
de datos están separadas, de tal forma que mientras la lógica
de presentación se ejecutará normalmente en la estación
cliente, la lógica de negocio y la de datos pueden estar
repartidas entre distintos servidores
En este tipo de arquitecturas suelen existir dos servidores: uno
contiene la lógica de negocio y otro la lógica de datos
16. 16
Arquitectura de 2 a 3 capas
A tres capas
En este tipo de arquitecturas suelen existir dos servidores: uno
contiene la lógica de negocio y otro la lógica de datos
17. 17
Arquitectura de 2 a 3 capas
Descripción de un sistema cliente - servidor
Una combinación de la parte cliente (front-end) que interactúa con el
usuario (hace de interfaz entre el usuario y el resto de la aplicación) y la
parte servidor (back-end) que interactúa con los recursos compartidos
(bases de datos, impresoras, módems)
La parte cliente y servidor tienen diferentes necesidades de recursos a la
hora de ejecutarse: velocidad de procesador, memoria, velocidad y
capacidad de los discos duros, dispositivos de entrada/salida, etc
18. 18
Arquitectura de 2 a 3 capas
Descripción de un sistema cliente - servidor
El entorno suele ser heterogéneo. El hardware y sistema operativo del cliente
y el servidor suelen diferir. El cliente y el servidor se suelen comunicar a
través de una Application Program Interface (API) y Remote Procedure Call
(RPC) conocidas (por ejemplo, Open DataBase Connectivity (ODBC) para
acceder a bases de datos y Remove Method Interface (RMI)
19. 19
Arquitectura de una aplicación web
1. Todo en un servidor:
Un único ordenador aloja el servicio de HTTP, la lógica de
negocio y la lógica de datos y los datos. El software que ofrece
el servicio de HTTP gestiona también la lógica de negocio. Las
tecnologías que emplean esta arquitectura son ASP y PHP.
20. 20
Arquitectura de una aplicación web
2. Servidor de datos separado:
A partir de la arquitectura anterior, se separa la lógica de datos
y los datos a un servidor de bases de datos especíco.
Las tecnologías que emplean esta arquitectura son ASP y PHP.
21. 21
Arquitectura de una aplicación web
3. Todo en un servidor, con servicio de aplicaciones:
En la arquitectura número 1 se se separa la lógica de negocio
del servicio de HTTP y se incluye el servicio de aplicaciones
para gestionar los procesos que implementan la lógica de
negocio. La tecnología que emplea esta arquitectura es JSP
23. 23
Arquitectura de una aplicación web
5. Todo separado:
Las tres funcionalidades básicas del servidor web se separan
en tres servidores específicos. La tecnología que emplea esta
arquitectura es JSP
25. 25
Arquitectura de una aplicación web
Separado todo:
El objetivo de separar las distintas funcionalidades (servicio de HTTP,
lógica de negocio y lógica de datos) en distintos servidores es aumentar
la escalabilidad del sistema de cara a obtener un mayor rendimiento.
26. 26
Arquitectura de una aplicación web
Separado todo:
Por ejemplo, para ofrecer el servicio de HTTP hace falta un ordenador
con una buena conexión a Internet, rápido pero sin grandes
necesidades de almacenamiento. Sin embargo, para el servidor de
bases de datos hace falta un ordenador con mucha memoria y con un
disco duro de alta capacidad de almacenamiento y rápido para
mantener todos los datos.
Otra ventaja es que al aislar la lógica de negocio y la lógica de datos en
servidores separados que no están conectados directamente a Internet
se aumenta el nivel de seguridad, ya que no es tan fácil acceder a ellos
28. 28
Arquitectura de una aplicación web
Separado todo:
La comunicación entre la lógica de negocio y los
datos se suele realizar a través de métodos
estandarizados como ODBC, lo que introduce una
penalización en el tiempo de ejecución.
En este tipo de tecnologías, parte de la lógica de
negocio se puede desplazar hacia el servidor de
bases de datos al emplear procedimientos
almacenados (stored procedures) y disparadores
(triggers).
De este modo se puede lograr una cierta
escalabilidad en el sistema.
30. 30
Arquitectura de una aplicación web
Separado todo:
Por último, en la tecnología CSP, la lógica de
negocio y la lógica de datos residen en el sistema
gestor de bases de datos (es el encargado de
ejecutar los procesos que implementan la lógica de
negocio).
Gracias a ello, la comunicación entre los procesos
de la lógica de negocio y los datos es muy rápida,
ya entre ambos se puede establecer una
comunicación interproceso