UNIVERSITA’ DEGLI STUDI DI ROMA “SAPIENZA” Dipartimento di Informatica e Sistemistica Progetto e Sviluppo di un algoritmo per la gestione della Federazione Interdominio in un’architettura di Service Discovery Relatore: Prof. Francesco Delli Priscoli Correlatore: Ing. Vincenzo Suraci Candidato: XXX Roma, Febbraio 2008 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 BASIC SEMANTIC PRIVACY CONTEXT Maggiore informazione scambiata = Maggiore qualità per i risultati della query 2 Service Discovery in DAIDALOS II Caso Inter-dominio Intra-dominio SDS ? BASIC SEMANTIC PRIVACY CONTEXT SDS ? Domain D Domain B SDS ? ? Domain A ? ? SDS SDS Domain E Domain C 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 F-class 1 F-class 2 F-class 3 F-class 4 F-class 5 NONE BASIC SEMANTIC BASIC SEMANTIC PRIVACY BASIC SEMANTIC PRIVACY CONTEXT BASIC SEMANTIC PRIVACY CONTEXT 3 Federazione Interdominio FG3 BASIC SEMANTIC PRIVACY 3 SDS BASIC SEMANTIC PRIVACY CONTEXT BASIC SEMANTIC PRIVACY CONTEXT 4 FG4 SDS Domain D Domain B SDS 3 3 SDS BASIC SEMANTIC PRIVACY Domain C 4 Domain A 4 BASIC SEMANTIC PRIVACY CONTEXT SDS Domain E Gruppi di Federazione (FGi) Stabiliscono i “limiti” di ricerca per una query (Scope) Tutti i membri di un gruppo hanno rapporti di Federazione reciproci k ≥ i 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 4 Il monitoraggio dei membri di ogni gruppo Problema di ricerca su grafo 5 domain B 3 domain A 4 2 5 5 domain E 4 5 domain C domain D 2 4 domain F Esempio (B, C, E) (C, E, F) massimali (A, B, C, D) massimale e massima Grafo semplice, non orientato, pesato I nodi rappresentano i domini NODO = PEER dell’architettura 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 nessun’altra clique. Una clique è massima, se è massimale e di dimensione massima. Una clique non considera i valori dei pesi. Creazione dei gruppi di Federazione = Calcolo di tutte le clique massimali sul grafo di Federazione filtrato sui pesi 5 degli archi con valori decrescenti 5 2 Algoritmo – Grafo completo 3 B 5 A E 4 4 2 5 D filtro = 5 filtro = 4 5 C 5 4 2 filtro = 3 F filtro = 2 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) PROCEDURE int filtro = 5; Insieme<Gruppi> 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 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 6 Algoritmo – Ottimizzazione 3 B 5 A E 4? 4 2 5 D 5 C ? 5 4 ? 2 Un peer risale alle informazioni mancanti (archi) tramite scambio di messaggi con gli altri peer di interesse A X F 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 Ogni nodo costruisce un grafo parziale relativo al suo “vicinato” -> Su esso applica l’algoritmo Y 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) C Z 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) 7 Z > Y = invia Y (nasconde la maggiore FC -> PRIVACY) Jxta Requisiti dell’architettura 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à all’interno 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. 8 Scelte di progetto Linguaggio di programmazione JAVA 2 Standard Edition Infrastruttura peer-to-peer JXTA Librerie di gestione dell’oggetto “Grafo” JUNG, JGRAPHT opensource (Visualizzazione e algoritmo di Bron-Kerbosch) Scelte architetturali NetworkPeergroup Peergroup Network Federation Peergroup Rendezvous+Relay Peer 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 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. Tutti i peer allo startup appartengono al gruppo di default Network peergroup. All’interno 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. 9