de.bsvrz.kex.tls.osi2osi3.osi2.wancom
Class Server

java.lang.Object
  extended by de.bsvrz.kex.tls.osi2osi3.osi2.api.AbstractDataLinkLayer
      extended by de.bsvrz.kex.tls.osi2osi3.osi2.wancom.Server
All Implemented Interfaces:
DataLinkLayer, PropertyQueryInterface

public class Server
extends AbstractDataLinkLayer
implements PropertyQueryInterface

Klasse, die als OSI-2 Protokollmodul für den server-seitigen Teil einer WanCom-Verbindung eingesetzt werden kann. Zur Verwendung dieses Protokollmoduls als Primary ist an dem jeweiligen Anschlußpunkt in der Konfiguration in der Attributgruppe "atg.anschlussPunkt" im Attribut "ProtokollTyp" der Wert "de.bsvrz.kex.tls.osi2osi3.osi2.wancom.Server" einzutragen. Zur Verwendung dieses Protokollmoduls als Secondary ist an dem jeweiligen Anschlußpunkt-Kommunikationspartner in der Konfiguration in der Attributgruppe "atg.anschlussPunktKommunikationsPartner" im Attribut "ProtokollTyp" der Wert "de.bsvrz.kex.tls.osi2osi3.osi2.wancom.Server" einzutragen. Im Parameter "atg.protokollEinstellungenStandard" des Anschlußpunkts werden Defaultswerte für alle Verbindungen an diesem Anschlußpunkt eingestellt. Im Parameter "atg.protokollEinstellungenPrimary" bzw. "atg.protokollEinstellungenSecondary" der dem Anschlußpunkt zugeordneten AnschlußPunktKommunikationsPartner werden individuelle Werte für die Verbindung zum jeweiligen Kommunikationspartner eingestellt. Die Parameterdatensätze können mehrere Einträge enthalten die jeweils aus einem Namen und einem Wert bestehen. Folgende Tabelle enthält die Namen, Defaultwerte und eine Beschreibung der unterstützten Einträge:

Name Defaultwert Beschreibung
wancom.port 7100 Lokale TCP-Portnummer auf der Verbindungen entgegengenommen werden.
wancom.version 35 Im WanCom-Header übertragene Version des eingesetzten Protokolls.
wancom.keepAliveTime 20 Zeit in Sekunden zwischen dem Versand von 2 Keep-Alive Telegrammen.
wancom.keepAliveTimeoutCount 3 Anzahl von in Folge vergangenen keepAliveTime-Intervallen ohne Empfang eines KeepAlive-Telegramms bevor die Verbindung abgebrochen wird.
wancom.keepAliveType 50 WanCom-Type-Feld in KeepAlive-Telegrammen.
wancom.tlsType 600 WanCom-Type-Feld in versendeten TLS-Telegrammen.
wancom.tlsTypeReceive WanCom-Type-Feld in empfangenen TLS-Telegrammen. Dieser Wert muss nur angegeben werden, wenn er sich vom WanCom-Typen zum Versand (wancom.tlsType) unterscheidet. Wenn dieser Wert nicht angegeben wurde, wird der Wert von wancom.tlsType auch zum Empfang verwendet
wancom.connectRetryDelay 60 Wartezeit in Sekunden, bevor ein fehlgeschlagener Verbindungsversuch wiederholt wird.
wancom.localAddress Lokale Adresse, die in Wan-Com-Header als Absender eingetragen werden soll. Ein leerer Text, wird automatisch durch die aktuelle lokale Adresse der Wan-Com-Verbindung ersetzt.

Author:
Kappich Systemberatung

Nested Class Summary
static class Server.ActionType
          Definiert die Aktionscodes, die von den API-Methoden zur Steuerung des Protokoll-Threads versendet werden
 
Constructor Summary
Server()
          Default-Konstruktor, mit dem neue WanCom-Server Protokolle instanziiert werden können
 
Method Summary
 void abort()
          Bricht die Kommunikation auf allen Verbindungen des Protokolls sofort ab und beendet anschließend das Protokoll.
protected  byte[] createKeepAliveTelegramBytes(int version, int type, InetAddress localAddress)
           
 DataLinkLayer.Link createLink(int remoteAddress)
          Erzeugt ein neues Verbindungsobjekt.
