Procesamiento Distribuido

Computación Cliente/Servidor

Aplicaciones cliente/servidor

Tipos de apps

Hay distintas implementaciones de procesamiento, que definen cómo se divide el trabajo entre el cliente y el servidor: Pasted image 20231129215121.png

  1. Basado en el host: Se usa en entornos mainframe, y el servidor hace todo el trabajo
  2. Basado en el servidor: El cliente sólo se encarga de presentar la interfaz al usuario, el servidor hace todas las lógicas de negocio
  3. Basado en el cliente: Al contrario que el anterior, el cliente se encarga de todo lo que pueda
    • Esto excluye la validación de datos, y la lógica de bases de datos
  4. Cooperativo: Ambas partes se distribuyen el trabajo de la forma más eficiente posible
  5. Arquitectura de tres capas
    • En lugar de haber sólo una capa de cliente y una capa de servidor, ahora hay dos capas de servidor: una capa central y un servidor en segundo plano (backend)
    • Estos servidores de capa central suelen ser pasarela del cliente al backend: balanceando cargas (comunicando el cliente con el servidor con el CPU más libre), convirtiendo entre protocolos de comunicación, combinando datos de distintas fuentes, etc

Apps de bases de datos

Middleware

Ventajas

  • El uso de Middleware puede mejorar el rendimiento y escalabilidad de los sistemas
  • Pueden proporcionar servicios de gestión y monitorización

Paso de mensajes distribuido

Como los sistemas de procesamiento distribuidos se componen de varias computadoras separadas pero trabajando en conjunto, los procesos no pueden compartir memoria principal. Por esto, deben usar técnicas basadas en el paso de mensajes para compartirse información o mandatos.
Pasted image 20231130224132.png

Fiable o no fiable

Bloqueante o no bloqueante

Llamadas a procedimiento remoto

Permiten a dos aplicaciones en distintas máquinas interactuar usando llamadas a procedimientos como si fueran procedimientos locales
Pasted image 20231130225944.png

Ventajas

  • Es una abstracción estandarizada ampliamente usada y aceptada
  • Permite especificar interfaces remotas como operaciones con nombre y parámetros con tipos de datos
    • Por esto, el código de comunicación puede ser escrito programáticamente
    • Por esto, los módulos cliente y servidor son muy portables entre distintas computadoras y SO

Enlace cliente-servidor

Clusters

Un conjunto de computadoras (nodos) que trabajan juntos como si fueran una sola entidad.
Están conectadas mediante una red de alta velocidad y comparten recursos y tareas de procesamiento.

Ventajas

  • Favorece la alta disponibilidad (pues si se cae un nodo, puede ser reemplazado por otro)
    • Ejemplo de nodo caído (Cortesía de: SYSACAD) bnmamz95cps21.jpg
  • Escalabilidad: Más nodos = más CPU para distribuir = más rendimiento
  • Procesamiento distribuido: Permite paralelizar tareas mucho más