BROKER SERVER
Progetto di Ingegneria del Web 2008
Alessio Bianchi
Andrea Gambitta
Giuseppe Siracusano
Architettura di SMS

Servizio




Una o più pagine XML
Memorizzati e serviti da page server
Pubblicati sulle yellow pages
Comunicazione


Basata su SMILE: middleware che
astrae dai livelli di rete sottostanti
SMILE gestisce il discovery dei processi,
il trasporto del traffico e il ciclo di vita
dei nodi
Invio delle pagine
Processo Page server



Componente lato server che si occupa di inviare
le pagine sul MOVE client
In seguito ricezione di una richiesta (messaggio
sincrono)
Service
DB
Fetch page

Notificate (messaggio asincrono)
Page Server

Processo Page client

Componente lato client che si occupa di richiedere
le pagine e gestire l'arrivo di notifiche

Richiede pagine conoscendo a priori l'indirizzo

Riceve pagine tramite un messaggio asincrono
Il Broker server


Integrato nel page server
Invia servizi al client MOVE in
seguito al verificarsi di un
determinato evento

Innesco da matcher servizi/profilo

Trascorso un intervallo di tempo
dall'ultimo invio di servizi

Variazione della posizione dell'utente
Registra statistiche riguardanti
l'utilizzo dei servizi inviate dal
MOVE client
Service
DB
Statistics
DB
Fetch pages

Page
Server
Services/
Profile
matcher
Broker
Trigger
Time
Positio
n
Raccolta statistiche (1)


Il broker riceve le statistiche dal MOVE tramite messaggi
asincroni
Statistiche raccolte:






Identificativo del servizio
Numero di utilizzi dall’ultimo invio di statistiche
Versione della copia attualmente in cache
Timestamp della copia attualmente in cache
Le statistiche inviate si riferiscono a tutti e soli i servizi presenti
in cache
Problema: invio statistiche non predicibile  quali dati
effettivi durante i giorni di silenzio?
Raccolta statistiche (2)



Le statistiche ricevute dal MOVE vengono utilizzate per calcolare una
densità di utilizzo per ogni servizio.
Nel caso in cui dall’ultimo arrivo di statistiche sia passato almeno un giorno,
la densità viene proporzionalmente ripartita sui giorni effettivamente
trascorsi
I valori di densità ripartiti sono memorizzati in contatori
0
25/6/08
9
26/6/08
7
15
27/6/08
Daily counters
28/6/08
29/6/08
Politica di invio dei servizi

I servizi vengono inviati al client utilizzando i seguenti
criteri:
Utilizzo del servizio da parte dell’utente
 Utilizzo globale del servizio
 Profilo utente


Il numero di servizi inviabili è stabilito dall’utente:
Definendo la massima quantità di dati per invio
 Definendo la massima quantità di invii giornalieri

Services/profile matcher




Trigger esterno che genera una lista di servizi
candidati da inviare all’utente
Matching semantico tramite Wordnet tra
preferenze dal profilo utente e tag dei servizi
Lista di servizi ordinata per rilevanza
I servizi in questa lista vengono opportunamente
combinati con le statistiche utente per generare la
lista da inviare al client
Quali servizi inviare (1)

Il broker sceglie i servizi da inviare dalla lista fornita dal SPM
Ogni servizio dispone di un valore scorespm attribuito da Wordnet
Per ogni servizio, viene calcolato un punteggio sulla base dell’uso
passato del servizio
I due punteggi sono combinati linearmente:

Il parametro  puo essere modificato dall’amministratore di sistema





 > 1 favoriti i servizi utilizzati nel passato
 < 1 favoriti i servizi suggeriti dal SPM
Quali servizi inviare (2)

Il parametro scorestat è ottenuto sommando tre componenti:



Utilizzo del servizio nell’ultima settimana da parte dell’utente
Utilizzo complessivo del servizio da parte dell’utente
Utilizzo complessivo del servizio da parte di tutti gli utenti
Quali servizi inviare (3)

Prima di essere combinati per dare il punteggio
finale, i valori scorespm e scorestat vengono
normalizzati:
Invio dei servizi



Una volta ordinata la lista dei servizi secondo il valore score,
vengono inviati quanti più servizi completi rispettando i limiti
posti dall’utente.
L’invio del servizio è effettuato utilizzando le funzionalità del
page server.
Tramite l’utilizzo di un campo Version per ogni servizio, non
vengono inviati nuovamente i servizi già in cache e ancora
aggiornati.
Schema del
database



Utenti possono
aderire al broker
Tutti i servizi
possono essere
selezionati dal
broker
Mantenuta anche
una tabella di
contatori giornalieri
per ogni utente e
per ogni servizio
Scenari critici

Il trigger restituisce servizi di cui non abbiamo
statistiche


Il trigger restituisce un servizio le cui pagine non sono
disponibili al page server


Il punteggio statistiche assegnato è 0
Il servizio non viene inviato, viene loggato l’errore
Il MOVE invia statistiche di un servizio di cui non
abbiamo precedenti statistiche

Le statistiche vengono aggiunte nella tabella Statistics
Un tradeoff importante


L’autore di un servizio può modificare singole pagine
Attualmente viene inviato l’intero servizio



Alternativa: inviare solo le pagine modificate



Vantaggio: il messaggio di statistiche contiene un campo Version globale
del servizio  leggero
Svantaggio: invio di tutte le pagine  pesante
Vantaggio: invio delle singole pagine modificate  leggero
Svantaggio: messaggio di statistiche contiene un campo Version per ogni
pagina  pesante
Valutazione futura sulla base di frequenza dei messaggi di
statistiche e di invio servizi, numero medio di pagine per servizio,
frequenza media di aggiornamento di servizi e pagine.
Sviluppi futuri



Realizzare il trigger esterno basato sul tempo
Realizzare il trigget esterno basato sulla posizione
Integrazione
ID del servizio è stato modificato ad intero
 Integrazione del services/profile matcher all’interno del
page server

Scarica

Presentazione