SOMA.naming.domain
Class DomainNameService

java.lang.Object
  |
  +--SOMA.naming.domain.DomainNameService

public class DomainNameService
extends java.lang.Object

Servizio di nomi di dominio, DNS.

Il servizio realizza la metafora di una tabella in cui vengono memorizzate le DomainInfo. La chiave di ricerca e' di tipo PlaceID, identificatore del default place del dominio.

Questo servizio e' presente solo nel default place di ogni dominio. Infatti, gli altri place hanno informazioni sul solo dominio di appartenenza.

E' previsto un sistema gerarchico di scambio di informazioni fra DNS di domini diversi. Ogni DNS ha 1 DNS padre, presso cui e' registrato, e una serie di DNS figli che si sono registrati presso di lui. In questo modo si realizza una struttura ad albero in cui le informazioni passano dai figli al padre e viceversa.

Author:
Livio Profiri
See Also:
DNSExplorerItem, PlaceNameService

Constructor Summary
DomainNameService(Environment env)
          Costruttore.
 
Method Summary
 DomainInfo getDomain(PlaceID placeID)
          Restituisce la DomainInfo corrispondente a placeID, o null se non trovata.
 void listDomains(java.io.PrintStream out)
          Stampa la lista di tutti i domini su out.
 DomainInfo putDomain(DomainInfo newDomainInfo)
          Inserisce una DomainInfo.
 boolean refresh()
          Richiesta di refresh della tabella al DNS padre.
 boolean refresh(java.net.InetAddress host, int port)
          Richiesta di refresh della tabella al DNS padre.
 boolean register(java.net.InetAddress host, int port)
          Registrazione presso il DNS padre.
 DomainInfo removeDomain(PlaceID aDomainID)
          Elimina la DomainInfo corrispondente a aDomainID.
 void sendToAllDomains(Command command)
          Spedisce un comando al DNS padre e a tutti i DNS figli.
 void sendToChildrenDomains(Command command)
          Spedisce un comando a tutti i DNS figli.
 boolean sendToFatherDomain(Command command)
          Spedisce un comando al DNS padre.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DomainNameService

public DomainNameService(Environment env)
Costruttore.
Parameters:
env - L'environment del place.
Method Detail

getDomain

public DomainInfo getDomain(PlaceID placeID)
Restituisce la DomainInfo corrispondente a placeID, o null se non trovata.

putDomain

public DomainInfo putDomain(DomainInfo newDomainInfo)
Inserisce una DomainInfo.

Se DomainInfo e' nuova aggiorna DNS padre e figli.

Returns:
Il vecchio valore memorizzato o null se si tratta di un nuovo dominio.

removeDomain

public DomainInfo removeDomain(PlaceID aDomainID)
Elimina la DomainInfo corrispondente a aDomainID.

Se aDomainID e' presente trasmette l'operazione a DNS padre e figli.

Returns:
Il vecchio valore memorizzato o null se si tratta di un nuovo dominio.

listDomains

public void listDomains(java.io.PrintStream out)
Stampa la lista di tutti i domini su out.

register

public boolean register(java.net.InetAddress host,
                        int port)
Registrazione presso il DNS padre.

Viene inviato un DomainRegisterCommand al DNS padre individuato dalla coppia host:port.


refresh

public boolean refresh()
Richiesta di refresh della tabella al DNS padre.

Viene inviato un DomainRefreshCommand.Request al DNS padre.


refresh

public boolean refresh(java.net.InetAddress host,
                       int port)
Richiesta di refresh della tabella al DNS padre.

Viene inviato un DomainRefreshCommand.Request al DNS padre, individuato dalla coppia host:port.

Attenzione: da usare solo quando il dominio padre cambia host:port, altrimenti si viene registrati in due DNS diversi, col risultato di avere due DNS padre che spediscono le informazioni di aggiornamento.


sendToFatherDomain

public boolean sendToFatherDomain(Command command)
Spedisce un comando al DNS padre.
Returns:
true se la spedizione ha avuto successo.

sendToChildrenDomains

public void sendToChildrenDomains(Command command)
Spedisce un comando a tutti i DNS figli.

sendToAllDomains

public void sendToAllDomains(Command command)
Spedisce un comando al DNS padre e a tutti i DNS figli.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object