org.kapott.hbci.server
Class HBCIServer

Object
  |
  +--org.kapott.hbci.server.HBCIServer

public class HBCIServer
extends Object

Diese Klasse repräsentiert einen HBCI-Server. Eine HBCI-Server-Anwendung muss eine Instanz dieser Klasse erzeugen. Anschließend kann der HBCI-Server mit start() gestartet werden.


Constructor Summary
HBCIServer(DataStore dataStore, ServerCallback callback)
          Erzeugen einer HBCI-Server-Instanz.
 
Method Summary
 org.kapott.hbci.passport.HBCIPassport getPassport(String userid)
          Ermitteln des intern verwendeten Passort-Objektes für eine gegebene gültige Benutzerkennung.
 void reInitializeServerData()
          Aktualisieren der vom HBCI-Server verwendeten Laufzeitdaten.
 void reInitializeUserData(String userid)
          Aktualisieren der server-internen Daten für einen bestimmten Nutzer.
 void start()
          Starten des HBCI-Servers.
 void stop()
          Damit kann ein laufender Server wieder gestoppt werden.
 

Constructor Detail

HBCIServer

public HBCIServer(DataStore dataStore,
                  ServerCallback callback)
Erzeugen einer HBCI-Server-Instanz. Intern wird eine Reihe von Datenstrukturen für den Betrieb eines HBCI-Servers initialisiert. Die beiden übergebenen Argumente müssen Objekte sein, die die jeweiligen Interfaces implementieren (und dürfen nicht null sein!). Die Methoden dieser Interfaces werden vom Server-Code aus aufgerufen, um mit der HBCI-Server-Anwendung (und damit indirekt wahrscheinlich mit dem Backend-System der Bank) zu kommunizieren.

Parameters:
dataStore - Objekt, welches intern benutzt wird, um Zugriff auf Laufzeitdaten des Servers zu erhalten (Nutzerkennungen, unterstützte Geschäftsvorfälle usw.)
callback - Objekt, dessen Methoden aufgerufen werden, wenn während eines HBCI-Dialoges mit einem HBCI-Client bestimmte Ereignisse auftreten (z.B. das Eintreffen eines Auftrages).
Method Detail

start

public void start()
Starten des HBCI-Servers. Diese Methode blockiert, solange der Server läuft. Soll die HBCI-Server-Anwendung also noch andere Aufgaben erledigen (z.B. die externe Steuerung des HBCI-Servers ermöglichen [siehe stop() oder reInitializeServerData()]), so muss ein zusätzlicher Thread erzeugt werden


reInitializeServerData

public void reInitializeServerData()

Aktualisieren der vom HBCI-Server verwendeten Laufzeitdaten. Beim Starten des HBCI-Servers (siehe start()) wird das dataStore-Objekt (siehe HBCIServer(DataStore,ServerCallback)) benutzt, um einige Daten der Laufzeitumgebung zu initialisieren. Während der Laufzeit des Servers werden diese Daten nicht immer wieder über dieses Interface abgefragt, sondern es wird ein Großteil dieser Informationen innerhalb des HBCI4Java-Server-Codes gecacht. Eine nachträgliche Veränderung der Daten, die von den dataStore-Methoden zurückgegeben werden, hat also u.U. keine Auswirkung auf den HBCI-Server.

Durch den Aufruf dieser Methode wird der HBCI-Server gezwungen, sämtliche Caches zu löschen und alle benötigten Daten erneut über das dataStore-Objekt abzufragen.

Diese Methode kann natürlich nur aufgerufen werden, wenn der Server läuft (siehe start()). Da ein laufender Server aber die start()-Methode blockiert, muss die Server-Anwendung mehrere Threads realisieren, wobei in einem Thread die start()-Methode (und damit der Server) läuft, aus einem andern Thread heraus kann reInitializeServerData() aufgerufen werden.


reInitializeUserData

public void reInitializeUserData(String userid)
Aktualisieren der server-internen Daten für einen bestimmten Nutzer. Es werden die serverseitig gecachten nutzerbezogenen Daten für die angegebene userid als ungültig markiert, so dass diese vor der nächsten Verwendung neu vom DataStore abgeholt werden. Es gelten die gleichen Anmerkungen wie für die Methode reInitializeServerData().

Parameters:
userid - Nutzer-ID, für die die Daten vor der nächsten Verwendung neu geladen werden sollen.

stop

public void stop()
Damit kann ein laufender Server wieder gestoppt werden. Es gelten die gleichen Anmerkungen zum MultiThreading wie bei der Methode reInitializeServerData().


getPassport

public org.kapott.hbci.passport.HBCIPassport getPassport(String userid)
Ermitteln des intern verwendeten Passort-Objektes für eine gegebene gültige Benutzerkennung. Diese Methode liefert das Passport-Objekt zurück, welches von HBCI4Java-Server intern verwendet wird, um die kryptografischen Funktionen für die Kommunikation mit dem jeweiligen Nutzer zu realisieren.

Parameters:
userid - Nutzerkennung, für die das intern verwendete Passport-Objekt zurückgegeben werden soll (muss im System existieren!)
Returns:
von HBCI4Java-Server verwendetes Passport-Objekt