Mobile Robots Running Tuple Support Implementazione di un semplice middleware per la gestione della informazione di stato globale in una colonia di robots.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Estendere i linguaggi: i tipi di dato astratti
Informatica Recupero debito quarto anno Terzo incontro.
Obiettivo della tesi Percorso
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Middleware per MANET WP3 Alessandro Ghioni
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Progetto realizzato da: Francesco Seccia Matr Marco Spinelli Matr
Struttura dei sistemi operativi (panoramica)
Sistemi Operativi GESTIONE DEI PROCESSI.
Daniel Stoilov Tesi di Laurea
SARAH Shop Assistant in Reti Ad-Hoc Presence Awareness, modalità disconnessa e dinamiche di update Antonio Gaetani.
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Delay Tolerant Networking Service per SAMOA. Il framework SAMOA SAMOA è un framework che consente di gestire e popolare la rete sociale e propagare a.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.
Global Virtual Tuple Space
Stefano Lama Stefano Maggiore Giacomo Tartari. Scenario applicativo Crescente diffusione di dispositivi dotati di connettivita wireless porta a… … possibilità
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
DEIS Università di Bologna
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Introduzione alla modellazione di sistemi interattivi
Database per dati Storico-Geografici Salvatore Mazzurco
Concorrenza e Sincronizzazione di Thread e Processi
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Introduzione alla programmazione Object Oriented
Agenti Mobili Intelligenti e Sicurezza Informatica
Reti di Calcolatori LS Professor Antonio Corradi Ingegner Dario Bottazzi Presentazione di Francesco Fiori.
Il modello di riferimento OSI
Simulatore per un servizio di consistenza su architettura Grid
Applicazioni di intelligenza artificiale LS Manni Tiziano
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
L’architettura a strati
Dr. Mario Marin Responsabile S.D.D. Residenzialità Extraospedaliera PROGETTO COT.
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Reti di calcolatori LS Enrico Pirazzini SSB un middleware basato su JMS per l'invocazione di servizi remoti.
Un sistema per la replicazione ottimistica in una rete di pari Progetto di Reti di calcolatori LS Federico Grassi a.a. 2004/2005.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Mobile Agent and Enterprise Architecture Integration Il gestore della mobilità degli agenti Raffaelli Massimo matricola
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
Servizio di newsgroup con replicazione dei server Studente: Letizia Cheng Cheng Sun Matricola: Reti di Calcolatori LS – Prof. A. Corradi A.A. 2003/2004.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
MUSE 2 WIFI MUSic Everywhere with WIFI presentazione di Pierangeli Diego Membri del gruppo: Bambini Stefano Bergamini Andrea Pierangeli Diego AA 2006/2007.
B3Discovery: Infrastruttura di Discovery distribuita utilizzando l’architettura JXTA Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2005/2006.
R.E.V.E.N.G.E. RELIABLE AND VERSATILE NEWS DELIVERY SUPPORT FOR AGENCIES Corso di Reti di Calcolatori LS – AA Professore: Antonio Corradi Referente.
1 GVTS Global Virtual TupleSpace Nicola Zanella. 2 Fornire un’astrazione di spazio di tuple condiviso Concetto di gruppo Presence awareness e gestione.
Reti di Calcolatori LS - Fabio Poli 15 Giugno 2006 Sviluppo di un player di Campo Minato multigiocatore con supporto di Chat MultiCast.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Mots, programmazione collaborativa di Ettore Ferranti.
1 FORMA-N è una combinazione di processi di coordinamento prevalentemente non gerarchici e di strutture organizzative basate sull’integrazione per linee.
Network (Rete) in Organizzazione Aziendale
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Il Sistema Operativo Processi e Risorse
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

Mobile Robots Running Tuple Support Implementazione di un semplice middleware per la gestione della informazione di stato globale in una colonia di robots

Coordinazione di Robots Problema: colonia di robots (agenti) con esigenza di mantenere una informazione globale (o stato globale) al fine di agire complessivamente in modo coordinato. ? ? ? ? ? ?

Analisi del problema (I) Capacità di comunicazione: alcuni nodi sono connessi direttamente, altri no (es. a causa della morfologia del territorio)

Analisi del problema (II) Capacità di comunicazione: La capacità di comunicazione, intesa come relazione sull’insieme dei robots, è perciò rappresentabile attraverso un grafo che connette con archi solo i nodi che possono comunicare direttamente R1R4 R3 R2 R6 R5 R7 R8 R11 R10 R9

