SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

18
SARAH Shop Assistant in Reti Ad-Hoc Marco Montali

Transcript of SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Page 1: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

SARAH

Shop Assistant in Reti Ad-Hoc

Marco Montali

Page 2: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

SARAH

Obiettivo

• Software per il coordinamento di un gruppo di benefattori che aiutano un disabile a fare la spesa

Condivisione della lista della spesa e sincronizzazione

degli aggiornamenti

Page 3: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Scenario

• Necessità di mettere in comunicazione dispositivi– Mobili– Eterogenei

• In un contesto– In continua evoluzione– Senza infrastrutture di rete (niente

cavi, access point, ecc. ecc.)

Mobile Ad-Hoc Network

Contesto dinamico e soggetto a perdita di

messaggi, disconnessioni

improvvise, partizionamenti...

Page 4: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Semplificazione

• Tipologia di rete molto difficile da gestire

• Semplificazione: utilizzo di un middleware

• Deleghiamo al middleware la gestione della rete e ci concentriamo sulle problematiche di livello applicativo

La scelta di un middleware adatto, oltre a scaricarci da una

serie di problematiche, può darci un supporto importante a

livello applicativo

Page 5: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

AGAPE

• Vogliamo che il middleware:– Gestisca la rete (comunicazione, routing, …)– Renda disponibile l’astrazione del concetto

di gruppo– Permetta di capire chi è presente

attualmente in rete, qualificandolo attraverso un profilo (presence awareness)

• La scelta è caduta su AGAPE (Allocation and Group Aware Pervasive Environment)

Possiamo dedicarci al livello applicativo

Coordinamento a livello di gruppo = disabile + insieme

di benefattori che hanno deciso di aiutarloCi interessa capire che un

item è stato preso, ma anche da chi (attribuzione di

responsabilità)

Page 6: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Architettura di SARAHLivello di interazione

con l’utente

separazione completa tra applicazione e

presentazione

Servizi di coordinamento e

processori dei messaggi

Entità e gerarchia dei messaggi

Page 7: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Presentation layer• Interfaccia grafica

– Pannello per inserire la propria lista e richiedere aiuto

– Per ogni gruppo di lavoro un Tab Panel (identificato dal nick del disabile che ha chiesto aiuto e associato al corrispondente Group ID)

– Ogni Tab Panel mostra• la lista della spesa condivisa, con informazioni su chi ha

preso cosa e possibilità di spuntare un elemento

• L’elenco dei partecipanti attualmente “visibili”

• Tecnologia JAVASpeech per comunicare l’evoluzione del lavoro di gruppo al disabile

Page 8: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Entità e messaggi

Generica entità dell’

applicazione

Elemento della spesa

Lista della spesa

Aggiornamento di un elemento

della lista

Richiesta del permesso per modificare un

elemento

Richiesta di aiuto ai

benefattori

Accettazione della richiesta

d’aiuto

Spedizione di un gruppo di

elementi (lista)

Richiesta di riconciliazione

delle liste (dopo un

partizionamento)

Page 9: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Servizi e processori

• Il layer dei servizi e dei processori dei messaggi è il cuore dell’applicazione– Realizza i protocolli di coordinamento– Si interfaccia con il middleware

• Compiti fondamentali dei servizi:– Filtrare le informazioni riguardanti la rete e rendere

visibili quelle di interesse– Gestire la spedizione dei messaggi– Gestire la ricezione dei messaggi invocando il

corrispondente processore• I processori dei messaggi interpretano tipo e

contenuto dei messaggi eseguendo una serie di azioni

meccanismo double-dispatch per separare la

logica di gestione dei messaggi dalle entità

“messaggio”

Page 10: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Servizi• Servizi principali

– HelpService (lato disabile)• Creazione gruppo di lavoro per il disabile e richiesta di

aiuto• Comunicazione ai benefattori degli aggiornamenti sulla

lista– CharityService (lato benefattore)

• Gestione delle interazioni iniziali, per mettere il benefattore in condizioni di lavorare

– ServantService (lato benefattore)• Invio e ricezione messaggi relativi a modifiche sulla lista

• Inoltre, un servizio di presenza– Per capire chi ha preso cosa– Per modificare il protocollo di coordinamento in base

al contesto

Ogni gruppo rappresenta un’area di lavoro a sé stante

Un servizio di presenza per ogni gruppo di lavoro

Un singleton PresenceServicePooler restituisce il servizio di presenza dato un GID (o il PID del corrispondente disabile)

Page 11: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

ComandiComandi che il livello di

presentazione usa per scatenare azioni nei layer sottostanti

Comandi utilizzati dal livello dei servizi per dare delle informazioni all’utente

L’interazione con i servizi di presenza è differente

Registrazione presso il servizio e notifica al cambiamento

dell’insieme dei componenti del gruppo

Page 12: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Protocolli di coordinamento• Obiettivo ideale

• Rilassamento

• Però

• Quando possibile, abbiamo bisogno di qualcuno che scelga uno dei “contendenti”, con il vantaggio che

Sincronizzazione perfetta delle liste di ogni componente del gruppo

Irrealizzabile!Siamo in una rete ad-hoc:

semantica best-effort, perdita messaggi, partizionamenti, …

Ammettiamo che due utenti prendano lo stesso elemento

Vogliamo minimizzare il numero di tali inconsistenze

Basta sceglierne uno, non ci sono mai criteri di preferenza

Scegliamo il disabile come risolutore dei conflitti

Ha > potere decisionale: tutti gli aggiornamenti devono essere

approvati da lui

E se perdiamo la sua visibilità?

Page 13: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Handshake iniziale

help

help

help

milk -

eggs -

milk -

eggs -

milk -

eggs -

AIUTO!

acksend list

Sono occupat

o

acksend list

Tutti i benefattori che hanno accettato sono agganciati al gruppo e pronti per lavorare (possiedono copia della lista)

Page 14: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Aggiornamento

milk

eggs

milk

eggs

milk

eggsavverti (d, prende, milk)

d

b1

b2

prendo il latte

milk X d

eggs

milk X d

eggs

avverti (d, prende, milk)

Multicast come N unicast

milk X d

eggs

Page 15: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Aggiornamento

milk

eggs

milk

eggs

milk

eggsavverti (b2, prende, milk)

d

b1

b2

prendo il latte

milk X b2

eggs

milk X b2

eggs

avverti (b2, prende, milk)

milk X b2

eggs

chiedi (b2, può prendere, milk)

Page 16: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Aggiornamento

milk

eggs

milk

eggs

milk

eggsavverti (b2, prende, milk)

d

b1

b2

prendo il latte

milk X b2

eggs

milk X b2

eggs

avverti (b2, prende, milk)

milk X b2

eggs

chiedi (b2, può prendere, milk)

chiedi (b1, può prendere, milk)

prendo il latte b2 è

arrivato prima...

Page 17: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Perdita di messaggi

milk

eggs

milk

eggs

milk

eggsavverti (b2, prende, milk)

d

b1

b2

prendo il latte

milk X b2

eggs

milk X b1

eggs

avverti (b2, prende, milk)

milk X b2

eggs

chiedi (b2, può prendere, milk)

chiedi (b1, può prendere, milk)

prendo il latte b2 è

arrivato prima...

Il disabile non risponde… meglio

essere conservativi

Page 18: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.

Sviluppi futuri

• Location awareness per mostrare solo gli elementi della lista che si trovano nei dintorni

PRESENTATION

INPUT COMMAND OUTPUT COMMAND

SERVICES LOCATIONSERVICE

LOCATIONFILTER