Definición
La arquitectura cliente-servidor se basa en la interacción entre un cliente, que realiza peticiones, y un servidor, que las responde. Aunque este modelo puede aplicarse a programas en una sola computadora, su mayor ventaja se aprecia en sistemas multiusuario distribuidos a través de una red.
Ventajas y Desventajas
Ventajas
- Centralización del control: El servidor gestiona los accesos, recursos e integridad de los datos, evitando que clientes no autorizados o defectuosos dañen el sistema. Facilita la actualización de datos y recursos en comparación con las redes P2P.
- Escalabilidad: Permite aumentar la capacidad de clientes y servidores de forma independiente. Se pueden añadir o mejorar nodos (clientes y/o servidores) en cualquier momento.
- Fácil mantenimiento: Las funciones y responsabilidades están distribuidas, lo que permite reemplazar, reparar, actualizar o trasladar un servidor sin afectar significativamente a los clientes. Esta independencia se conoce como encapsulación.
Desventajas
- Congestión del tráfico: Un gran número de peticiones simultáneas al mismo servidor puede sobrecargarlo. A mayor número de clientes, mayores problemas para el servidor. En las redes P2P, el ancho de banda mejora con más nodos, ya que cada nodo actúa como servidor.
- Menor robustez: Si un servidor en el modelo C/S clásico cae, las peticiones de los clientes no pueden ser atendidas. En las redes P2P, los recursos están distribuidos en varios nodos, permitiendo que la descarga continúe incluso si algunos nodos abandonan.
Características de la Arquitectura Cliente-Servidor
- Se establece una relación entre procesos distintos, que pueden ejecutarse en la misma máquina o en máquinas diferentes.
- Combina un cliente que interactúa con el usuario y un servidor que interactúa con los recursos compartidos.
- Se establece una relación de muchos a muchos (múltiples clientes pueden acceder a múltiples servidores).
Tipos de Servidores
- Servidor concurrente: Atiende las peticiones de cada usuario y escucha a los demás, manteniéndolos en espera.
- Servidor interactivo: Solo atiende la petición que se le está ejecutando, sin escuchar a los demás. Espera la llegada de un cliente y procesa su requerimiento.
Estructura de Servidores
- Estructura lógica: Se refiere al comportamiento del procesamiento de datos y las respuestas que envía. Depende de la estructura física.
- Estructura física: Incluye procesadores, fuente de poder y otros componentes de hardware. De ella depende la estructura lógica.
Característica resaltante: Extracción en caliente (permite quitar el dispositivo mientras el equipo está encendido).
Servidor Proxy
Un servidor proxy filtra el tráfico de la red para evitar colapsos.
Tipos de Clientes
- Clientes FTP: Facilitan la transferencia de datos.
- Cliente de Correo: Gestionan el envío y recepción de correos electrónicos.
- Cliente Híbrido: Tienen capacidad de procesamiento y requieren soporte del procesador.
Comportamiento de un Servidor
Un servidor debe recibir y entregar las peticiones del cliente de manera ordenada, manteniendo una comunicación homogénea con la estación de trabajo.
Herramientas de Implementación
Interfaz Socket
Socket: Un socket es un punto de comunicación en la capa 3 y 4 del modelo OSI por el cual un proceso puede emitir o recibir información.
Parámetros de un Socket
Esta primitiva permite la creación e inicialización de un socket en las tablas del sistema de gestión de archivos (tabla de descriptores de procesos, tabla de archivos y estructuras de datos). Las características del socket incluyen:
- Tipo, dominio y protocolo.
- Estado del socket (conectado, enlazado, en estado de recibir o de emitir).
Tipos de Sockets
- Socket orientado a conexión: Se utilizan para establecer conexiones y enviar datos mediante el protocolo TCP.
- Socket orientado a no conexión: Se utilizan para transmitir datos mediante el protocolo UDP.
Máquinas Virtuales
Una máquina virtual es una emulación de una computadora a partir de software, no una simple computadora abstracta.
Ventajas
- Permite tener varios sistemas operativos sin necesidad de particiones o discos duros adicionales.
- Facilita la prueba de sistemas operativos sin necesidad de formatear.
Desventajas
- Puede causar lentitud en el computador anfitrión, que debe tener una capacidad notable o ser potente.
Característica
Los procesos ejecutados en una máquina virtual están limitados por los recursos y abstracciones proporcionados por ella, impidiendo que se»escape» de la computadora virtual.
VirtualBox (desarrollado por Sun Microsystems)
Características
- Modularidad: Se puede controlar desde varias interfaces a la vez.
- Uso de XML: Las definiciones de las máquinas virtuales se guardan en formato XML, facilitando su portabilidad.
- Optimización del sistema virtual instalado: Posee software especial para mejorar el rendimiento y la integración en máquinas virtuales Windows y Linux.
Virtual PC
Características
- Fácil instalación del modo Windows XP.
- Compatibilidad con USB, aplicaciones de conexión directa.
- Integración de carpetas entre el host y el invitado.
- Uso compartido del portapapeles.
- Redirección de impresoras.