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

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

public class Client
extends WanCom
implements PropertyQueryInterface

Klasse, die als OSI-2 Protokollmodul für den client-seitige Teil einer WanCom-Verbindung eingesetzt werden kann. Zur Verwendung dieses Protokollmoduls 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.Client" 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.host Domainname oder IP-Adresse des Kommunikationspartners.
wancom.port 7100 TCP-Portnummer des WanCom-Servers beim Kommunikationspartner.
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 Client.ActionType
           
private static class Client.IllegalTelegramException
           
private  class Client.Link
           
private static class Client.PriorizedByteArray
           
private  class Client.Worker
           
 
Field Summary
private static Debug _debug
           
private  List<Client.Link> _links
           
private  Object _protocolLock
           
private  ProtocolState _protocolState
           
(package private)  Client.Worker _worker
           
private  Thread _workThread
           
 
Constructor Summary
Client()
           
 
Method Summary
 void abort()
          Beendet die Kommunikation dieses Protokolls.
 DataLinkLayer.Link createLink(int remoteAddress)
          Erzeugt eine neue logische Verbindung zu einem bestimmten Kommunikationspartner.
 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 einen neuen Satz von Protokoll-Parametern.
 void shutdown()
          Beendet die Kommunikation dieses Protokolls.
 void start()
          Aktiviert die Kommunikation dieses Protokolls.
 String toString()
           
 
Methods inherited from class de.bsvrz.kex.tls.osi2osi3.osi2.wancom.WanCom
createKeepAliveTelegramBytes, getDefaultProperty, getMaximumDataSize
 
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
 

Field Detail

_debug

private static final Debug _debug

_worker

final Client.Worker _worker

_workThread

private final Thread _workThread

_protocolLock

private final Object _protocolLock

_protocolState

private ProtocolState _protocolState

_links

private List<Client.Link> _links
Constructor Detail

Client

public Client()
       throws IOException
Throws:
IOException
Method Detail

toString

public String toString()
Overrides:
toString in class Object

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()
Description copied from interface: DataLinkLayer
Aktiviert die Kommunikation dieses Protokolls.

Specified by:
start in interface DataLinkLayer

shutdown

public void shutdown()
Description copied from interface: DataLinkLayer
Beendet die Kommunikation dieses Protokolls. Alle noch verbundenen Links werden mit der Methode DataLinkLayer.Link.shutdown() terminiert. Dabei wird sichergestellt, dass Daten, die zuvor an die Methode DataLinkLayer.Link.send(byte[], int) übergeben wurden, auch übertragen werden.

Specified by:
shutdown in interface DataLinkLayer

abort

public void abort()
Description copied from interface: DataLinkLayer
Beendet die Kommunikation dieses Protokolls. Alle noch verbundenen Links werden mit der Methode DataLinkLayer.Link.abort() terminiert.

Specified by:
abort in interface DataLinkLayer

setProperties

public void setProperties(Properties properties)
Description copied from interface: DataLinkLayer
Setzt einen neuen Satz von Protokoll-Parametern. Diese dienen auch als Defaultwerte für die Verbindungsparameter.

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

createLink

public DataLinkLayer.Link createLink(int remoteAddress)
Description copied from interface: DataLinkLayer
Erzeugt eine neue logische Verbindung zu einem bestimmten Kommunikationspartner.

Specified by:
createLink in interface DataLinkLayer
Parameters:
remoteAddress - OSI-2 Adresse bzw. Portnummer des gewünschten Kommunikationspartners.
Returns:
Logische Verbindung zum Kommunikationspartner.