Architettura Client-Server e Peer-to-Peer

Apr 8, 2025

Modello Client-Server

Introduzione

  • Il web permette ai computer di condividere ed scambiare dati in modo semplice e affidabile.
  • I dati possono includere video, immagini, documenti, ecc.
  • Il modello client-server (CS) è un approccio comune per la gestione delle richieste di dati.

Cos'è un Client

  • Un client può essere sia un dispositivo ("client machine") che un programma.
    • Client Machine:
      • Dispositivi usati per accedere al web.
      • Esempi: laptop, desktop, smartphone, tablet.
    • Client Program:
      • Software che invia richieste tramite il web.
      • Esempio: browser, programmi di word processing e photo editing con contenuti online.

Cos'è un Server

  • Un server è un programma, non un dispositivo.
  • Computer ad alte prestazioni specializzati per fornire servizi ad altri programmi ("client").
  • Un singolo server può servire più client contemporaneamente.

Tipi di Server

  • Web Server:
    • Esempio: Apache, gestisce richieste HTTP.
  • Database Server:
    • Gestisce database, ad esempio SQL.
  • Altri tipi di server:
    • Server per memorizzare dati e applicazioni web, servendo centinaia di migliaia di client.

Funzionamento del Modello Client-Server

  • Il modello è un'architettura del web che divide i computer in due categorie:
    • Client: fanno richieste di servizi.
    • Server: forniscono i servizi.
  • Funziona attraverso un ciclo di richieste e risposte tramite messaggi HTTP.

Alternative al Modello Client-Server

  • Modello Peer-to-Peer (P2P):
    • Struttura decentralizzata, non ci sono client o server.
    • Ogni computer può fare richieste e fornire risposte.
    • Esempio: BitTorrent, protocolli di videochat.

Riepilogo

  • Client: macchina o programma usato per fare richieste sul web.
  • Server: programma che riceve richieste e invia risposte.
  • Modello Client-Server: architettura centralizzata, classifica i computer in due sezioni.
  • Peer-to-Peer: tutti i computer funzionano alla stessa maniera, senza distinzione tra client e server.