Progetto e Sviluppo di un algoritmo per la gestione della Federazione Interdominio in unarchitettura di Service Discovery Candidato: XXX Roma, Febbraio 2008 UNIVERSITA DEGLI STUDI DI ROMA SAPIENZA Dipartimento di Informatica e Sistemistica Relatore: Prof. Francesco Delli Priscoli Correlatore: Ing. Vincenzo Suraci
2 Concetti Fondamentali Federazione Una associazione comprendente qualsiasi numero di generici domini DAIDALOS che cooperano in un determinato aspetto (Amministrazione, Tariffazione, Diritti e Obblighi tra i membri). Dominio DAIDALOS Dominio con funzioni di Authorization, Authentication, Accounting, Auditing and Charging (A4C). Query Specifica dei requisiti che i servizi desiderati da un utente devono possedere. Diversi tipi di informazioni aggregate in una query: Keywords per il servizio richiesto Descrizione semantica Informazioni di personalizzazione Informazioni di contesto SEMANTIC PRIVACY CONTEXT BASIC Maggiore informazione scambiata = Maggiore qualità per i risultati della query
3 Service Discovery in DAIDALOS II Classe di Federazione Misura del livello di fiducia tra due Operatori di Rete Maggiore la classe di Federazione, maggiore è il numero delle informazioni sensibili che si possono scambiare Domain D SDS Domain B SDS Domain E SDS Domain C SDS Domain A SDS ? ? ? ? ? ? SEMANTIC PRIVACY CONTEXT BASIC Caso Intra-dominioCaso Inter-dominio F-class 3 PRIVACY SEMANTIC BASIC F-class 2 SEMANTIC BASIC F-class 4 SEMANTIC PRIVACY CONTEXT BASIC F-class 5 SEMANTIC PRIVACY CONTEXT BASIC F-class 1 NONE
4 Federazione Interdominio Gruppi di Federazione (FG i ) Stabiliscono i limiti di ricerca per una query (Scope) Tutti i membri di un gruppo hanno rapporti di Federazione reciproci k i Domain D SDS Domain B SDS Domain E SDS Domain C SDS Domain A SDS FG 3 SEMANTIC PRIVACY CONTEXT BASIC SEMANTIC PRIVACY BASIC SEMANTIC PRIVACY BASIC FG 4 SEMANTIC PRIVACY CONTEXT BASIC Scopo della Tesi Creazione di moduli software basati su tecnologie p2p e loro integrazione nel Service Discovery Server di ogni Dominio DAIDALOS per permettere: La comunicazione tra essi (segnalazione e inoltro query) La creazione dei Gruppi di Federazione, basati sui rapporti di Federazione Interdominio Il monitoraggio dei membri di ogni gruppo SEMANTIC PRIVACY CONTEXT BASIC
5 Problema di ricerca su grafo Creazione dei gruppi di Federazione = Calcolo di tutte le clique massimali sul grafo di Federazione filtrato sui pesi degli archi con valori decrescenti 5 2 domain B domain A domain D domain C domain E domain F Grafo semplice, non orientato, pesato I nodi rappresentano i domini NODO = PEER dellarchitettura p2p Gli archi le relazioni di Federazione tra essi ARCO = Classe di Federazione tra PEER Alcune definizioni. G=(V, E) Completo, se ogni coppia di vertici è unita da un arco Per un sottoinsieme S di V, G(S) è il sottografo indotto da S. G(S)=(S, E) S è una clique(cricca), se G(S) è completo e non è contenuto in nessun altro sottografo completo di G. Una clique è massimale se non è contenuta in nessunaltra clique. Una clique è massima, se è massimale e di dimensione massima. Una clique non considera i valori dei pesi. Esempio (B, C, E) (C, E, F) massimali (A, B, C, D) massimale e massima
6 Algoritmo – Grafo completo B A D C E F PROCEDURE int filtro = 5; Insieme federationGroups = {} BEGIN WHILE(filtro 2) { Elimina dal grafo tutti gli archi con peso w < filtro; Sul grafo risultante calcola tutte le clique massimali; Per ogni clique (p1,..,pn) trovata { IF(non esiste in federationGroups un insieme che ha come membri tutti e soli i nodi della clique) aggiungi FG_filtro(p1,..,pn) a federationGroups; } filtro- -; } RETURN federationGroups; END filtro = 5 FG_5(A, B, D), FG_5(E, F) FG_4(B, C), FG_4(C, E, F) FG_3(B, C, E) FG_2(A, B, C, D) filtro = 4filtro = 3filtro = 2 Calcolo di tutte le clique massimali = Algoritmo di Bron-Kerbosch(1973) Calcola tutte le clique in un grafo in tempo lineare (relativamente al numero delle clique) Ancora ampiamente usato e considerato uno dei più veloci algoritmi
7 Algoritmo – Ottimizzazione Il precedente approccio Si basa sulla conoscenza completa del grafo di Federazione Un peer non conosce i rapporti di Federazione tra tutti i domini della rete, ma solo i suoi rapporti con i suoi vicini! Un nodo (che rappresenta un peer) deve solamente conoscere il valore dei pesi degli archi tra tutti i nodi a lui adiacenti Su esso applica lalgoritmo Ogni nodo costruisce un grafo parziale relativo al suo vicinato -> Su esso applica lalgoritmo B A D C E F ? ? ? Problema del triangolo Richiesta di A (Y X) Il richiedente chiede il valore di Z al peer con cui ha Classe di Federazione (FC) maggiore (B) Risposta di B Il peer invia il valore minimo della propria conoscenza sui valori degli archi del triangolo Z Y = invia Z (valore esatto) Z > Y = invia Y (nasconde la maggiore FC -> PRIVACY) Un peer risale alle informazioni mancanti (archi) tramite scambio di messaggi con gli altri peer di interesse
8 Jxta Requisiti dellarchitettura peer-to-peer Agevole scambio di messaggi tra peers Possibilità di creazione di aree private virtuali (Gruppi di Federazione) Monitoraggio tra i membri di un gruppo JXTA (SUN Microsystems) Protocolli che standardizzano il modo in cui i peers Si scoprono nella rete Si auto-organizzano in gruppi (Peergroups) Pubblicano e scoprono le risorse messe a disposizione della rete Comunicano tra loro Monitorano la loro attività allinterno di un gruppo Concetti fondamentali Advertisement ogni risorsa della rete Jxta è rappresentata da un Adv. Si scopre una risorsa cercando per il relativo advertisement. Peer entità che implementa uno o più protocolli Jxta PeerGroup collezione di peers che si uniscono per interessi comuni. Pipe meccanismo per la comunicazione tra peers.
9 Scelte di progetto Linguaggio di programmazione JAVA 2 Standard Edition Infrastruttura peer-to-peer JXTA Librerie di gestione delloggetto Grafo JUNG, JGRAPHT opensource (Visualizzazione e algoritmo di Bron-Kerbosch) Scelte architetturali Network Peergroup Federation Peergroup Rendezvous+Relay Peer Edge peer Tutti i peer allo startup appartengono al gruppo di default Network peergroup. Allinterno del Net peergroup viene creato un ulteriore Federation peergroup accessibile solo ai peers che implementano i DAIDALOS domains. Federation peergroup è il gruppo base per la comunicazione tra peers. Rendezvous+Relay peer Peer di infrastruttura. Aiuta nella propagazione dei messaggi e archivia gli advertisement usati dagli edge peer per comunicare. Fornisce connettività ad edge peers vincolati dietro Firewall e/o NAT. Edge peer Implementa il DAIDALOS domain. Comunica con gli altri edge peers per ricostruire il proprio grafo parziale. A ricostruzione ultimata ricava i Gruppi di Federazione e vi si unisce. Network Peergroup