Candidato: Daniele Spaccapeli
Relatore: Michele Loreti
Modello Client-Server
Modello Peer-to-Peer
P2P di seconda generazione
Esempi: BitTorrent, YaCy, CDN, Chord, Kademlia ...
Funzionalità generiche che facilitano lo sviluppo software
Framework P2P studiati:
Vediamo Pastry in dettaglio ...
sviluppato dalla Rice University e Microsoft Research
Caratteristiche:
Numero di salti per ricezione:
✗ | Documentazione | Reperibilità | Semplicità |
---|---|---|---|
JXTA | ✓ | ||
XNap | ✓ | ✓ | |
Pastry | ✓ | ✓ | ✓ |
Tipologie più comuni:
e Multicast ...
gruppo di destinatari è individuato dinamicamente in base alla valutazione di un predicato logico
/**
* Comunica il valore di verità di un attributo (positivo) al padre del
* nodo all’interno dell’albero multicast.
*
* @param attributo l'attributo da modificare
* @param valore_booleano valore - True, False per effettuare un unsubscribe
* @return True se l'operazione ha avuto successo, False altrimenti
*/
Bool set(Attribute attributo, Bool valore_booleano){...};
/**
* Comunica il valore di verità di un attributo (negativo) al padre del
* nodo all’interno dell’albero multicast.
*
* @param attributo l'attributo da modificare
* @param valore_booleano valore - True, False per effettuare un unsubscribe
* @return True se l'operazione ha avuto successo, False altrimenti
*/
Bool unset(Attribute attributo, Bool valore_booleano){...};
/**
* Serve per effettuare lo scambio di messaggi.
*
* @param messaggio messaggio da inviare
* @param formula_logica predicato logico per l'invio
* @return True se l'operazione ha avuto successo, False altrimenti
*/
Bool send(String messaggio, CNF formula_logica){...};
/**
* Utilizzato dall’agente per recuperare i messaggi ricevuti. I messaggi ricevuti potranno
* essere letti in maniera asincrona e verranno tutti memorizzati in una coda.
*
* @return Restituisce una lista di Stringhe, al primo posto il messaggio e al secondo
* la stringa che identifica la federazione da cui il messaggio proviene.
*/
String[] receive(){...};