All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class it.unipi.di.vserver.Server

java.lang.Object
   |
   +----it.unipi.di.vserver.Server

public class Server
extends Object
implements Runnable

Classe che implementa un server. Un server è semplicemente un gestore di protocolli. Realizza inoltre tutta l'infrastruttura di comunicazione tra i processi che sono collegati al server. Il protocollo vive tutto in una classe derivata da Protocol.

Version:
1.0
Author:
Antonio Cisternino

Variable Index

 o clients
Lista delle connessioni attive.
 o dummyF
Security filter per riferire il metodo newInstance del filtro.
 o dummyP
Protocollo per riferire i metodi statici della classe.
 o MAX_CONNECTIONS
Numero massimo di connessioni accettate dal server.
 o runner
Thread del server.
 o serverlog
Log manager dove sono registrate le segnalazioni di attività dei server.
 o serverName
Nome del server.
 o serverProtocol
Protocollo associato al server
 o sharedObjects
Oggetti condivisi lato server.
 o stats
File manager delle statistiche relative a questo server.
 o systemlog
Log manager

Constructor Index

 o Server(StatisticsFileManager, String, String, String)
Costruisce un server.
 o Server(StatisticsFileManager, String, String, String, int)
Costruisce un server specificando il numero della porta e il numero massimo di connessioni contemporanee ammesse dal server.

Method Index

 o getClients()
Restituisce un'enumerazione dei clienti connessi al server.
 o getServerMaxConnections()
Restituisce il numero massimo di connessioni accettate dal server.
 o getServerName()
Restituisce il nome del server.
 o getServerPort()
Restituisce il numero della porta del server.
 o getSharedObject(String)
Restituisce un oggetto associato ad una certa chiave.
 o initialize(StatisticsFileManager, String, String, String, int)
Inizializzatore dell'oggetto.
 o registerSharedObject(String, Object)
Registra un oggetto condiviso presso il server.
 o removeSharedObject(String)
Rimuove un oggetto dalla lista degli oggetti condivisi.
 o replaceSharedObject(String, Object)
Rimpiazza un oggetto condiviso nella tabella degli oggetti condivisi.
 o run()
Viene invocato dal metodo start.
 o setLogManager(LogManager)
Setta il nuovo log manager per l'istanza.
 o start()
Avvia il server in un proprio thread.
 o stop()
Arresta il server.
 o writeStatistics(StatisticInfo)
Scrive un pacchetto di informazioni statistiche relative ad una connessione.

Variables

 o MAX_CONNECTIONS
 protected static int MAX_CONNECTIONS
Numero massimo di connessioni accettate dal server. Il default vale -1 che indica nessun limite.

 o runner
 private Thread runner
Thread del server.

 o systemlog
 private LogManager systemlog
Log manager

 o serverlog
 private LogManager serverlog
Log manager dove sono registrate le segnalazioni di attività dei server.

 o serverProtocol
 private Class serverProtocol
Protocollo associato al server

 o dummyP
 private ServerProtocol dummyP
Protocollo per riferire i metodi statici della classe.

 o dummyF
 private SecurityFilter dummyF
Security filter per riferire il metodo newInstance del filtro.

 o clients
 private Vector clients
Lista delle connessioni attive.

 o serverName
 private String serverName
Nome del server.

 o sharedObjects
 private Hashtable sharedObjects
Oggetti condivisi lato server.

 o stats
 private StatisticsFileManager stats
File manager delle statistiche relative a questo server.

Constructors

 o Server
 public Server(StatisticsFileManager sfm,
               String serverName,
               String sf,
               String p)
Costruisce un server. Il numero massimo di connessioni non è limitato.

Parameters:
sfm - Manager delle statistiche (se previsto). Se vale null non viene utilizzato alcun meccanismo di statistica.
serverName - Nome del server
sf - Nome della classe SecurityFilter da utilizzare. Se non si vuole utilizzare un security filter si ponga il parametro a null.
p - Nome della classe protocollo associato al server.
 o Server
 public Server(StatisticsFileManager sfm,
               String serverName,
               String sf,
               String p,
               int max_conn)
Costruisce un server specificando il numero della porta e il numero massimo di connessioni contemporanee ammesse dal server.

Parameters:
sfm - Manager delle statistiche (se previsto). Se vale null non viene utilizzato alcun meccanismo di statistica.
serverName - Nome del server
sf - Nome della classe SecurityFilter da utilizzare. Se non si vuole utilizzare un security filter si ponga il parametro a null.
p - Nome della classe protocollo associato al server.
max_conn - Massimo numero di connessioni.

Methods

 o initialize
 private void initialize(StatisticsFileManager sfm,
                         String serverName,
                         String sf,
                         String p,
                         int max_conn)
Inizializzatore dell'oggetto. Viene invocato dai costruttori.

Parameters:
sfm - Manager delle statistiche (se previsto). Se vale null non viene utilizzato alcun meccanismo di statistica.
serverName - Nome del server
sf - Nome della classe SecurityFilter da utilizzare. Se non si vuole utilizzare un security filter si ponga il parametro a null.
p - Nome della classe protocollo associato al server.
max_conn - Massimo numero di connessioni.
 o start
 public void start()
Avvia il server in un proprio thread.

 o run
 public void run()
Viene invocato dal metodo start. Esegue il ciclo fondamentale del server.

 o stop
 public void stop()
Arresta il server.

 o getServerPort
 public int getServerPort()
Restituisce il numero della porta del server.

Returns:
La porta su cui ascolta il server.
 o getServerMaxConnections
 public int getServerMaxConnections()
Restituisce il numero massimo di connessioni accettate dal server.

Returns:
Il numero massimo di connessioni.
 o getServerName
 public String getServerName()
Restituisce il nome del server.

Returns:
Il nome del server.
 o setLogManager
 public LogManager setLogManager(LogManager logm)
Setta il nuovo log manager per l'istanza.

Parameters:
logm - Nuovo logmanager
Returns:
Il logmanager che sta per essere rimpiazzato. Se vale null significa che logm valeva null.
 o getClients
 Enumeration getClients()
Restituisce un'enumerazione dei clienti connessi al server.

Returns:
Un'enumerazione di ServerProtocol
 o registerSharedObject
 boolean registerSharedObject(String key,
                              Object obj)
Registra un oggetto condiviso presso il server. Non è un metodo sincronizzato poiché lo è il metodo put della classe Hashtable con cui è realizzata la lista degli elementi condivisi.

Parameters:
key - Nome dell'oggetto condiviso.
obj - L'oggetto condiviso
Returns:
Viene restituito true se l'oggetto è stato registrato, false se esisteva già un oggetto registrato con un dato nome. Usare la funzione replaceSharedObject() per sostituire un oggetto dalla tabella degli oggetti condivisi oppure removeSharedObject() per eliminarlo.
 o getSharedObject
 Object getSharedObject(String key)
Restituisce un oggetto associato ad una certa chiave.

Parameters:
key - Chiave associato all'oggetto condiviso.
Returns:
L'oggetto condiviso, se questo non esiste viene restituito null.
 o removeSharedObject
 void removeSharedObject(String key)
Rimuove un oggetto dalla lista degli oggetti condivisi.

Parameters:
key - Chiave associata all'oggetto da rimuovere.
 o replaceSharedObject
 Object replaceSharedObject(String key,
                            Object obj)
Rimpiazza un oggetto condiviso nella tabella degli oggetti condivisi.

Parameters:
key - Nome dell'oggetto condiviso.
obj - L'oggetto condiviso
Returns:
L'oggetto sostituito, null se non era presente nessun oggetto con una data chiave.
 o writeStatistics
 void writeStatistics(StatisticInfo info) throws IOException
Scrive un pacchetto di informazioni statistiche relative ad una connessione. Se il manager delle statistiche per il server vale null non viene effettuata alcuna operazione.

Parameters:
info - Pacchetto da scrivere
Throws: IOException
Sollevata nel caso di errore di scrittura del pacchetto.

All Packages  Class Hierarchy  This Package  Previous  Next  Index