Plantilla:TecnologiaDesarrloWeb/ArquitecturaWeb
Contenido
Qué es Arquitectura Web
- Hay que empezar diciendo que en este campo nuestro objetivo es construir una aplicación que funcione en un entorno web
- Como toda construcción vamos a tener una forma de hacerlo, y necesitamos herramientas:
- Planificar y analizar, diseñar y construir el producto final.
- Usaremos un determinado material o herramientas para construirlo.
- Usaremos roles profesionales (desarrolladores, diseñadores, administradores de sistemas).
- Arquitectura Web
| La arquitectura web define la estructura y la forma en que se organizan los diferentes componentes de una aplicación que funciona en un entorno web.
Como en la construcción de un edificio, necesitamos planos (diseño), materiales (tecnologías) y roles profesionales (desarrolladores, diseñadores, administradores de sistemas). |
(
: hay que decidir al principio qué herramientas (tecnologías) vamos a utilizar
(comparación con una construcción clásica por ejemplo de edificios)
)
- Arquitectura: Constuyendo los planos
- Arquitectura: planificando y realizando
Componentes principales de una aplicación web
- Servidor web → recibe las peticiones del cliente y devuelve una respuesta HTTP (ej: Apache, Nginx).
- Servidor de bases de datos → gestiona la información (ej: MySQL, PostgreSQL, MongoDB).
- Módulo de ejecución de código en el servidor → interpreta scripts dinámicos (ej: PHP, Node.js, Python).
- Cliente web → interpreta HTML, CSS y JavaScript (ej: navegadores).
- Lenguajes de programación → usados para construir tanto la parte visible (frontend) como la lógica (backend).
Diferencia entre el cliente (frontend) y el servidor (backend)
- El Frontend (lado del cliente)
- Es la parte visible de la aplicación, con la que el usuario interactúa desde su navegador.
- Incluye la estructura (HTML), los estilos (CSS) y la interactividad (JavaScript).
- Ejemplo: el formulario de registro o el botón de “Enviar”.
- Backend (lado del servidor)
- Es la parte que no se ve. Se ejecuta en el servidor y se encarga de procesar las peticiones del cliente, acceder a la base de datos y devolver los resultados.
Ejemplo: el código que guarda los datos del formulario en la base de datos. }}
|
El frontend muestra y recoge información del usuario, mientras que el backend la procesa, almacena y devuelve resultados.
|
| Aspecto | Frontend (cliente) | Backend (servidor) |
|---|---|---|
| Dónde se ejecuta | En el navegador del usuario | En el servidor web |
| Lenguajes habituales | HTML, CSS, JavaScript, Vue, React | PHP, Python, Node.js, Java |
| Función principal | Mostrar la interfaz y captar datos del usuario | Procesar datos y comunicarse con la base de datos |
| Ejemplo práctico | Formulario de contacto en pantalla | Código que guarda el mensaje en una base de datos |
| Resultado visible | Sí, el usuario lo ve directamente | No, solo devuelve una respuesta |
Ejemplo
| |
“El plato, la mesa, los utensilios, el salero y lo que el usuario toca.”
“La cocina donde se preparan los platos según el pedido.”
“Lugar donde se almacenan los productos (datos) para cocinar los platos.”
“Transporta los pedidos (peticiones) y devuelve las respuestas.”
|
Arquitectura de la aplicación
Las aplicaciones web modernas suelen dividirse en tres capas:
|
(
:
Separar el código por capas facilita el mantenimiento, la escalabilidad y el trabajo en equipo.
)
Roles en el desarrollo
- Desarrollador backend
- Desarrollador frontend
- Diseñador web
- Administrador de sistemas
- DevOps / Full Stack Developer
|
y generar un mensaje de respuesta usando igualmente el protocolo http. Es muy frecuente que la respuesta es una página html. |
- 2.-El Servidor de Bases de datos
|
- 3.- El módulo de ejecución de código en el servidor
| Ante una solicitud del cliente el servidor no solo entrega una página web, antes de ello es muy frecuente que ejecute código del cual el cliente nunca será consciente. Para ello tenemos que tener un módulo instalado en el servidor para ejectuar ese código.Nosotros usaremos PHP y posteriormente JavaScript en el servidor con NodeJS. Es el aspecto fundamental para este módulo o asignatura |
- Módulo de ejecución de script en el servidor
- genera la página web resultante.
- Este módulo debe integrarse de alguna forma con el servidor web
- Dependerá del lenguaje y tecnología que utilicemos para programar la aplicación web.
- 2.- El cliente
Ya lo hemos visto, corresponde al inicio del proceso, generalmente un navegador
- En el cliente se recibe la página del servidor
- Se interpreta las etiquetas de html con sus atributos
- Se aplica el estilo detallado en las páginas css
- Se ejecuta el código javascript y se atiende a los eventos javascript que haya configurados en código en la página que el servidor nos entrega
- Suelen ser los navegadores. Reciben la página que solicitan
Para ello tendrá módulos encargados de la ejecución del código y cómo se debe comunicar con él.
- 4.-El lenguaje de programación
- Tanto para los script del cliente como del servidor o bien CGI, que utilizarás para desarrollar las aplicaciones.
- Aquí es donde se pueden usar diferentes opciones incluso con el mismo servidor web
La arquitectura de la aplicación
- Además de los componentes a utilizar, también es importante decidir cómo vas a organizar el código de la aplicación.
- Esto se conoce como la arquitectura de la aplicación web.
- Muchas de las arquitecturas que se usan en la programación de aplicaciones web te ayudan a estructurar el código de las aplicaciones en capas o niveles.
- El motivo de dividir en capas el diseño de una aplicación es que se puedan separar las funciones lógicas de la misma, de tal forma que sea posible ejecutar cada una en un servidor distinto (en caso de que sea necesario).
- La arquitectura de una aplicación
- Un servidor de aplicaciones web en realidad puede estar formado por varios servidores físicos;
cada servidor se puede encargar de ejecutar una parte de la aplicación.
- Internamente se puede dividir la funcionalidad de una aplicación web en tres capas
- Arquitectura de 3 capas
- capa de acceso a datos: que se tendrá que encargar de almacenar la información de la aplicación en una base de datos y recuperarla cuando sea necesario.
- capa intermedia : donde deberás programar la funcionalidad de tu aplicación.
- capa cliente: que es donde programarás todo lo relacionado con el interface de usuario, esto es, la parte visible de la aplicación con la que interactuará el usuario.
|