protected  String getDefaultProperty(String name)
           
 int getMaximumDataSize()
          Bestimmt die maximale Anzahl von Nutzdatenbytes in einem OSI-2 Paket (Telegramm).
 boolean isStarted()
          Bestimmt, ob die Kommunikation dieses Protokolls bereits mit der Methode start() aktiviert wurde.
 void setDavConnection(ClientDavInterface connection)
          Nimmmt die Verbindung zum Datenverteiler entgegen.
 void setProperties(Properties properties)
          Setzt neue Protokollparameter.
 void shutdown()
          Terminiert alle Verbindungen des Protokolls und beendet anschließend das Protokoll.
 void start()
          Initialisiert das Protokoll und startet den Protokoll-Thread
 String toString()
           
 
Methods inherited from class de.bsvrz.kex.tls.osi2osi3.osi2.api.AbstractDataLinkLayer
addEventListener, getLocalAddress, getProperty, notifyEvent, notifyEvent, removeEventListener, setLocalAddress
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.bsvrz.kex.tls.osi2osi3.properties.PropertyQueryInterface
getProperty
 

Constructor Detail

Server

public Server()
       throws IOException
Default-Konstruktor, mit dem neue WanCom-Server Protokolle instanziiert werden können

Throws:
IOException
Method Detail

toString

public String toString()
Overrides:
toString in class Object
Returns:
Gibt Informationen des Protokolls für Debugzwecke zurück

setDavConnection

public void setDavConnection(ClientDavInterface connection)
Nimmmt die Verbindung zum Datenverteiler entgegen. Diese Methode wird vom OSI-3 Modul nach dem Erzeugen des OSI-2 Moduls durch den jeweiligen Konstruktor aufgerufen. Eine Implementierung eines Protokollmoduls kann sich bei Bedarf die übergebene Datenverteilerverbindung intern merken, um zu späteren Zeitpunkten auf die Datenverteiler-Applikationsfunktionen zuzugreifen.

Specified by:
setDavConnection in interface DataLinkLayer
Parameters:
connection - Verbindung zum Datenverteiler

isStarted

public boolean isStarted()
Bestimmt, ob die Kommunikation dieses Protokolls bereits mit der Methode start() aktiviert wurde.

Specified by:
isStarted in interface DataLinkLayer
Returns:
true, wenn die Kommunikation dieses Protokolls bereits aktiviert wurde, sonst false.

start

public void start()
Initialisiert das Protokoll und startet den Protokoll-Thread

Specified by:
start in interface DataLinkLayer

shutdown

public void shutdown()
Terminiert alle Verbindungen des Protokolls und beendet anschließend das Protokoll.

Specified by:
shutdown in interface DataLinkLayer

abort

public void abort()
Bricht die Kommunikation auf allen Verbindungen des Protokolls sofort ab und beendet anschließend das Protokoll.

Specified by:
abort in interface DataLinkLayer

setProperties

public void setProperties(Properties properties)
Setzt neue Protokollparameter. Alle Verbindungen werden mit den neuen Parametern reinitialisiert.

Specified by:
setProperties in interface DataLinkLayer
Overrides:
setProperties in class AbstractDataLinkLayer
Parameters:
properties - Neue Protokoll und Verbindungsparameter
See Also:
DataLinkLayer.Link.getProperty(java.lang.String)

createLink

public DataLinkLayer.Link createLink(int remoteAddress)
Erzeugt ein neues Verbindungsobjekt.

Specified by:
createLink in interface DataLinkLayer
Parameters:
remoteAddress - OSI-2 Adresse des Kommunikationspartners
Returns:
Neues Verbindungsobjekt

getDefaultProperty

protected String getDefaultProperty(String name)
Specified by:
getDefaultProperty in class AbstractDataLinkLayer

getMaximumDataSize

public int getMaximumDataSize()
Description copied from interface: DataLinkLayer
Bestimmt die maximale Anzahl von Nutzdatenbytes in einem OSI-2 Paket (Telegramm).

Returns:
Maximale Anzahl Nutzdatenbytes.

createKeepAliveTelegramBytes

protected byte[] createKeepAliveTelegramBytes(int version,
                                              int type,
                                              InetAddress localAddress)