Remotizzazione del
Framework Unibo-env
Autrice: Leticia Riestra Ainsua
Reti di Calcolatori LS
Universitá degli Studi di Bologna
INDICE
1. Introduzione
1.1 Framework Unibo-env
1.2 Obiettivi da raggiungere
1.3 Obiettivi per punti
2. Metodologie in “gioco”
3. Realizzazione in modo generale
3.1 Server delle tuple
3.2 Persistenza delle tuple
3.3 Replicazione delle tuple
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Framework Unibo-env

Offrire la base per andare oltre alla semantica della
chiamata a procedura, propria dell'ambiente JAVA
nativo.

Offrire strumenti di comunicazione fra processi
mediante diverse astrazioni e mezzi di
comunicazione.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Obiettivi da raggiungere

Remotizzazione del framework utilizzato in
Ingegneria del Sofware LS in diversi nodi in modo
da offrire trasparenza nella locazione del servizio ai
clienti per permettere di non vedere la differenza
tra i servizi offerti dai locali e quelli in remoto.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Obiettivi per punti

Server delle tuple: implementazione di un componente in grado di
realizzare un qualche protocollo di registrazione e reperimento di
tuple del tipo <chiave, valore>.
•
Persistenza tuple.
•
Servizio di nomi per differenziare server in base a tipologie di
comunicazione (a sua volta server tuple).
•
Replicazione (risorse fredde).

Implementazione di un componente (o adattamento di uno già
esistente) in grado di gestire un protocollo di comunicazione peerto-peer che permetta il dialogo tra clienti e servitori, una volta che
questi sono entrati in conoscenza reciproca.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Metodologie in “gioco”

Kadmelia: protocolo decentralizzato formato per nodi in una rete
virtuale.

Grid Computing: garante un accesso coordinato e controllato alle
risorse condivise e offre all'utente la visibilità di un unico sistema di
calcolo logico.

Hash Distributing: partizionano l’appartenenza di un set di chiavi
tra i nodi partecipanti.

Tucson (Spazio delle tuple): permette la comunicazione e la
coordinazione dei componenti indipendenti di software concurrente
o distribuito.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Realizzazione in modo generale

Prima fase dello sviluppo: implementazione attraverso
Tucson del server delle tuple con tutte i tipi di
comunicazione in modo centralizzato.

Seconda fase dello sviluppo: decentralizzazione
attraverso il Grid Computing.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Server delle tuple

Importanza del TupleCentreRetriever.

Il formato delle tuple è:
(“tipo di comunicazione”, serviceName, id, payload).

Classi più importanti:
•
TupleCentreRetriever.
•
ServiceConnectionP2P.
•
EnviromentComunication.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Server delle tuple

Aspetti interessanti:
•
ID univoco
•
•
in(signalNextId(NAME, ID)) :- rd_r(signalDeclaration(NAME)), !, ID1 is ID +1 ,
out_r(signalNextId(NAME, ID1)).
•
in(signalNextId(NAME, ID)) :- out_r(signalDeclaration(NAME)),
out_r(signalNextId(NAME, 0)).
Stringa delle tuple: Tucson solo permette stringa nelle
tuple.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Server delle tuple
Messaggi

Un mittente deposita nel sistema un messaggio, etichettandolo e poi si
disinteressa dello stesso.
Il messaggio può permanere latente nel sistema per un tempo indefinito.
•
CheckForMsg: cerciamo nello spazio delle tuple la template specifica
per vedere se ci sta o meno. Usiamo rdp perchè nel caso non ci sia la
tupla,l’operazione fallisce.
•
sendMsg: creamo un messaggio con i parametri adeguati e lo
inseriamo nello spazio delle tuple specifico attraverso “out”.
•
ReceiveMsg: si cerca con “in” la tupla nello spazio delle tuple e si
construisce il messaggio (IMessage) per restituirlo con i parametri che
si sono cercati.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Server delle tuple
Segnali

Un segnale viene inviato al mondo, non ad uno specifico destinatario.
•
emitSignal: creamo un segnali con i parametri adeguati e dopo lo
inserimo nello spazio delle tuple specifico attraverso “out”.
•
inSignal: si cerca con “in” la tupla nello spazio delle tuple e si
costruisce il messaggio (IMessage) per restituirlo con i parametri che si
sono cercati.
•
readRecentSignal: Legge in modo sospensivo (rd) un segnale avente
ID successivo a lastSignalId. Se lo trova lo legge e memorizza,
continuando i tentativi di lettura per un segnale ulteriore. Se non ne
trova altri termina la ricerca e restituisce tutti i segnali memorizzati.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Server delle tuple
Segnali

•
isInterested: per un segnale dato, dice quali sono quelli in esso
interessati.
•
declaredInterested: creamo un nuovo SignalObserverFactory
interessato nel tipo di segnale specificato.
•
undeclaredInterested: togliamo il SignalObserverFactory che era
interesato in quel tipo di segnale.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Persistenza delle tuple
Regola ’$ORG’ @ Node ?
out(cmd(enable_persistency(TCName))).

•
Node: nome del nodo rispettivo secondo il tipo di
comunicazione.
•
TCName: nome dello spazio delle tuple corrispondente.
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Replicazione delle tuple
MASTER

•
•
•

•
•
reaction(in(X), (post, out_tc(backup@localhost, execute(in(X))))).
reaction(inp(X), (post, success, out_tc(backup@localhost,
execute(in(X))))).
reaction(out(X), (out_tc(backup@localhost, execute(out(X))))).
SLAVE
reaction(out(execute(out(X))), (in_r(execute(out(X))), out_r(X))).
reaction(out(execute(in(X))), (in_r(execute(in(X))), in_r(X))).
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Domande
Reti di Calcolatori LS
Universitá degli Studi di Bologna
Scarica

presentazione