Analisi del problema (III) Capacità di comunicazione: a ciò va aggiunto il fatto che i robots sono mobili e quindi la relazione di connessione diretta varia nel tempo in modo non predicibile. HP: per ogni nodo esiste sempre un cammino di archi che lo connette ad un qualunque altro. non partizionamento nel tempo della rete per permettere la coordinazione tramite scambio di informazioni Per queste caratteristiche l’interconnessione analizzata rappresenta un particolare tipo di MANET

Comunicazione Modalità di comunicazione: diretta: limitata ai nodi vicini, non necessita di coordinamento indiretta (oltre l’insieme dei nodi in connessione diretta): necessita del coordinamento delle entità del sistema. Necessaria per permettere ad un robots di influenzare il comportamento della colonia. globale: caso limite della comunicazione indiretta. Permette ad un robot di notificare la sua informazione all’intera colonia. Fornita dalla relazione Necessità di coordinare gli agenti

Semplice esempio (I) GOAL: estrazione di ferro e nichel AGENTI del sistema: 2 robot specializzati in estrazione di ferro 1 robot specializzato in estrazione di nichel 1 robot specializzato in riparazione, manutenzione tutti i robot con capacità esplorative SITUAZIONE INIZIALE: robots collocati in un territorio vasto e non noto

Semplice esempio (II) I robots decidono quale parte della loro informazione sia utile condividere con la colonia I robots acumulano informazioni relative al territorio e al loro funzionamento La mappa globale deve essere nota a tutti e aggiornata nel tempo

Semplice esempio (III) Conclusioni: Ogni robots accumula informazioni durante l’esplorazione del territorio Emerge la necessità di condividere parte dell’informazione raccolta dai robots al fine di ottenere coordinazione globale (nell’esempio tramite la mappa globale) Informazione globale (mappa) intesa come informazione comune a tutti gli agenti L’informazione una volta identificata come stato globale deve perciò appartenere non ad un nodo specifico ma a tutta la colonia

Stato e spazi di tuple Uno spazio di tuple è in grado di modellare un insieme di informazioni, strutturate secondo una relazione nota, di diversa natura, e quindi si presta anche per modellare l’informazione di stato dei robots Soluzione in accordo ad altre proposte per la modellazione di informazioni in reti MANET Particolarmente indicato per il disaccoppiamento indotto in tempo e conoscenza reciproca S

Stato e spazi di tuple Modello di riferimento: LINDA Altri modelli adottati in ambito MANET: GVDS-based systems LIME, XMiddle, etc. GVDS intesa come struttura dati condivisa fra i nodi, visione globale della informazione (tuple space) presente sulle singole entità LIME core idea: Transparent Context Maintainace spazio di tuple globale come partizionato sui nodi e transient sharing come meccanismo per ottenere visione globale ottimo funzionamento per i nodi vicini, mancanza di pattern per la diffusione globale di informazione TOTA?

TOTA: tuple on the air La tupla è definita come una coppia: T=(P,C) P: regole di propagazione C: contenuto Attraverso una copia del middleware presente su ogni nodo (interfaccia standard) la tupla può: decidere se entrare nel nodo modificare il proprio contenuto C modificare le regole di propagazione P modificare l’ambiente locale del nodo propagarsi verso i vicini Side effects sulla tupla Side effects sul nodo Utilizzo API del nodo

TOTA: tuple on the air In TOTA la tupla è responsabile della propria propagazione e degli effetti che genera nei nodi visitati Concettualmente quindi essa viene iniettata attraverso alla rete non appartenendo quindi ad un nodo specifico Questo modello è concettualmente in accordo all’idea di stato globalmente condiviso che si vuole realizzare per il coordinamento dei robots 1131 P RULES

Realizzazione di un semplice Middleware basato su TOTA Il middleware è composto in tre parti distinte: ENGINE o Tuple Support: presente sul nodo e accessibile alle tuple Componente standard, si deve occupare di: Esecuzione della tupla Supporto per le modifiche sul nodo Supporto alla propagazione Tuple base da cui ereditare: Tupla come cuore del middleware, depositaria delle funzionalità (meccanismi e politiche) Ereditarietà come strumento per definire nuovi meccanismi e politiche Forte incapsulamento e quindi flessibilità nell’aggiunta di nuove caratteristiche API vere e proprie che presuppongono l’esistenza di tuple ad hoc per la loro realizzazione

Realizzazione di un semplice Middleware basato su TOTA Definizione della classe base per la propagazione di informazioni: RunningTuple tupleSupport: tupleSupport void init(TupleSupport t) void propagate() Riferimento all’ENGINE locale del nodo che fornisce le API di supporto alla tupla Regole di propagazione P sotto forma di codice eseguito sul nodo Legame tra la tupla e il supporto

