Ziel
Der von der SI angebotene Web-Service stellt ausschliessliche Informationen über Buchungsdaten
von Kunden der angeschlossenen Sparkassen zur Verfügung. Insofern sind die Ausführungen nur für
Entwickler interessant, welche einen Zugang zu einem Echt-Institut oder zu dem Test-Institut haben.
Da die Anbinung mit enormen Zeitaufwand und einer nicht unwesentlichen finanziellen Belastung
verbunden war, möchte ich hier zumindest die technische Umsetzung darstellen, die sich auch nicht
gerade einfach darstellte! Allerdings werden hier nur die Aussagen der, von der SI gelieferten Dokumentation
ergäntzt. Somit empfehle ich dringend, diese Dokumentation parallel zu diesen Ausführungen zu lesen!
Vorraussetzungen
Für die Anbindung des webservice wird Clientseitig die Übertragung per RPC erwartet, sonstige Anforderungen
an Software bestehen nicht. Da jedoch ein Zugriff auf Buchungsdaten der Sparkassen erfolgt, werden besondere
Sicherheits-Anforderungen erhoben.
Administrativ werden benötigt:
- Rahmenvertrag mit der SI Münster
- Nutzungsschein über den Zugang zum Testinstitut
- Zugangsdaten mit Benutzer und initialen Passwort
- Zugangsdaten zum Entwickler-Portal der SI
- Zuweisung einer Application-ID
Zur Einwahl stellt die Si verschiedene Möglichkeiten zur Verfügung. Aus Kostengründen ist für die
Entwicklung die Verbindung via ISDN am sinnvollsten. Die ebenfalls angebotenen Internet- oder DSL-
Connection lohnen sich nur bei permanentem Datenaustausch.
An die Anbindung via ISDN werden folgenden Anforderugen gestellt:
- Feste Einwahlnummer zur SI
-
passive Netzwerkkomponente zwischen TK-Anlage und PC
(empfohlen wird ein CISCO ISDN-Router der 800'er Reihe
-
seperates Netzwerk (physisch getrennt) für die Komponenten die
mit der SI in Verbidung stehen
Sind all diese Vorraussetzungen erfüllt und die 4-stellige Gebühr für die Anmeldung
überwiesen, kann es los gehen!
Einrichtung Hardware
Da ein ISDN-Router der 800'er Serie von CISCO ausdrücklich empfohlen wird, sollte man auch
auf diesen zurück greifen. Da diese neu nicht ganz billig sind,
sollte man überlegen, ein 'refurbished' -es Gerät über Tecowin GmbH
zu beziehen. Unsere Erfahrung hiermit waren sehr positiv.
Der Anschluss an die TK ist erwartungsgemäss unproblematisch, die erforderlichen Einstellungen
der Netzwerkkarte am Client-PC werden von der SI geliefert. Für Monitoring kann das kostenlose
Tool Cisco Fast Step Monitor
genutzt werden (default Passwort ist 'cisco').
Zum Konfigurieren kann telnet oder Tera Term Pro von http://hp.vector.co.jp eingestzt werden.
Die Basis-Konfiguration wird freundlicherweise von den Technikern der SI übernommen. Gegebenenfalls
muss die MSN, welche zur Anwahl an die Si übermittelt wird noch mit der im Nutzungsvertrag angegebenen
abgeglichen werde. Auch die voreingestellt Zeit bis zum Auflegen ohne Datenverkehr sollte auf unter
einer Minute zurük gesetzt werden. Weiterführenden Informationen sind bei
xinux.de und direkt bei
Cisco
erhältlich.
Ein typischen Protokoll für die Änderung der MSN sieht wie folgt aus:
Password: xxxxxx
bub>enable
Password: xxxxxx
bub#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
bub(config)#interface BRI0
Anmelden in 'edit'-modus
bub(config-if)#isdn calling-number xxxxx (ohne Vorwahl)
Einstellen der abgehenden ISDN-Nummer
bub#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
bub#
Speichern der Konfiguration in die startup
Verbindung zu SI herstellen
Sind die administrativen Vorraussetzungen, insbesondere die Freischaltung in der Firewall,
gegeben, sollte ein Ping, mit einer geöffneten ISDN-Leitung, auf den ihnen bekannt gegebenen
virtuellen Server (196.1.4.3) eine Antwort geben. Um den Service nutzen zu können, muss noch
die Auflösung der URL auf die IP des Ziel-Servers (196.1.4.3) eingestellt werden. Dies geschieht
standardmässing unter WINDOWS in der Datei %system%/drivers/etc/hosts:
127.0.0.1 localhost
# SI-Projekte
196.1.4.3 d100at-dynt-inf.d100.intern
# erste URL für dynamische ZielURL
196.1.4.3 d100at-dynt-rpc.d100.intern
# dynamisch aus dem ersten Prozess gelieferte URL
Beispiel für die Auflösung der URL
Erstellen der Proxy-Klassen (java)
Die Beschreibungsdateien der einzelnen Prozesse werden von der SI zur Verfügung gestellt. Zur
Erstellung der Proxy-Klassen sollte man sinnvollerweise die empfohlene
Axis-Version 1.0 rc2 verwenden,
um die Problem mit dem besagten nil-update zu umgehen.
Etwas unübersichtlich erscheint jedoch
das Vorgehen, alle Klassen in das service-root zu bilden. Dies kann leicht zu 100 Klassen in diesem
Package führen. Will man die Klassen in entsprechnde Packages (pms.webservices.prozessname) organisieren,
tritt ein weiteres Problem auf. Zumindest die Klasse DynSKontext wird in jedem Prozess als gleiche
Instanz benötigt, kann also nicht aus verschiedenen Packages stammen. Um dies zu lösen habe ich in den
gebildeten Proxy-Klassen die Referenz von der package-DynSKontex auf die root-DynSKontex
umgeleitet.
Um eine effiziente Anprogrammierung durchzuführen, emphielt es sich ein Interface für alle Klassen zu
generieren. Hiermit ist man in der Lage die Prozesse dynamisch aufzurufen und die Abarbeitung nach externen
Parametern zu handeln, ohne sich um die Parameter der einzelnen Prozesse kümmern zu müssen. Hierzu empfehle ich,
eine weitere Prozy-Klasse je Prozess zu bilden, welche mit Hilfe des Reflection-API von Java die Informationen
aus den SI-Proxy-Klassen abfragt und diese in allgemeingültigen Methoden kappselt.
Anprogrammieren des Web-Service
Nun sollte das Beispiel in der Dokumentation der SI ein Ergebnis liefern. Problematisch
könnte das zeitverzögerte tunneling der SI sein. In unseren Test führte es zu nicht konstanten
Antworten des Aufsetzt-Service WS_ZIEL_URL_LESEN. Um diese Problem zu beheben, hat sich ein
asynchroner Aufruf der Prozesse herausgestellt. So ist ein fehlerfreier Ablauf sichergestellt.
Weiterhin muss vor dem ersen Anmeldung das mit der Freischaltung angegebenen Passwort geändert werden.
Dies ist insofern problematisch, da die erfolgreiche Anmeldung als Indikator für die erfolgreiche
Anprogrammierung gelten kann.
Work-flow
Für einen kompletten work-flow in java wenden Sie sich bitte an diese
email
Features:
- Mehrstufigen Aufruf (bspw. PERSON_LESEN_03 bis KONTO_LESEN_2) - mit dem Aufsatz Pers_Nr
- Wiederholenden Aufruf bei mehrzeiligen Ausagabe (bspw. PERSONEN_SUCHEN -> mehrfach PERSON_LESEN_03)
- Speicherung der Ergebnisse in verschiedenen DB-Formaten
|