Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Módulo 2
Laura Villena
FUNDACIÓN SOCIEDADES DIGITALES
CURSO DESARROLLADOR WEB
CONTENIDO
Introducción al módulo 2 .......................................................................................... 1
Arquitectura web distribuida .................................................................................... 1
¿Qué es una arquitectura centralizada? .................................................................................................... 1
¿Qué es la arquitectura distribuida? .......................................................................................................... 1
¿Hasta dónde puedo modularizar o distribuir mi sistema? ...................................................................... 7
Laura Villena
FUNDACIÓN SOCIEDADES DIGITALES
CURSO DESARROLLADOR WEB
ARQUITECTURA WEB
Introducción al módulo 2
¡Comencemos!
ARQUITECTURA WEB
Se presenta cuando todos los componentes de nuestra aplicación web con arquitectura
Cliente/Servidor están centralizados en un único equipo o servidor, lo que implica que
tanto el Back End, Front End, Bases de datos y APIs se encuentran alojados en el mismo
lugar. Esto conlleva a que, en caso de que dicho equipo falle, toda la aplicación se verá
afectada y experimentará un fallo generalizado.
Laura Villena 1
Ahora bien, ¿cómo identificamos si una aplicación es distribuida? Aquí hay algunas
señales distintivas:
En este punto, la detección de una arquitectura distribuida puede depender del rol que
desempeñes en el proyecto o la aplicación. Aquí te compartimos dos enfoques:
Laura Villena 2
En este diagrama, observamos que la aplicación se encuentra dividida en Front End, Back
End y bases de datos, todos alojados en el mismo servidor. Es evidente que el diseño de
la aplicación fue realizado de manera modular y separada, con el propósito de facilitar
su distribución. Sin embargo, es importante destacar que, al estar todas las partes del
sistema en un mismo servidor, cualquier fallo en este último afectaría a todo el sistema
en su totalidad.
Laura Villena 3
Sin embargo, es importante mencionar que, aunque la base de datos está separada,
tanto la parte del Front End como el Back End siguen estando alojadas en un mismo
servidor. Esta configuración podría implicar que, si se presenta algún fallo o
inconveniente en el servidor, ambas partes del sistema podrían verse afectadas
simultáneamente. A pesar de la separación de la base de datos, aún existiría un punto
de vulnerabilidad en la dependencia del servidor común.
Laura Villena 4
Este enfoque tiene varios beneficios significativos. En primer lugar, al tener cada parte
del sistema en servidores independientes, se reduce significativamente el riesgo de que
una falla en un servidor afecte a todo el sistema, ya que los componentes están aislados
y no comparten la misma infraestructura.
Laura Villena 5
En este último diagrama, podemos apreciar que cada componente del sistema se
encuentra alojado en la nube de diferentes empresas. A pesar de esta diversidad de
proveedores de servicios en la nube, el sistema continúa funcionando sin problemas,
gracias a su diseño modular y distribuido.
Este enfoque modular permite que las distintas partes del sistema operen de manera
independiente y se comuniquen entre sí a través de interfaces bien definidas. Al ubicar
cada componente en la nube de diferentes proveedores, se obtienen varios beneficios.
Laura Villena 6
El cómo distribuir el sistema es una decisión crítica que se aborda durante el diseño de
la aplicación, pero también es una consideración dinámica que puede cambiar a medida
que el sistema evoluciona. En muchos casos, cuando nos incorporamos a un proyecto,
las aplicaciones ya están en funcionamiento y requerirán de nuestro conocimiento para
su mantenimiento y mejora continua.
Laura Villena 7
Front End:
El diseño se orienta hacia una arquitectura distribuida y comprende las siguientes
funcionalidades:
Laura Villena 8
CASO 1
En este caso, el sistema se encuentra distribuido en tres servidores, con cada separación
presentando las siguientes características:
o Front End: Todas las funcionalidades relacionadas con el Front End están
agrupadas y se ejecutan en un solo servidor.
Laura Villena 9
o Base de datos: Todos los datos del sistema son almacenados en una base de
datos que reside en el mismo servidor.
CASO 2
En este caso, podemos observar que cada parte del sistema se encuentra distribuida en
5 servidores diferentes, y el sistema continúa funcionando de manera exitosa debido a
que el desarrollador Back End diseñó el código con una arquitectura distribuida.
o Front End: Todas las funcionalidades relacionadas con el Front End están
agrupadas y se ejecutan en un solo servidor.
Laura Villena 10
o Base de Datos: Todos los datos del sistema se almacenan en una base de datos
que reside en el mismo servidor. Esta base de datos es utilizada por los distintos
servidores del Back End para almacenar y recuperar información necesaria para
el funcionamiento del sistema.
CASO 3
Laura Villena 11
o Front End: Todas las funcionalidades relacionadas con el Front End están
agrupadas y se ejecutan en un solo servidor que se encuentra en la nube de
Argentina. Este servidor es responsable de manejar la presentación y la
interacción con los usuarios.
o Base de Datos: Todos los datos del sistema se almacenan en una base de datos
que reside en un servidor propio. Esta base de datos es independiente de las
nubes y se encarga de gestionar y almacenar toda la información necesaria para
el funcionamiento del sistema.
Laura Villena 12
En este último caso, observamos que el sistema se encuentra alojado en una sola nube,
y a pesar de que todas las funcionalidades están reunidas en un mismo servidor de la
nube de Argentina, el sistema sigue funcionando correctamente.
o Back End: Todas las funcionalidades del Back End también están reunidas en la
misma nube de Argentina. En este servidor, se lleva a cabo la ejecución de la
Laura Villena 13
o Base de datos: Todos los datos del sistema se almacenan en una base de datos
que reside en la misma nube de Argentina. Esta base de datos es utilizada por el
Back End para almacenar y recuperar información necesaria para el
funcionamiento del sistema.
Hemos podido observar que existen diversas formas de organizar, distribuir o dividir en
capas una aplicación junto con sus funcionalidades. En algunos casos, la separación
puede limitarse únicamente al Front End y Back End. Sin embargo, también hay otras
estrategias para fragmentar la aplicación en unidades más pequeñas, y lo logramos
mediante el uso de APIs REST.
El Modelo OSI se compone de 7 capas, cada una con funciones específicas que
contribuyen al proceso de comunicación. Estas capas son:
Laura Villena 14
Laura Villena 15
1. Cliente Web: El cliente web solicita la resolución de nombres al servidor DNS, por
ejemplo, google.com.
2. Servidor DNS: El servidor DNS recibe y atiende la solicitud. Una vez recibida la
petición, realiza las consultas necesarias para resolver y obtener la dirección IP
correspondiente al servidor web.
Laura Villena 16
10. La aplicación realiza una petición SQL a la base de datos: Para obtener o
modificar datos, la aplicación realiza una solicitud SQL a la base de datos.
11. La Base de Datos recibe la petición SQL y la procesa: La Base de Datos recibe la
solicitud SQL y la procesa, realizando los cambios necesarios si corresponde.
12. Una vez procesada la petición, devuelve los datos a la aplicación web: La Base de
Datos devuelve los datos solicitados a la aplicación web, generalmente un
conjunto de datos, como los 10 últimos clientes.
13. La aplicación web recibe estos datos y genera una salida: La aplicación web
recibe los datos de la Base de Datos y debe generar una salida, típicamente en
Laura Villena 17
17. El servidor Web devuelve los datos dentro de la respuesta HTTP al navegador
web: El servidor web incluye los datos dentro de la respuesta HTTP que será
enviada al navegador web.
Laura Villena 18
Sin embargo, al expandirse los límites de la web, surgen nuevos desafíos que exigen
respuestas innovadoras. En la actualidad, las páginas web no se limitan a ser simples
sitios coloridos y dinámicos; han evolucionado hacia sistemas completos y distribuidos,
con compatibilidad multiplataforma y funcionalidades específicas. Un ejemplo de esto
es la plataforma de e-commerce.
Laura Villena 19
TRANSFERENCIA DE DATOS
Laura Villena 20
Red Doméstica: En esta red del hogar, se puede apreciar cómo el cable del proveedor
de Internet se conecta al módem Wi-Fi, permitiendo que los dispositivos o nodos se
conecten de manera inalámbrica. Los equipos que se conectan a esta red incluyen
Laura Villena 21
Red del Proveedor de Internet: En la red del proveedor de Internet, se evidencia cómo
diversas empresas se conectan entre sí para formar una red en la que se transmiten y
reciben datos.
Laura Villena 22
La capa física engloba todos los elementos que un equipo utiliza para comunicarse con
otro dentro de la red, como tarjetas de red, cables y antenas. Si deseas profundizar en
este tema, puedes consultar autores como Tanenbaum, quien aborda las redes y el
modelo OSI (modelo de interconexión de sistemas, protocolos de comunicación, entre
otros).
Laura Villena 23
Los protocolos son similares al concepto de idiomas utilizados por las personas. Cuando
dos personas hablan el mismo idioma y siguen ciertas reglas de comunicación (como
hablar y escucharse por turnos), pueden intercambiar ideas e información. De manera
similar, en el contexto de las redes, los protocolos son conjuntos de reglas y normas que
permiten a los dispositivos comunicarse entre sí de manera efectiva.
Uno de los servicios más exitosos en Internet es la World Wide Web, también conocida
como WWW o simplemente la web. La WWW es un conjunto de protocolos que facilita
la consulta remota de archivos de hipertexto y utiliza Internet como medio de
transmisión.
Laura Villena 24
Además, el Protocolo de Internet (IP) es una norma que tiene como objetivo principal el
direccionamiento de origen y destino en las comunicaciones para la transmisión de
datos mediante un enfoque no orientado a conexión. Este protocolo permite el envío
de paquetes conmutados a través de diversas redes previamente enlazadas, siguiendo
las pautas establecidas por el modelo OSI.
Laura Villena 25
Para comprender mejor la distinción entre los protocolos TCP e IP, sería necesario
analizar el modelo de capas OSI, pero en este curso no profundizaremos en ese aspecto.
Sin embargo, cabe mencionar que existe una jerarquía entre capas, y el protocolo IP se
encuentra en la capa de red, que está por encima de la capa de transporte, donde se
encuentra el protocolo TCP.
Laura Villena 26
Es gracias al trabajo conjunto de los protocolos de Internet, como el TCP e IP, y el uso de
direcciones IP que se logra una comunicación efectiva y segura entre diferentes
dispositivos conectados en la vasta red de redes que es Internet.
El mecanismo del DNS simplifica la navegación en Internet, ya que nos permite acceder
a los sitios web a través de nombres más intuitivos y fáciles de recordar en lugar de
utilizar direcciones IP numéricas.
Laura Villena 27
Capa de aplicación:
Laura Villena 28
HTTP define un conjunto de métodos de petición que indican la acción que se desea
realizar sobre un recurso específico. Estos métodos de solicitud, a veces denominados
verbos HTTP, pueden ser tanto sustantivos como verbos, según la acción que se quiera
llevar a cabo.
Un aspecto muy relevante de HTTP es que se trata de un protocolo sin estado, lo que
significa que no guarda información sobre conexiones anteriores. Cada solicitud que
realiza un cliente al servidor se procesa de manera independiente, sin tener en cuenta
solicitudes anteriores. En otras palabras, el servidor no mantiene un registro de estado
sobre las interacciones previas con un cliente. Las implicancias de esto serán exploradas
más adelante.
Para ponerlo de manera más concreta, un cliente puede ser representado por un
navegador web o cualquier otra aplicación que utilice el protocolo, mientras que el
servidor actúa como una aplicación alojada en un servidor web en Internet. Este
intercambio de mensajes de petición y respuesta es fundamental para la comunicación
efectiva entre clientes y servidores en la World Wide Web y facilita la carga de páginas,
el envío de datos y otras interacciones en el entorno en línea.
Laura Villena 29
• Línea inicial: En las peticiones, esta línea comienza con el "método de petición",
que es una acción solicitada al servidor, seguido de la URL (Uniform Resource
Locator) del recurso y la versión de HTTP que el cliente admite. Lo esencial aquí
son el método de petición y la URL, que indican qué acción se está solicitando y
en qué recurso se llevará a cabo. En las respuestas, la línea inicial incluye la
versión de HTTP seguida de un "código de respuesta" y una "frase asociada", que
indica el resultado de la solicitud.
• Cabecera: Los mensajes HTTP también incluyen cabeceras, que son metadatos
con información diversa sobre la solicitud o la respuesta. Estos metadatos
pueden contener detalles como el tipo de contenido, las cookies, la codificación
de caracteres, etc.
Existen varios métodos de petición, también conocidos como verbos, que indican la
acción que se desea realizar sobre un recurso identificado, y la interpretación de este
recurso dependerá de la aplicación del servidor.
En este caso, los métodos que vamos a utilizar son "GET" y "POST". Cabe destacar que
existen otras convenciones y estándares, como REST y las API's, que utilizan otros
métodos para diferentes propósitos.
Laura Villena 30
Por otro lado, el método "POST" envía datos para que sean procesados por el recurso
identificado. Los datos enviados se incluyen en el cuerpo de la petición. Esto puede
resultar en la creación de un nuevo recurso o en la actualización de recursos existentes,
según la implementación específica del servidor.
1. El código de respuesta "200" indica una respuesta correcta, lo que significa que
la petición ha sido procesada exitosamente y se ha obtenido la información
solicitada de manera adecuada.
2. Por otro lado, el código de respuesta "404" representa errores causados por el
cliente, específicamente que el recurso solicitado no se ha encontrado en el
servidor. Esto puede ocurrir cuando se introduce una URL incorrecta o cuando el
recurso no existe.
3. Por último, los códigos de respuesta que comienzan con "5", como el "500",
indican errores causados por el servidor. Estos códigos reflejan que ha habido un
fallo en el proceso de la petición debido a un error interno en el servidor.
Es cierto que todo lo que hemos discutido sobre HTTP es fundamental para programar
una aplicación web. Al interactuar con una aplicación web, al hacer clic en un enlace, se
realizará una petición "GET" al servidor para obtener otra página. Si la página se
encuentra, se obtendrá una respuesta "200"; de lo contrario, se obtendrá un "404" si la
página no está disponible.
Laura Villena 31
Si bien existen otros protocolos en la familia de TCP / IP que son necesarios para
configuraciones de conexiones, a nivel de aplicación, como desarrolladores de
aplicaciones web, nos centraremos principalmente en el uso de HTTP para la interacción
cliente-servidor.
Es cierto que comprender los otros protocolos y niveles de TCP / IP puede ser útil para
solucionar problemas y realizar tareas más avanzadas, como conectarse a una base de
datos desde la aplicación web del servidor. Aunque no los utilicemos directamente en
nuestra programación de aplicaciones web, tener un conocimiento sólido de estos
protocolos nos permitirá entender mejor cómo funcionan las conexiones de red y cómo
abordar problemas complejos en el desarrollo de nuestras aplicaciones.
Laura Villena 32
Laura Villena 33
Laura Villena
FUNDACIÓN SOCIEDADES DIGITALES
CURSO DESARROLLADOR WEB