259 lines
5.5 KiB
Markdown
259 lines
5.5 KiB
Markdown
/* Apuntes de clase */
|
||
|
||
Comunicacion
|
||
- Sincrona
|
||
- Asincrona
|
||
|
||
WS
|
||
|
||
# Tema 6 – Arquitectura cliente/servidor y multicapas. Servicios web y protocolos
|
||
|
||
---
|
||
|
||
## 1. Esquema general
|
||
|
||
1. Arquitectura cliente/servidor
|
||
2. Arquitectura multicapas (n-tier)
|
||
3. Componentes principales
|
||
4. Funcionamiento (operación)
|
||
5. Arquitecturas de servicios web
|
||
6. Protocolos asociados
|
||
|
||
---
|
||
|
||
## 2. Desarrollo
|
||
|
||
### 2.1 Arquitectura cliente/servidor
|
||
|
||
**Definición**
|
||
Modelo en el que un cliente solicita servicios y un servidor los proporciona.
|
||
|
||
**Elementos**
|
||
- Cliente: realiza peticiones
|
||
- Servidor: responde y gestiona recursos
|
||
- Red: medio de comunicación
|
||
|
||
**Características**
|
||
- Separación de funciones
|
||
- Centralización de recursos
|
||
- Escalabilidad
|
||
- Comunicación por red
|
||
|
||
**Tipos**
|
||
- Modelo de 2 capas
|
||
- Cliente pesado (thick client)
|
||
- Cliente ligero (thin client)
|
||
|
||
**Ejemplo**
|
||
- Navegador web (cliente)
|
||
- Servidor web (servidor)
|
||
|
||
---
|
||
|
||
### 2.2 Arquitectura multicapas (n-tier)
|
||
|
||
**Definición**
|
||
Modelo que divide la aplicación en varias capas independientes.
|
||
|
||
**Capas principales**
|
||
1. Capa de presentación
|
||
- Interfaz de usuario
|
||
2. Capa de lógica de negocio
|
||
- Procesamiento y reglas
|
||
3. Capa de datos
|
||
- Acceso a bases de datos
|
||
|
||
**Capas adicionales (opcional)**
|
||
- Capa de servicios
|
||
- Capa de integración
|
||
|
||
**Ventajas**
|
||
- Modularidad
|
||
- Mantenimiento sencillo
|
||
- Escalabilidad
|
||
- Reutilización
|
||
|
||
**Importante**
|
||
Cliente/servidor es un modelo general, mientras que multicapas define la estructura interna de la aplicación.
|
||
|
||
---
|
||
|
||
### 2.3 Componentes principales
|
||
|
||
**En cliente/servidor**
|
||
- Cliente
|
||
- Servidor
|
||
- Red
|
||
|
||
**En multicapas**
|
||
- Front-end (presentación)
|
||
- Back-end (lógica)
|
||
- Base de datos
|
||
- Middleware
|
||
|
||
---
|
||
|
||
### 2.4 Funcionamiento (operación) – Comunicación síncrona y asíncrona
|
||
|
||
**Comunicación síncrona**
|
||
- El cliente envía una petición y **espera la respuesta** del servidor.
|
||
- La ejecución queda bloqueada hasta recibir respuesta.
|
||
- Es el modelo clásico en HTTP.
|
||
|
||
**Ejemplo**
|
||
- Un navegador solicita una página web y espera a que el servidor responda.
|
||
|
||
**Ventajas**
|
||
- Simplicidad
|
||
- Fácil de implementar
|
||
|
||
**Inconvenientes**
|
||
- Menor rendimiento en sistemas distribuidos
|
||
- Bloqueo del cliente
|
||
|
||
---
|
||
|
||
**Comunicación asíncrona**
|
||
- El cliente envía una petición y **no espera inmediatamente la respuesta**.
|
||
- Puede seguir ejecutando otras tareas.
|
||
- La respuesta llega posteriormente (callback, cola, eventos).
|
||
|
||
**Ejemplo**
|
||
- Sistemas de mensajería (colas de mensajes)
|
||
- Notificaciones push
|
||
- Procesos en segundo plano
|
||
|
||
**Ventajas**
|
||
- Mayor escalabilidad
|
||
- Mejor rendimiento
|
||
- No bloquea procesos
|
||
|
||
**Inconvenientes**
|
||
- Mayor complejidad
|
||
- Gestión de estados más difícil
|
||
|
||
---
|
||
|
||
**Clave de examen**
|
||
- HTTP tradicional → síncrono
|
||
- Sistemas distribuidos modernos → combinan síncrono y asíncrono
|
||
- La asincronía es clave en arquitecturas escalables (microservicios, colas, eventos)
|
||
|
||
---
|
||
|
||
### 2.5 Arquitecturas de servicios web – WS (Web Services)
|
||
|
||
**WS (Web Services)**
|
||
Son **servicios web** que permiten la comunicación entre aplicaciones a través de una red, independientemente del lenguaje o sistema.
|
||
|
||
---
|
||
|
||
**Características**
|
||
- Interoperabilidad (distintos sistemas se comunican)
|
||
- Uso de estándares abiertos
|
||
- Comunicación a través de red (normalmente HTTP)
|
||
- Orientados a servicios
|
||
|
||
---
|
||
|
||
**Tipos de Web Services**
|
||
|
||
**1. SOAP (Web Services clásicos)**
|
||
- Basados en XML
|
||
- Protocolo formal y estricto
|
||
- Utilizan:
|
||
- SOAP → formato de mensajes
|
||
- WSDL → descripción del servicio
|
||
- Más pesados pero más estandarizados
|
||
|
||
---
|
||
|
||
**2. REST (estilo arquitectónico)**
|
||
- Más ligero
|
||
- Usa HTTP directamente (GET, POST, PUT, DELETE)
|
||
- Datos en JSON (principalmente)
|
||
- Más utilizado actualmente
|
||
|
||
---
|
||
|
||
**Ejemplo sencillo**
|
||
|
||
Una aplicación pide datos de un usuario:
|
||
|
||
- Cliente → petición HTTP (REST)
|
||
- Servidor → devuelve JSON con los datos
|
||
|
||
---
|
||
|
||
**Relación con el temario**
|
||
- WS = forma de implementar **arquitectura cliente/servidor distribuida**
|
||
- Muy usado en arquitecturas multicapas
|
||
- Base de APIs modernas
|
||
|
||
---
|
||
|
||
**Trampas típicas de examen**
|
||
- WS no es solo SOAP → REST también es Web Service
|
||
- SOAP = protocolo
|
||
- REST = estilo arquitectónico (no protocolo)
|
||
- JSON → típico de REST
|
||
- XML → típico de SOAP
|
||
|
||
---
|
||
|
||
**Resumen rápido**
|
||
- WS = comunicación entre aplicaciones
|
||
- SOAP (XML, pesado, formal)
|
||
- REST (JSON, ligero, actual)
|
||
|
||
---
|
||
|
||
### 2.6 Protocolos asociados
|
||
|
||
**HTTP / HTTPS**
|
||
- Protocolo principal de la web
|
||
- Modelo petición/respuesta
|
||
- HTTPS añade seguridad mediante cifrado
|
||
|
||
**TCP/IP**
|
||
- Base de las comunicaciones en red
|
||
- TCP: transmisión fiable
|
||
- IP: direccionamiento
|
||
|
||
**SSL/TLS**
|
||
- Protocolos de seguridad
|
||
- Proporcionan cifrado
|
||
|
||
**Otros protocolos**
|
||
- FTP: transferencia de archivos
|
||
- SMTP: envío de correo
|
||
- DNS: resolución de nombres
|
||
|
||
---
|
||
|
||
## 3. Ejemplo práctico
|
||
|
||
Aplicación web:
|
||
|
||
- Cliente: navegador
|
||
- Presentación: HTML, CSS, JavaScript
|
||
- Lógica: servidor de aplicaciones
|
||
- Datos: base de datos
|
||
|
||
Flujo:
|
||
1. Usuario realiza una acción
|
||
2. Se envía una petición HTTP
|
||
3. El servidor procesa la lógica
|
||
4. Consulta la base de datos
|
||
5. Devuelve la respuesta
|
||
|
||
---
|
||
|
||
## 4. Miniresumen
|
||
|
||
- Cliente/servidor: el cliente solicita y el servidor responde
|
||
- Multicapas: separación en presentación, lógica y datos
|
||
- Ventajas: modularidad, mantenimiento y escalabilidad
|
||
- Servicios web: comunicación entre aplicaciones
|
||
- REST es el modelo más utilizado actualmente
|
||
- Protocolos clave: HTTP/HTTPS, TCP/IP, SSL/TLS |