Realizzazione di un semplice Middleware basato su TOTA Definizione delle classi depositarie della gestione del contenuto informativo: Tuple void accept(QueryTuple q) attributes: attributesType QueryTuple void visit(Tuple t) attributes: attributesType Contenuto informativo C Oggetto depositario della interrogazione dello spazio di tuple. Meccanismo del double dispatch per l’accesso ad una istanza di tupla da parte di una QueryTuple Contiene le regole di match M

Realizzazione di un semplice Middleware basato su TOTA Realizzazione delle API di alto livello out: operazione di inserimento di una tupla di stato nello spazio inRead: lettura della tupla dallo spazio globale in: prelievo della tupla dallo spazio globale in e out simili alle primitive di Linda: out: incapsulata in una RunningTuple T=(C,P) {content; propagation rules} in: incapsulata in una QueryTuple T=(C,M) {content; matching rules}

Realizzazione di un semplice Middleware basato su TOTA out() Necessita della coordinazione fra i nodi per la diffusione globale della informazione: floading e stato sul nodo inRead() Azione locale sul repository delle tuple che rappresenta lo spazio comune a tutti gli agenti pattern visitor e iterazione sugli oggetti Tuple utilizzando le regole M della tupla di in() in() Rispetto alla inRead necessita di coordinazione per aggiornamento dello spazio di tuple di tutte le entità protocollo ad hoc basato su gestore di tupla e notifica globale del consenso al prelievo da parte di un nodo specifico induce un forte coordinamento nel gruppo dei robots (sincronizzazione per accesso in mutua esclusione)

API(I): out() Diffusione di una tupla tramite il meccanismo implementato per la primitiva out() sender connection accepted not accepted

API(II): in() Diffusione della richiesta e del consenso alla operazione di in() in() connection query not accepted gestore tupla consensus

Realizzazione di un semplice Middleware basato su TOTA Si è ottenuto: ad alto livello una interfaccia di tipo Linda il compito di realizzare le specifiche richieste dalla primitiva è affidato alle tuple dalla quale sono state generate: diffusione delle informazioni da parte delle tuple di out ricerca del corrispondente attraverso un pattern interno specificato da parte delle tuple di in Il middleware garantisce in modo trasparente che lo stato globale sia replicato su ogni nodo, realizzando la struttura informativa richiesta

Possibili estensioni del modello Il modello Linda può essere ancora meglio mappato nelle tuple del Middleware al fine di renderlo ancora più flessibile: LindaTuple: T=(C,P,M,O) C: content P: propagation rules (sia per le in che per le out) M: matching rules O: output rules Flessibilità, context-awarness, adattatività

TOTA come modello di mobilità (I) In definitiva cosa distingue il modello TOTA rispetto ad altri modelli? Qual è la differenza rispetto ad un sistema MA? Mobile Agent: insieme di codice, dati e stato di esecuzione in grado di decidere autonomamente di migrare da un nodo ad un altro con possibilità di riprendere la esecuzione da dove era terminata (strong-weak mobility) In TOTA l’elemento base è la TUPLA, essa trasporta: dati generici (es: attributi in accordo ad una relazione) stato della tupla modificato durante la propagazione, dipendente dalle precedenti propagazioni della stessa riferimento ad un automatismo (automa) comune a tutti i nodi che opera in funzione dello stato interno della tupla stessa e dello stato presente sul nodo P C

TOTA come modello di mobilità (II) Alla creazione della tupla avviene un legame tra la informazione contenuta nella stessa e l’automa depositario della propagazione implementazione di una classe specifica che si appoggia ad un automa specifico (contenuto nel codice della classe stessa) ereditarietà da altre ‘classi automa’ predefinite con meccanismi e politiche base La tupla contiene solo lo stato del proprio automa, modificato durante il trasferimento sul nodo. Il codice è presente su ogni nodo, essendo le classi note a tutti gli agenti T=(C,P) -> T=(C,S0,*A) basso overhead nella diffusione della tupla! paradigma ad oggetti per ottenere buona flessibilità nell’aggiunta di altri meccanismi

Sviluppi futuri Estensione del middleware: nuove API (join,etc.) nuovi meccanismi (maggiori garanzie, etc.) Supporto del modello di tupla generale (LindaTuple) Ridefinizione delle classi base Verifica dei modelli di stato implementabili, anche in riferimento alla nozione di tempo fin qui trascurata (estensione real-time?)