sarah shop assistant in reti ad-hoc marco montali
TRANSCRIPT
![Page 1: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/1.jpg)
SARAH
Shop Assistant in Reti Ad-Hoc
Marco Montali
![Page 2: SARAH Shop Assistant in Reti Ad-Hoc Marco Montali](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070312/5542eb5a497959361e8c6d78/html5/thumbnails/18.jpg)
Sviluppi futuri
• Location awareness per mostrare solo gli elementi della lista che si trovano nei dintorni
PRESENTATION
INPUT COMMAND OUTPUT COMMAND
SERVICES LOCATIONSERVICE
LOCATIONFILTER