|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--FrontEnd
Rappresenta il FrontEnd in veste di servitore di Client
.
Genera un thread FrontEndThread
per ogni singola connessione con un
Client.
Field Summary | |
private static boolean |
DEBUG
Flag per abilitare stampe di debugging su standard output e standard error. |
MultipartTimestamp |
fe_ts
Multipart timestamp del FE. |
int |
FT_COUNT
Numero di Replica Manager a cui un messaggio deve essere postato prima di considerare l'operazione di posting eseguita con successo. |
java.net.InetAddress |
hostname
Indirizzo del Replica Manager a cui si connette per primo. |
rmTable |
hostsReplicaManager
Indirizzi dei Replica Manager noti al Front End, ciascuno con il numero di connessioni correntemente aperte dai Client. |
private java.io.ObjectInputStream |
inRmStream
Stream di input per la comunicazione con il RM da cui ricevere le risposte ai comandi iniziali NUM e LOOKUP. |
boolean |
LOCAL
Se true, ogni FrontEndThread creato tenta la prima
connessione con il Replica Manager passato nella linea di
comando. |
int |
LOOKUP_T
Numero minimo di indirizzi di Replica Manager potenzialmente disponibili che un FrontEndThread accetta senza invocare comandi di lookup. |
private java.io.ObjectOutputStream |
outRmStream
Stream di output per la comunicazione con il RM a cui inviare i comandi iniziali NUM e LOOKUP. |
int |
POLITICA_SCELTA_RM
Indica la politica con cui un FrontEndThread sceglie un nuovo
RM a fronte della caduta di quello corrente. |
int |
PORT
Numero di porta per la comunicazione con i Client. |
int |
RM_PORT
Numero di porta dei Replica Manager. |
private java.net.Socket |
rmSocket
Socket per la connessione con il RM a cui inviare i comandi iniziali NUM e LOOKUP. |
private java.net.ServerSocket |
serverSocket
Socket di ascolto delle connessioni con i Client. |
int |
TIME_OUT
Indica il tempo in millisecondi oltre il quale un FrontEndThread in attesa di una risposta da un Replica
Manager considera sconveniente continuare ad attendere. |
Constructor Summary | |
FrontEnd()
|
Method Summary | |
private void |
chiudiConnessione()
Chiude la connessione verso il Replica Manager usato per i comandi iniziali NUM e LOOKUP. |
private static void |
erroreArgs()
Stampa sullo standard output una stringa che illustra i possibili argomenti validi per la linea di comando e fa terminare la JVM. |
private void |
lookupAction()
Richiede al Replica Manager indicato da linea di comando, gli host degli altri Replica Manager ad esso noti. |
static void |
main(java.lang.String[] args)
Parametri della riga di comando dell'applicazione FrontEnd : java FrontEnd hostname [-option value]... E' obbligatorio un argomento: hostname : hostname del Replica Manager a cui il FE si connette per primo. |
private int |
numAction()
Si connette al RM di cui conosce l'indirizzo ed invia il comando NUM per sapere quanti RM sono presenti nel sistema. |
Methods inherited from class java.lang.Object |
|
Field Detail |
public java.net.InetAddress hostname
public int RM_PORT
public int PORT
public int FT_COUNT
public int POLITICA_SCELTA_RM
FrontEndThread
sceglie un nuovo
RM a fronte della caduta di quello corrente. Valori possibili: 1: basata sull'ordine mantenuto nella rmTable del Front End;Il valore di default e' 1.
2: random;
3: secondo criteri di valutazione del carico dei servitori noti.
public boolean LOCAL
FrontEndThread
creato tenta la prima
connessione con il Replica Manager passato nella linea di
comando. Se false e' utilizzata la politica settata nella
variabile POLITICA_SCELTA_RM
.public int TIME_OUT
FrontEndThread
in attesa di una risposta da un Replica
Manager considera sconveniente continuare ad attendere. Scaduto
tale intervallo di tempo si rivolge ad un altro Replica Manager.
Un valore nullo comporta un'attesa infinita.
Il valore di default e' 0.public int LOOKUP_T
FrontEndThread
,
FrontEndThread.lookupAction()
,
Comando.LOOKUP
public MultipartTimestamp fe_ts
private java.net.ServerSocket serverSocket
public rmTable hostsReplicaManager
private java.net.Socket rmSocket
Comando.NUM
,
Comando.LOOKUP
private java.io.ObjectOutputStream outRmStream
Comando.NUM
,
Comando.LOOKUP
private java.io.ObjectInputStream inRmStream
Comando.NUM
,
Comando.LOOKUP
private static final boolean DEBUG
Constructor Detail |
public FrontEnd()
Method Detail |
private int numAction()
private void lookupAction()
hostsReplicaManager
.private void chiudiConnessione()
public static void main(java.lang.String[] args)
java FrontEnd hostname [-option value]...
E' obbligatorio un argomento:
hostname : hostname del Replica Manager a cui
il FE si connette per primo.
Opzioni possibili e valori corrispondenti :
-rmport num : numero di porta del Replica Manager.
Valore di default 54950.
-feport num : numero di porta su cui si pone in ascolto
il FE. Valore di default 55348.
-ftcount num : numero di Replica Manager a cui un messaggio
deve essere postato prima di considerare
l'operazione di posting eseguita con successo.
Settando valori maggiori di uno si ottengono
operazioni di posting che resistono alla caduta
dei Replica Manager (fault tolerance).
Il valore di default e' 1 (no fault tolerance).
-p num : indica la politica con cui unFrontEndThread
sceglie un nuovo RM a fronte della caduta di quello
corrente.
Valori possibili:
1: basata sull'ordine mantenuto nella rmTable
del Front End;
2: random;
3: secondo criteri di valutazione del carico
dei servitori noti.
Il valore di default e' 1.
-nl : per ogni nuovo Client, il Front End tenta la
connessione con un Replica Manager scelto in base
alla politica settata mediante l'ozione -p.
-t num : indica il tempo in millisecondi oltre il quale un
FrontEndThread
in attesa di una risposta
da un Replica Manager considera sconveniente
continuare ad attendere. Scaduto tale intervallo
di tempo si rivolge ad un altro Replica Manager.
Un valore nullo comporta un'attesa infinita.
Il valore di default e' 0.
-s num : numero minimo di indirizzi di Replica Manager
potenzialmente disponibili che un FrontEndThread
accetta senza invocare comandi di lookup.
Il valore di default e' 0 (nessuna lookup).
private static void erroreArgs()
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |