Arquitectura Cliente-Servidor: Conceptos Esenciales y Gestión de Sistemas Distribuidos

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,11 KB

Arquitectura Cliente-Servidor: Interacción y Transparencia

La interacción de usuarios con servidores se puede dar de dos formas:

  • Protocolo específico de la aplicación.
  • Protocolo independiente de la aplicación.

Transparencia en la Interacción Cliente-Servidor

La transparencia de acceso se logra a través de una matriz cliente, a partir de una definición de interfaz de lo que el servidor tiene que ofrecer. Esto oculta las arquitecturas de las máquinas y la comunicación real subyacente.

El middleware del cliente oculta la ubicación del servidor, facilitando una interacción fluida.

Estrategias de Resiliencia y Disponibilidad

Replicación y Tratamiento de Fallas

La replicación se implementa por medio de soluciones del lado del cliente.

El tratamiento de fallas incluye:

  • Enmascaramiento de fallas del lado del cliente.
  • Repetición de la conexión.

Modelos de Servidores y su Comportamiento

Servidor Iterativo vs. Servidor Concurrente

Servidor Iterativo: El servidor manipula la petición y, si es necesario, devuelve una respuesta.

Servidor Concurrente: El servidor no manipula la petición directamente, sino que usa hilos o procesos separados y queda en espera de la siguiente petición.

Comunicación y Puertos

El cliente envía la petición a un puerto en particular. Cada servidor atiende a un puerto específico.

Consideraciones de Diseño y Estado del Servidor

Problemas antes del diseño:

  1. Interrumpir un servidor. Mejor solución: Cliente/servidor pueden enviar datos fuera de banda, en otro puerto.
  2. Movilidad del servidor (si el servidor se desplaza o no).

Servidor sin estado (Stateless): No mantiene información persistente de los clientes, pero puede modificar su propio estado.

Servidor con estado (Stateful): Mantiene información persistente de los clientes.

Arquitecturas de Servidores Avanzadas

Servidores en Clúster

Colección de máquinas conectadas a una red, donde cada máquina ejecuta uno o más servidores.

Servidores Distribuidos

Los servidores anteriores son configurados de forma estática. Se utiliza una máquina separada para efectuar la administración. Se proporcionan varios puntos de acceso (ej. Servicio de DNS). Si un servidor falla, los clientes realizan varios intentos para reconectarse.

Administración de Servidores en Clústeres

Si p es la probabilidad de que un servidor esté fallando. Se asume que las fallas son independientes, entonces para un clúster de N servidores, la probabilidad de operar sin que haya un solo servidor con fallas es (1-p)N.

Ejemplo: Si p = 0.001 y N = 1000, la probabilidad es del 36% de que todos los servidores funcionen correctamente.

Migración de Código en Sistemas Distribuidos

Razones para la Migración de Código

  • Rendimiento.
  • Optimización de la capacidad de cómputo (menos importante que minimizar la comunicación).

Modelos para la Migración de Código

La migración de código puede implicar:

  • Comunicación enfocada al intercambio de datos entre procesos.
  • Movimiento de programas entre máquinas ejecutándose en el mismo destino.

Marco de trabajo (framework): Un proceso consta de tres segmentos:

  • Segmento de código: Instrucciones.
  • Recursos: Referencia a recursos externos.
  • Ejecución: Estado de la ejecución.

Tipos de Movilidad de Código

Movilidad Débil: Transferir solo el segmento de código.

Movilidad Fuerte: Transferir el segmento de código y el segmento de ejecución.

Movilidad Débil vs. Movilidad Fuerte: Un proceso puede detenerse y luego moverse a otra máquina para continuar su ejecución (característica de la movilidad fuerte).

Entradas relacionadas: