INDIETRO SU AVANTI

Applicazioni a ruoli paritetici: peer-to-peer

Per poter compiere un'istanza di comunicazione occorrono esattamente due processi applicativi comunicanti tramite la rete. Situazioni in cui vi siano molti processi comunicanti tra loro sono riconducibili a unioni di istanze di comunicazione tra coppie di processi.

In una istanza di comunicazione necessariamente uno dei due processi prende l'iniziativa prima: di aprire il canale di comunicazione, di inviare il primo pacchetto, ecc. L'altro processo risponde a questa iniziativa secondo il particolare protocollo con cui e' stato programmato.

Quando il ruolo di chi prende l'iniziativa puo' essere assunto indifferentemente in tempi diversi dall'uno o dall'altro processo si parla di processi a ruoli paritetici o peer-to-peer communication.

In altre parole: il codice eseguibile dei due processi comunicanti e' lo stesso.

Per questo tipo di processi vi e' un problema sull'uso del canale di comunicazione, che ha solitamente una polarita' intrinseca in entrata o in uscita da un sistema.

Ciascun processo comunicante apre dapprima il canale in modalita' passiva con polarita' in input. Il processo informa l'utente della disponibilita' del canale. Il primo utente che decide di inviare dati all'altro forza il suo processo in ruolo attivo, e la polarita' del proprio lato del canale di comunicazione diventa in output. Corrispondentemente l'altro processo viene forzato in modo passivo.

Al termine dell'istanza di comunicazione e' necessario o che entrambi i processi terminino e ripartano, oppure che risettino il loro stato entrambi a modalita' passiva.

A livello applicativo le applicazioni a ruoli paritetici sono in via di estinzione e soppiantate, ove occorre, da coppie reciproche di applicativi client/server. A livelli piu' bassi esistono protocolli di comunicazione che funzianono in modalita' piena peer-to-peer, altrimenti detta bilanciata. E' il caso di molti derivati dello HDLC, come ad esempio il PPP.