SEMANA 09

Arquitecturas Web y Configuración de Servidores

1. Temas Aprendidos: Definiciones y Procedimientos

1.1 Arquitecturas Cliente-Servidor

El desarrollo de aplicaciones para Internet se basa en una arquitectura cliente-servidor, donde el cliente (navegador) solicita recursos al servidor, que procesa las peticiones y devuelve las respuestas correspondientes.

MPA - Multi Page Application

Aplicaciones web clásicas que contienen múltiples páginas físicas. Cada página tiene su propio archivo HTML, CSS, JS y recursos. Las páginas se conectan mediante enlaces y sus rutas son accesibles a través de directorios.

SPA - Single Page Application

Arquitectura donde el servidor dispone únicamente de una página HTML que carga todos los estilos y componentes durante el primer acceso. JavaScript maneja la navegación entre componentes, solicitando únicamente datos puros al servidor.

Arquitectura Multicapa (MVC)

Técnica Server Side que separa sistemas complejos en capas según responsabilidades. Implementa el patrón Modelo-Vista-Controlador para mejor organización del código.

Arquitectura Hexagonal

También llamada "puertos y adaptadores", separa la aplicación en capas independientes. Utiliza puertos (puntos de entrada/salida) y adaptadores (implementaciones de conexión) para lograr independencia entre componentes.

1.2 Servidores Web y Software

Los servidores web son equipos de gran potencia con programas (daemon) que almacenan archivos web y los transmiten a usuarios mediante HTTP bajo arquitectura cliente-servidor.

Apache HTTP Server
NGINX
Apache Tomcat
Microsoft IIS
Node.js
LiteSpeed

1.3 Servicios de Hosting y Cloud Computing

Hosting: Servicio de alojamiento web que permite acceder a contenidos desde cualquier dispositivo conectado a Internet. Incluye planes de costo, espacio y transferencia.

Cloud Computing: Disponibilidad bajo demanda de recursos de computación como servicios a través de Internet. Permite pago por uso sin preocuparse por aprovisionamiento de recursos.

1.4 Configuración de Servidores Web

Proceso de ajustar y optimizar servidores para gestionar solicitudes HTTP de manera eficiente y segura.

# Parámetros esenciales en Apache HTTP Server DocumentRoot "/var/www/html" Listen 80 ServerName mi-servidor.com DirectoryIndex index.html ErrorDocument 404 /error/404.html SSLEngine on MaxClients 150 Timeout 300

1.5 Apache Tomcat y JSP

Tomcat es un contenedor de servlets y JSP que ejecuta aplicaciones web Java. Traduce código JSP a servlets, los compila y ejecuta, generando respuestas HTML.

1.6 Gestores de Proyectos: Maven

Maven es una herramienta libre para gestionar proyectos Java, basada en archivos XML. Estandariza estructuras de aplicaciones y configuraciones.

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>web-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> </project>

2. Ejercicios de Laboratorio

Ejercicio 01: Instalación de Servidor Web y Herramientas

  1. Instalación de JDK Jakarta: Descarga de OpenJDK desde https://jdk.java.net/, descompresión en c:\java y configuración de variables de entorno JAVA_HOME y PATH.
  2. Instalación de IntelliJ IDEA: Descarga de la versión Community Edition desde https://www.jetbrains.com/idea/ para el desarrollo de aplicaciones Java.
  3. Instalación de Apache Tomcat: Descarga del instalador desde http://tomcat.apache.org/, selección de la versión 10.x con instalación completa incluyendo documentación y accesos directos.
  4. Configuración de puertos: Configuración por defecto del puerto 8080 para HTTP y especificación de la ubicación de Java SE.

Ejercicio 02: Creación y Configuración de Proyecto Web

  1. Creación de proyecto en IntelliJ IDEA: Configuración de nuevo proyecto web con soporte para JSP y servlets.
  2. Configuración del proyecto: Establecimiento de la estructura de directorios, configuración del JDK y integración con Tomcat.
  3. Configuración de Maven: Creación del archivo pom.xml con dependencias necesarias para el desarrollo web.
  4. Despliegue y pruebas: Utilización de comandos Maven para compilar, empaquetar y desplegar la aplicación en Tomcat.

3. Resultados Obtenidos

✅ Instalación exitosa de JDK Jakarta 19.0.2 con configuración correcta de variables de entorno

✅ Configuración completa de IntelliJ IDEA Community Edition con plugins para desarrollo web

✅ Implementación funcional de Apache Tomcat 10.x con acceso mediante http://localhost:8080

✅ Creación de proyecto web con estructura Maven y despliegue automatizado

✅ Verificación de funcionamiento mediante comandos Maven: clean, compile, package, install y deploy

✅ Comprensión teórica de arquitecturas web, diferencias entre MPA y SPA, y configuración de servidores

4. Reflexión Final: Aprendizaje y Metacognición

¿Qué aprendí y cómo lo hice?

Durante esta semana de laboratorio, he adquirido conocimientos fundamentales sobre arquitecturas web y configuración de servidores. El proceso de aprendizaje fue gradual y práctico, comenzando con conceptos teóricos y culminando con implementación práctica.

Aspectos técnicos dominados:

  • Comprensión profunda de las diferencias entre MPA y SPA
  • Configuración de entornos de desarrollo Java con JDK, IDE y servidor
  • Manejo de Maven como gestor de dependencias y construcción de proyectos
  • Configuración y administración de Apache Tomcat

Reflexión Metacognitiva

Mi proceso de aprendizaje se caracterizó por la construcción progresiva del conocimiento. Inicialmente, los conceptos de arquitecturas web parecían abstractos, pero la práctica con herramientas reales como Tomcat y Maven me permitió contextualizar y solidificar estos conceptos.

Identifiqué que aprendo mejor mediante la combinación de teoría y práctica inmediata. La instalación paso a paso de las herramientas me ayudó a comprender no solo el "qué" sino el "por qué" de cada configuración. Los errores encontrados durante la instalación se convirtieron en oportunidades de aprendizaje profundo.

El aspecto más desafiante fue comprender la arquitectura hexagonal y su aplicación práctica. Superé esta dificultad mediante diagramación mental y comparación con arquitecturas más familiares como MVC.

Estrategias metacognitivas aplicadas:

  • Autorregulación: Planificación de tiempos para cada ejercicio
  • Monitoreo: Verificación constante de cada paso de instalación
  • Evaluación: Reflexión sobre errores y búsqueda de soluciones alternativas

Este laboratorio me ha preparado para proyectos web más complejos y me ha dado la confianza para explorar tecnologías complementarias como Spring Boot o microservicios.

5. Bibliografía