TXJA --- Reti logiche fuzzy distribuite --- Reti di Calcolatori LS Davide Sottara
28/09/06 Introduzione : Concetti e Strumenti NeuLoNet Reti che supportano la logica (fuzzy) dei predicati Motore inferenziale parallelo e distribuibile Logica Razionale Estensione della logica fuzzy Particolarmente adatta alla distribuzione JXTA Middleware P2P Adatto ad ambienti dinamici TuCsON Infrastruttura di comunicazione basata su centri di tuple reattivi Integra un motore Prolog
28/09/063 Logica : dai programmi alle reti c(X) :- q(X) r(X). c(X) :- p(X) r(X). → C Q → R P “Or parallelismo” Tutti i rami vanno esplorati SWA In caso di fallimento, si assume “unknown”
28/09/06 Controllo fuzzy distribuito → C Q → R P
28/09/06 Imp 3 Predicati : Valutazione Tre livelli di definizione: Pred Semantica (JXTA Class ) Pred 1 Pred N Criterio (JXTA Spec ) Imp 1 Imp 2 Imp 1 Metodo (JXTA Impl )
28/09/06 Predicati Nodi Quattro classi di Spec : 1.Memoria 2.Valutazione diretta 3.Consulenza esterna 4.Combinazione ( operandi ) P Op Mem Consult Ev Q RS P
28/09/06 Deployment : Gruppi Peer JXTA ospitano i Nodi in base agli Adv. locali Network Layer JXTA Layer TXJA Layer P P Q JXTA Group P JXTA Discovery
28/09/06 Fault tolerance : best effort Ambiente dinamico : i peer non danno garanzie Replicazione SWA PP Q P ? = P P1P1 P2P2 C Ma anche cambi di programma voluti …
28/09/06 Protocolli di comunicazione Scambi frequenti : protocolli elementari basso overhead Risoluzione “backward” Client / Server (default) Risoluzione “feed-forward” Publish / Subscribe PP Q Ask Tell JXTA Msg : {Req,Ans} { } [0,1] 0 Subscribe JXTA Pipes
28/09/06 Flusso continuo : Query non bloccanti Massimo parallelismo Ordine non garantito Ordinamento a carico del cliente Query logiche : no stato : Query sequenziali Alternative più costose... PP Q 1:Ask 11 3:Tell 21 2:Ask 21 4:Tell 22
28/09/06 Replicazione a copie attive Il client interroga un solo server (…) Il modulo di Consult, se presente, propaga entro il gruppo Il server unisce le risposte e ritorna PP 1:Ask 2: Consult 4: Advise 5: Merge 6: Tell Consult non propaga ulteriormente Advise basate solo sul contenuto della memoria 3: Recall
28/09/06 QoS Più servitori alternativi Ogni richiesta diretta ad uno solo Eventualmente consulto inter-gruppo… PP Selezione casuale pesata: Servitore efficiente se risponde entro i timeout. Servitore efficace se fornisce risposte certe. Servitore fidato se efficiente ed efficace. Maggiore fiducia Maggiore probabilità di essere scelto ??
28/09/06 Velocità Risposte attese entro un tempo massimo T Query ordinate per urgenza U T = (1-U) T max Ad ogni passo U aumenta TTL previene loop Consult : U = 1 Ask 1 Ask 2 Ask’ 2 Ask’ 1 Ogni modulo ha una velocità S Interrogato solo se S U S Mem = 1 Sempre interrogato ! S Consult < 1 S Op < 1
28/09/06 Memoria Memorie cache ottimali se sincronizzate Troppo costoso ! Copie (quasi) fredde PP 6: Tell 1:Ask Affermazioni “nuove” ed “utili” vengono memorizzate Successivamente diffuse Con probabilità pari alla certezza 7: Remember? 8: Remind