Middleware Samoa (Socially-Aware and MObile Architecture) Tutor: Ing. Dario Bottazzi Gruppo: Emanuele Colombini, Francesco Ferri, Gianpiero Napoli Progetto di Reti di Calcolatori LS Colombini Emanuele Reti sociali Rete sociale: • Rete di utenti legati mediante relazioni sociali • Amicizia • Lavoro • Interessi comuni • Conoscenza Strumenti internet based • Strumenti utilizzati per costruire reti sociali sfruttando il web. Permettono la creazione di comunità di utenti aventi i medesimi interessi • vantaggi: 1. Slegati dalla località: permettono di andare oltre i limiti spaziali 2. Molto variegati: esistono soluzioni diverse per adattarsi ai vari interessi degli utenti 3. Semplici da usare: gli utenti non devono far altro che specificare i propri interessi in profili • limiti: 1. Conoscenza limitata: il compito di conoscere altre persone è a carico degli utenti 2. Slegati dalla località: non tengono in considerazione il contesto dell’utente 3. Soluzioni special purpose: solitamente sono difficilmente adattabili ad altre applicazioni Esempi: • Myspace: 107 milioni di utenti • Facebook: 73 milioni di utenti Progetto di Reti di Calcolatori LS Colombini Emanuele Samoa Definizione: Middleware per creare reti sociali semantiche in ambienti mobili, in qualsiasi momento e luogo. Obiettivo: semplificare la creazione delle applicazioni senza preoccuparsi degli aspetti legati alla gestione della rete sociale Anytime & Anywhere computing • Non è necessaria la presenza della rete internet. • La rete sociale che viene a crearsi è fortemente dipendente dal luogo in cui si sviluppa. Soluzione a Middleware • Rende facile la prototipazione delle applicazioni per il social computing • Permette al programmatore di trascurare la gestione della rete sociale • E’ riutilizzabile per altre applicazioni solamente cambiandone la configurazione Prossimità • La rete è popolata dalle entità presenti nella medesima località in cui si trova l’utente Mobilità • Sfrutta la tecnologia dei nuovi dispositivi portatili • La rete segue l’utente aggiornando automaticamente la sua struttura Approccio semantico • Usa algoritmi di matching semantico per identificare gli utenti di una rete sociale • A differenza delle soluzioni internet based, non è necessario conoscere a priori i partecipanti della rete Progetto di Reti di Calcolatori LS Colombini Emanuele Entità Samoa Ego-User Utilizzatore del sistema, specifica i propri interessi e le relative preferenze • La rete sociale SAMOA è formata dal gruppo di utenti che si trovano tutti nella località dell’ego-user e ne condividono gli interessi • Ogni ego-user può costruire e/o essere membro di una rete sociale. Egli può pertanto interpretare uno o più dei seguenti ruoli previsti: Manager • Ego-user intenzionato a costruire una propria rete sociale, per la quale deve specificare i criteri • Non ci sono limitazioni alla figura del manager: può essere un utente o una macchina, mobile o fisso. Clients • Generico utente SAMOA, potenziale membro della rete. Member • Utente SAMOA che ha superato il test semantico ed è entrato a far parte della rete sociale Progetto di Reti di Calcolatori LS Colombini Emanuele Profili Samoa Indipendentemente dal ruolo, ogni utente deve fornire le seguenti informazioni: Personal Identifier • identificatore che rappresenta univocamente l’utente User Profile • contiene la lista degli interessi dell’ego-user e le attività da lui svolte, specificando ove necessario le preferenze Ogni Manager deve inoltre specificare i criteri per costruire la propria rete sociale: Place Profile • descrive la località in cui si sviluppa la rete sociale. • contiene la lista delle attività scelte dal manager per la propria rete sociale • agisce come primo filtro per l’individuazione dei membri della rete Discovery Profile • indica i criteri scelti dal manager per popolare la propria rete sociale • contiene le preferenze sulle attività specificate nel PlaceProfile • agisce come secondo filtro per l’individuazione dei membri della rete Progetto di Reti di Calcolatori LS Colombini Emanuele Modello della rete sociale Manager Place Profile Clients Località Discovery Profile Members Rete sociale Progetto di Reti di Calcolatori LS Colombini Emanuele Architettura del Middleware APPLICATION profile manager semantic matching engine Social Network Management Layer place-dependent social network manager global social network manager message transport manager location/proximity manager Basic Service Layer JVM – OS – HW – Network Progetto di Reti di Calcolatori LS Colombini Emanuele Basic Service Layer Message Transport Manager (MTM) • Effettua le comunicazioni con le altre entità SAMOA punto – punto: unicast punto – multipunto: broadcast • Per le comunicazioni broadcast in ambienti ad hoc viene usato un protocollo di flooding controllato Location/Proximity Manager (LPM) • Percepisce la presenza di altri utenti SAMOA memorizza PID ed indirizzo IP degli utenti riconosciuti • Riconosce quando un utente esce dal raggio d’azione del manager • Rende nota la presenza dell’ego-user alle altre entità SAMOA gestisce la dimensione del raggio d’azione della rete Progetto di Reti di Calcolatori LS Colombini Emanuele Social Network Management Layer Profile Manager (PM) • Gestisce i profili dell’ego-user • Si coordina con il LPM per riconoscere l’ingresso o l’uscita degli utenti • Gestisce le comunicazioni per il protocollo semantico di inserimento nella rete sociale Collabora con lo SME per l’uso degli algoritmi semantici Semantic Matching Engine (SME) • Fornisce gli algoritmi semantici utilizzati dal protocollo del PM Algoritmo 1: le attività dell’utente sono confrontate con quelle dell’ego-user. L’output dell’algoritmo è composto dalle attività che utente ed ego-user hanno in comune. Algoritmo 2: sono confrontate le preferenze dell’utente con quelle indicate dall’ego-user. L’output dell’algoritmo è un booleano che indica se l’utente è idoneo ad entrare nella rete sociale Place-dependent Social Network Manager (PSNM) • Contiene i dati relativi a tutti gli attuali utenti della rete sociale • Ha il compito di informare il livello applicativo dell’ingresso o dell’uscita di un utente dalla rete sociale Global Social Network Manager (GSNM) • Memorizza i profili degli utenti che hanno fatto parte di una rete sociale del manager • Memorizza anche i PP ed i DP che hanno portato all’inserimento dell’utente Progetto di Reti di Calcolatori LS Colombini Emanuele Implementazione Profile Manager (PM) • Servizio attivo • Rimane in ascolto per l’ingresso di nuovi clienti nel raggio d’azione della rete dal LPM • Comunica con i servizi PM delle altre entità SAMOA con le quali entra in contatto • Utilizza i canali di comunicazione messi a disposizione dal MTM • Ritrasmissioni nel caso il protocollo di comunicazione non termini in modo corretto • Invio dei soli dati necessari. Utilizzo dei profili memorizzati dal GSNM quando possibile PM net MTM GSNM LPM PM Semantic Matching Engine (SME) •Servizio attivo per accesso in mutua esclusione • Implementazione degli algoritmi 1 e 2 provvisoria PSNM SME Progetto di Reti di Calcolatori LS Colombini Emanuele Profile Manager PM: Protocollo di inserimento utente PM: ricezione nuovo utente PM: Invio PP al nuovo utente PM: Ricezione PP PM: Ricezione UMP PM: Invio UMP Client Manager SME: Algoritmo1 (PP, UP) SME: Algoritmo2 (UMP, DP) PSNM: Aggiungi nuovo utente alla rete sociale Si Entrato nella rete sociale? No PM: Invia risposta a utente Progetto di Reti di Calcolatori LS PM: Ricezione risposta Colombini Emanuele SME algoritmo 1 SME algoritmo 1: Vengono confrontate le attività richieste dal manager con quelle indicate dal cliente nel proprio UP. Le due attività sono in relazione quando: • l’attività del manager è la stessa attività del cliente Client Algoritmo1: Creazione nuovo UMP Altre Attività? (PlaceProfile) No No Algoritmo1: Restituzione UMP • l’attività del cliente è dipendente dall’attività specificata dal manager Si Relazione attività? PP UP manager client SI Aggiunta preferenze utente ad UMP Progetto di Reti di Calcolatori LS UMP client Colombini Emanuele SME algoritmo 2 SME algoritmo 2: Nell’ambito delle attività in comune contenute nel UMP, vengono confrontate le preferenze dell’utente con quelle del manager. Le preferenze sono in relazione quando: • manager e utente specificano la stessa preferenza Manager Algoritmo2 (UMP, DP) UMP vuoto? Si Return False • la preferenza del client specifica quella indicata dal manager • la preferenza del client è una generalizzazione di quella specificata dal manager No Altre Attività? Si No Return True No Return False DP UMP manager client Si Match ok? Progetto di Reti di Calcolatori LS Colombini Emanuele Caso di studio: Viral Marketing Caso di studio: Viral Marketing Per mostrare le capacità di SAMOA è stato realizzato un caso di studio di viral marketing. Gli utenti, passando vicino ai negozi delle vie del centro, vengono informati con un messaggio pubblicitario quando i loro interessi combaciano con i prodotti venduti dal negozio stesso. Oltre a questo scambio, le applicazioni realizzate mantengono in memoria le pubblicità e le inviano ad altri utenti SAMOA che entrano a far parte delle loro reti sociali. Questo mostra come un informazione possa passare attraverso persone che hanno gli stessi interessi, anche senza che questi si conoscano preventivamente. Applicazione: SoNet Per simulare le capacità di SAMOA è stata realizzata un’applicazione pensata apposta per i dispositivi wireless portatili. • visualizza gli utenti che fanno parte della propria rete sociale • permette di entrare in contatto con loro mediante l’invio e la ricezione di messaggi • invia messaggi informativi ai nuovi entranti della rete sociale Progetto di Reti di Calcolatori LS Colombini Emanuele Caso di studio: iterazione 1) Un passante entra nel raggio d’azione di un negozio ed invia il suo PresenceBeacon PP manager presence UMP beacon client 2) Inizia il protocollo gestito dal PM per decidere se l’utente può entrare a far parte della rete sociale o meno Manager Client Client Manager Negozio Progetto di Reti di Calcolatori LS Passante 3) Al termine del protocollo, se l’esito è stato positivo, il negozio invia la pubblicità al passante e lo inserisce nella propria rete sociale 4) Contemporaneamente anche il passante esamina il negozio. Di norma i negozi sono rappresentati da entità SAMOA automatiche e non entrano nelle reti sociali altrui Colombini Emanuele Fine Grazie della cortese attenzione Progetto di Reti di Calcolatori LS Colombini Emanuele