AMETAS.pns
Class AMETASPlaceNameService

java.lang.Object
  extended byAMETAS.pns.AMETASPlaceNameService

public class AMETASPlaceNameService
extends java.lang.Object

Bildet symbolische Stellennamen auf einen Rechnernamen und ein Port ab. Das Prinzip ähnelt dabei jenem des Domänennamendienstes (DNS): Man kann wählen, ob eine lokale Datei oder ein verteilter Dienst zuerst konsultiert werden soll. Als verteilter Dienst wird der PlaceNameServer verwendet. Stellennamen müssen mit einer Domäne zusammen angegeben werden, und zwar als ein String:

        stelle1.cs.uniffm.de.
        
Diese Angabe bezieht sich auf eine Stelle namens stelle1 in der Domäne cs.uniffm.de.. Fehlt der Punkt am Ende, so wird er ergänzt. Eine Stelle stelle0 heißt also auch stelle0., ist also eine Stelle in der Wurzeldomäne ".". Temporäre Stellen sind solche Stellen, denen eine Ersatzstelle zugeordnet ist. Damit ist es möglich, dass diese temporären Stellen geschlossen werden können, ohne dass der Anwender befürchten müsste, dass ankommende Agenten mangels Ziel irgendwo stranden. Agenten können dann statt zu dieser Stelle eine Ersatzstelle (relay place) anlaufen. Der lokale Dienst kann keine temporären Stellen verwalten. Andernfalls müsste die gesamte Funktionalität des PlaceNameServers in AMETASPlaceNameService integriert werden, insbesondere das Abspeichern und Nachladen aus einer Datei. Im Unterschied zu früher kann man dem PNS aber eine Liste von Dateinamen mitgeben.

See Also:
PlaceNameServer, PNSResponder, PNSAddress, PNSEntry

Constructor Summary
AMETASPlaceNameService(java.lang.String sPNSConfig, PNSAddress paServer, boolean bMode, short nBufferSize)
          Konstruktor.
 
Method Summary
 java.lang.Object addNewPlace(java.lang.String sPlaceFQ, PNSAddress paLocation, java.lang.String sRelay, java.lang.String sPassword)
          Eintrag eines neuen Stellennamens in den PNS.
 void cleanCaches()
          Bringt den PNS dazu, die Caches zu löschen.
 java.util.Vector getDomainList(java.lang.String sDomain, boolean bDirect)
          Liefert eine Liste von Domänen.
 java.lang.Object getObject(java.lang.String sOID)
          Diese Methode liest den Wert eines Management-Objektes aus.
 java.util.Vector getPlaceList(java.lang.String sDomain)
          Liefert eine Liste von registrierten Stellen.
 PNSEntry getPNSEntry(java.lang.String sReqPlaceFQ)
          Liefert den PNS-Eintrag der gesuchten Stelle.
 short removePlace(java.lang.String sPlaceFQ, java.lang.String sPassword)
          Entfernt eine Stelle aus dem PNS.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AMETASPlaceNameService

public AMETASPlaceNameService(java.lang.String sPNSConfig,
                              PNSAddress paServer,
                              boolean bMode,
                              short nBufferSize)
Konstruktor. Soll auf die Mitwirkung eines entfernten Servers verzichtet werden, so ist anstelle eines Namens ein Leerstring zu übergeben. Ist die PNS-Konfigurationsdatei ungültig oder nicht angegeben, dann wird kein lokaler PNS verwendet.

Parameters:
sPNSConfig - Pfadname der lokalen PNS-Konfigurationsdatei.
paServer - Adresse des entfernten Place-Name-Servers.
bMode - wenn true, wird zuerst lokal gesucht.
nBufferSize - Größe des Caches. Wenn 0, wird kein Cache verwendet.
Method Detail

getPNSEntry

public PNSEntry getPNSEntry(java.lang.String sReqPlaceFQ)
                     throws NoPNSException
