Startseite Biographie Gästebuch Foto's Projekte Lösungen Lebenslauf

PMS der SI Münster!
::das ist Dirk Müller::

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

 
Impressum Donation Intern