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