Liefert den PNS-Eintrag der gesuchten Stelle. Dabei wird lokal und/oder entfernt gesucht (je nach Einstellung). Wird die Stelle nicht gefunden, wird ein undefinierter PNS-Eintrag geliefert.

Parameters:
sReqPlaceFQ - Gesuchte Stelle inklusive Domäne.
Returns:
PNS-Eintrag.
Throws:
NoPNSException - falls weder lokaler noch entfernter PNS verfügbar ist.

getPlaceList

public java.util.Vector getPlaceList(java.lang.String sDomain)
                              throws NoPNSException
Liefert eine Liste von registrierten Stellen. Diese wird aus einer Liste von lokaler wie entfernter Seite zusammengestellt und beinhaltet nur die Stellennamen. Eine Stelle oder Schnittstelle kann dann alle gelieferten Stellen auf ihre Aktivität prüfen.

Parameters:
sDomain - Domänenname; falls null, wird "." angenommen.
Returns:
Liste aller in dieser Domäne vorhandenen Stellen oder null, falls diese Domäne nicht existiert.
Throws:
NoPNSException - falls weder lokaler noch entfernter PNS zur Verfügung stehen.

getDomainList

public java.util.Vector getDomainList(java.lang.String sDomain,
                                      boolean bDirect)
                               throws NoPNSException
Liefert eine Liste von Domänen. Diese wird aus einer Liste von lokaler wie entfernter Seite zusammengestellt und beinhaltet nur die Domänennamen.

Parameters:
sDomain - Domänenname; falls null, wird "." angenommen.
bDirect - wenn true, werden nur die "domain"-Einträge genannt, sonst nur die "server"-Einträge.
Returns:
Liste aller Domänen, die der PNS kennt, der die angegebene Domäne verwaltet; null, falls diese Domäne nicht existiert.
Throws:
NoPNSException - falls weder lokaler noch entfernter PNS zur Verfügung stehen.

addNewPlace

public java.lang.Object addNewPlace(java.lang.String sPlaceFQ,
                                    PNSAddress paLocation,
                                    java.lang.String sRelay,
                                    java.lang.String sPassword)
                             throws NoPNSException
Eintrag eines neuen Stellennamens in den PNS. Dies ist nur möglich, wenn ein entfernter PNS vorhanden ist.

Parameters:
sPlaceFQ - Vollqualifizierter Stellenname.
paLocation - PNS-Adresse der genannten Stelle.
sRelay - Ersatzstelle für diese Stelle.
sPassword - Kennwort für das Ersetzen des Eintrags, falls vorhanden.
Returns:
Kennwort zur späteren Änderung oder eine Instanz der Klasse java.lang.Short, die einen Fehlerwert beinhaltet.
Throws:
NoPNSException - wenn kein PNS zur Verfügung steht.
See Also:
PlaceNameServer

removePlace

public short removePlace(java.lang.String sPlaceFQ,
                         java.lang.String sPassword)
                  throws NoPNSException
Entfernt eine Stelle aus dem PNS. Dies ist nur möglich, wenn ein entfernter PNS vorhanden ist.

Parameters:
sPlaceFQ - Vollqualifizierter Stellenname.
sPassword - Kennwort.
Returns:
Wert, der angibt, ob die Eintragung erfolgreich war.
Throws:
NoPNSException - wenn kein PNS zur Verfügung steht.
See Also:
PlaceNameServer

cleanCaches

public void cleanCaches()
                 throws NoPNSException
Bringt den PNS dazu, die Caches zu löschen. Dies ist nur möglich, wenn ein entfernter PNS vorhanden ist.

Throws:
NoPNSException - wenn kein entfernter PNS vorhanden ist.

getObject

public java.lang.Object getObject(java.lang.String sOID)
                           throws java.lang.Exception
Diese Methode liest den Wert eines Management-Objektes aus.

Throws:
java.lang.Exception - falls ein Fehler auftritt (Ich wollte zunächst keine zusätzliche Exception-Klasse einführen. kh)
Since:
2.5.0