
--- was kann ich alles mit HBCI4Java machen?

* Untersttzung der Version HBCI-2.01 bis HBCI-2.2 sowie FinTS-3.0

* Untersttzung von dateibasiertem RDH-Verfahren, PIN/TAN-Verfahren (seit 
  FinTS-3.0 auch das Zweischritt-Verfahren) und chipkartenbasierten DDV-
  Verfahren, dabei Untersttzung von Kartentypen 0 und 1, Chipkartenleser 
  Klassen 1-3 (bentigt CTAPI-Treiber) sowie Biometrieeinheit (nur Reiner-SCT)

* Untersttzung von SIZ-RDH-Schlsseldateien und RDH-2-Schlsseldateien
  (StarMoney, GENOlite, VR-Networld, ProfiCash, ...)
  
* Untersttzung der folgenden HBCI-Geschftsvorflle:
  - Einzelberweisungen
    . normale (Ueb)
    . Umbuchung (Umb)
    . Spendenberweisungen (Donation)
    . BZ-berweisungen (UebBZU)
  - Auslandsberweisungen
  - Sammelberweisungen (MultiUeb),
    Sammellastschriften (MultiLast)
    (jeweils HBCI4Java-eigener DTAUS-Generator vorhanden)
  - Verwalten von terminierten berweisungen
    . einreichen (TermUeb), auflisten (TermUebList), 
      bearbeiten (TermUebEdit) und lschen (TermUebDel)
  - Verwalten von Dauerauftrgen
    . einreichen (DauerNew), auflisten (DauerList), 
      bearbeiten (DauerEdit) und lschen (DauerDel)
  - Einreichen von Lastschriften (Last)
  - Widerrufen von Lastschriften (StornoLast)
  - Verwalten von Festgeldanlagen
    . zur Zeit nur Abfrage von Konditionen (FestCondList) und Auflisten von
      bestehenden Festgeldanlagen (FestList[All])
  - Abfrage von Kontoinformationen
    . Saldenabfragen (auch fr SEPA-fhige Konten) (SaldoReq[All|SEPA])
    . Abholen von Umsatzinformationen (Kontoauszug) (KUms[All|New])
    . Abholen von Kontostammdaten (AccInfo)
    . Abholen von Informationen zu ausgegebenen Karten (Cardlist)
  - Abholen und Senden verschiedener Informationen und Nachrichten
    (CustomMsg, InfoList, InfoOrder)
  - Auswertung des bankinternen Statusprotokolls (Status)
  - Anzeigen von Informationen zu TAN-Listen (nur bei PIN/TAN-Verfahren)
    (TANList)
  - Abholen von Wertpapierdepot-Informationen (WPDepotList)
  
  - es werden u.U. einige weitere Geschftsvorflle untersttzt, fr die 
    zur Zeit noch keine Highlevel-Untersttzung implementiert ist, 
    aber als Lowlevel-GVs lassen sich diese benutzen

* Erzeugen von Auftrgen:
  - Lowlevel-Interface: *schnelles* Implementieren neuer GVs mglich,
    starke Kontrolle ber alle GV-Parameter und Ergebnisdaten
  - Highlevel-Interface: anwendungsorientierte Schnittstelle zum
    Erzeugen von Auftrgen und zum Auswerten von Ergebnisdaten

* einfacher Zugriff auf Job-bezogene Statusinformationen einer
  HBCI-Antwortnachricht

* einfache Identifizierung von erzeugten Auftrgen und berprfen
  deren Status' im Statusprotokoll

* Zuordnung von Bankleitzahlen zu Kreditinstituts-Bezeichnungen

* diverse Tools zum Auslesen/Bearbeiten der DDV-Chipkarte, zum Erzeugen
  eines INI-Briefes, zum Bearbeiten der Passports (Sicherheitsmedien), usw.
  
* Batch-Tool fr automatisierte Abarbeitung von HBCI-Jobs, die in einer
  Textdatei definiert werden knnen

* Schlsselverwaltung:
  - Sperren von Nutzerschlsseln
  - Neugenerieren von Nutzerschlsseln
  - Setzen von Nutzerschlsseln auf vorgegebene Werte 

* dynamisches ndern von Kernel-Parametern zur Laufzeit

* verfolgen der HBCI-Kernel-Aktivitten durch Callbacks mglich 

* dynamische Anpassungen an HBCI-Server mit "Fehlern" in der 
  Implementation des HBCI-Standards

* Callback-Mechanismus fr die Kommunikation zwischen HBCI-Kernel
  und Anwendung, um unabhngig von der Laufzeitumgebung (Applikation,
  Servlet, Applet, mit oder ohne GUI usw.) zu sein
  
* Mglichkeit, bestimmte von HBCI4Java erkannte Fehler im HBCI-Dialog
  zu ignorieren (fr die Entwicklungsphase von Anwendungen)
  
* Demo-Applet bzw. Java WebStart Anwendung verfgbar

* Einsatz in multithreaded Anwendungen mglich

--- was macht HBCI4Java fr mich?

* automatische Auswertung der BPD:
  - automatisches Benutzen der jeweils hchsten untersttzten
    Version eines Geschftsvorfalls
  - automatisches Erzeugen zustzlicher Nachrichten, wenn max.
    Anzahl von GVs pro Nachricht berschritten wird
  - automatisches berprfen, ob bestimmte Einschrnkungen bzgl.
    eines zu erzeugenden Auftrages eingehalten wurden
  - automatisches Erkennen, ob ein bestimmter Geschftsvorfall
    von der Bank berhaupt angeboten wird
  - bei PIN/TAN-Verfahren: automatische Erkennung von Geschftsvorfllen,
    die eine TAN bentigen

* automatisches berprfen der verwendeten Kontonummern anhand
  der fr die jeweilige Bank zu verwendenden Prfzifferverfahren 

* automatisches Aktualisieren der BPD und UPD beim Wechsel der 
  fr die Dialoge benutzten HBCI-Version

* automatisches Konvertieren und Parsen von Datums- und Zeitangaben
  in bzw. von Locale-spezifischen Formaten

* fr jedes Sicherheitsmedium wird optional automatisch die damit zuletzt 
  benutzte HBCI-Version verwendet  

* passwortgeschtzte Sicherheitsmedien

* Speichern von (genderten) Zugangsdaten auf der Chipkarte 
  (fr DDV-Passports) mglich (wird teilweise fr Initialisierung
  der Benutzerkennung bentigt)

* sauberes Fehlerbehandlungs- und Status-System

* Erzeugen noch nicht existierender bzw. Initialisieren nicht 
  initialisierter Sicherheitsmedien (=Passports) zur Laufzeit und 
  ohne zustzlichen Programmcode innerhalb der HBCI-Anwendung
  (Beispiel siehe org.kapott.hbci.tools.AnalyzeReportOfTransactions)

* automatisches Erzeugen zustzlicher HBCI-Nachrichten, wenn
  in einer Antwortnachricht nicht alle verfgbaren Antwortdaten
  enthalten sind --> Abholen der restlichen Daten

* vllig automatisches Aktualisieren von BPD, UPD und Institutsschlsseln

--- Details der Implementation von HBCI4Java

* lauffhig auf allen Plattformen mit Java Runtime Environment 1.4+,
  fr Chipkartensupport wird zustzlich Untersttzung von dynamischen
  Bibliotheken bentigt.

* austauschbare integrierte HBCI-Spezifikation (XML-Format),
  damit leicht Anpassung an neue Versionen bzw. Debugging mglich
  
* I18N-Support fr Deutsch und Englisch (noch nicht fr alle Texte)

* modulares System fr folgende Komponenten, ermglicht einfaches
  Hinzufgen weiterer Module:
  - Kommunikationspfade (Standard-HBCI, PIN/TAN (HTTPS))
  - Kommunikationsfilter (Base64)
  - Datentypen fr Datenelemente
  - Highlevel-Support fr Geschftsvorflle
  - intern verwendete HBCI-Spezifikation
  - Sicherheitsmedien (=Passports: RDH mit Datei, DDV mit Chipkarte,
    PIN/TAN mit Datei)
  - Module fr Anpassung an "fehlerhafte" HBCI-Server
