Erstellen eines Datenzugriffs-Web Service auf der iSeries

12. November 2008 | Von | Kategorie: Hochverfügbarkeit, Load`n`go

Web Services bieten einen standardisierten Ansatz für System-zu-System-Interaktionen und damit für die weitere Automatisierung von geschäftlichen Prozessen. Darin liegt ein enormes Potential zur effizienteren Gestaltung der Beziehungen zwischen Anbietern und Kunden. Web Services bieten auch neue Möglichkeiten für die Wiederverwendung von Diensten und ihre Einbindung in größere, konfigurierbare Systeme auf Workflow-Ebene.

Erstellen Sie einen Datenzugriffs-Web Service für plattformübergreifenden Datenaustausch

von Dean Amo

Übersetzer Übersetzt und für den deutschsprachigen Markt überarbeitet von Mathias Spateneder

pa12_cvs_MG_6986

Wir zeigen Ihnen hier an einem Beispiel, wie Sie mit frei verfügbaren Open-Source-Tools schnell und einfach eine kommerzielle Web Service-Anwendung erstellen. Unser Web Service ist nicht schwierig, aber Sie benötigen Grundkenntnisse in der QShell-Navigation. Auch Anwender des Web Service müssen wissen, wie ein Web Service von ihrer Plattform aus aufgerufen wird, und sie müssen über SQL-Kenntnisse verfügen, um über den Service Datenbankabfragen auf dem Zielsystem ausführen zu können. Den Quellcode zu unserem Beispiel finden Sie unter www.newsolutions.de.

Über unser Beispiel

Wir wollen einen Datenzugriffs-Web Service für plattformübergreifenden Datenaustausch aufbauen. Open-Source Software bietet kostenlose Unterstützung bei der Herausgabe von Web Services, aber auf der iSeries gibt es auch andere Möglichkeiten zum Erstellen von Web Services und es kommen ständig neue dazu. Das IBM WebSphere Development Studio ist eine dieser Optionen: Es enthält Wizards, mit denen Sie Ihre Java-Klassen in einen Web Service umwandeln. Auch Sun Microsystems brachte erst kürzlich ein eigenes Entwicklungs-Toolkit für Web Services heraus. Wir verwenden für unser Beispiel zwei Open-Source Produkte der Apache Software Foundation: Tomcat und Axis. Tomcat ist als Servlet Container und Java Server Page (JSP) Engine eine kostenlose Alternative zu IBMs WebSphere. Wie die Standard-Edition von WebSphere unterstützt Tomcat keine Enterprise Java Beans.

Wenn Sie Interesse an Open-Source Software mit EJB-Funktionalität haben, suchen Sie am besten auf dem JBoss Application Server unter www.jboss.org. Axis bietet eine Oberfläche für Hosted Web Services und hat erst kürzlich das Beta-Stadium verlassen. Das erste Release läuft in unserer Beispielanwendung zufriedenstellend, weil die Ein-/Ausgabe unseres Web Service auf einen einfachen Objekt-/Datentyp beschränkt ist: den String. Unser Beispiel-Web Service ist eine einfache, generische Datenzugriffs-Klasse, die eine übergebene SQL-Anweisung ausführt und das Ergebnis in einem von zwei möglichen Formaten zurückgibt (abhängig von der aufgerufenen Methode). Die Methoden der Klasse sind runSQLReturnDS und runSQLReturnXML. Wie die Namen andeuten, führen beide Methoden SQL-Anweisungen aus, wobei die erste das Ergebnis in einem String mit Trennzeichen zurückgibt und die andere im XML-Format. Nur ein Parameter, eine SQL-Anweisung, muss an den Service übergeben werden. Die Datenbanksicherheit wird von Service selbst abgehandelt. In unserem Beispiel fehlen einige wichtige Features, die Sie jedoch nutzen sollten, wie z.B. Skalierung (Database Connection Pooling) und Anwendungssicherheit. Zur Gewährleistung der Anwendungssicherheit können Sie den Service so modifizieren, dass er Parameter für Benutzer und Kennwort annimmt. Vielleicht sollten Sie auch das Thema Sicherheitsstandards für Web Services angehen, zu dem Secure Socket Layer (SSL) zum Verschlüsseln der Verbindung und digitale Zertifikate zum Authentifizieren beider Parteien einer Transaktion gehören. Beachten Sie, dass der hier vorgestellte Service für den Einsatz in einem privaten Netz konzipiert ist. Er ist nützlich zum Ausgeben von iSeries-Daten auf einem PC-basierten Web Server , der außerhalb einer Firewall vielleicht gefährdet wäre. Sie könnten den Code auch verwenden, um Informationen allgemein verfügbar zu machen, aber jede proprietäre Anwendung erfordert zusätzliche Sicherheit.

Januar Utility der NEWSolutions
load´n´go

Anforderungen

Zum Ausführen der Anwendung benötigen Sie das Java Development Toolkit, Version 1.3 oder höher, und den QShell-Interpreter. Wenn Sie das JDK 1.5 einsetzen, müssen Sie eventuell einige Pakete verschieben. Details dazu finden Sie in der Dokumentation von Axis. Um optimale Ergebnisse zu erzielen, sollten auch das letzte kumulative PTF und das aktuelle JAVA-Gruppen-PTF installiert sein. Abbildung 1 zeigt die empfohlenen Gruppen-PTFs, die Sie benötigen, um diesen Anforderungen zu genügen. Sicherheitshalber sollten Sie sich aber bei IBM über den aktuellen PTF-Stand informieren. Einfachheitshalber benutzen wir den Lightweight-HTTP-Server, der in der Apache Tomcat Distribution enthalten ist. Sie können Axis aber auch mit dem IBM HTTP-Server (powered by Apache) einsetzen, der Tomcat verwendet, um Servlets und JSPs anbieten zu können. Dies ist die bessere Wahl, wenn Sie vorhaben, eine große Anzahl von Webseiten auf derselben Box anzubieten. Zusätzlich benötigen Sie die binären Distributionen von Apache Tomcat, Release 4.1.18 und Apache Axis, Release 1.0, die Sie unter www.apache.org finden können. Tomcat ist unter dem Jakarta-Link zu finden und Axis unter dem XML-Link. Laden Sie die Zip-Versionen dieser Distributionen herunter.

pa12_cvs_MG_6986

Nachdem alle Software-Voraussetzungen erfüllt sind, kann die schrittweise Installation beginnen:

Step 1: Standalone Apache Tomcat installieren

Die aktuellste Version von Tomcat (bei Drucklegung dieses Artikels) ist 4.1.29. Sie unterstützt die Servlet 2.3 und JSP 1.2 Spezifikationen. Laden Sie sich die aktuellste Distribution von der Apache-Website auf Ihren PC herunter. Als nächstes laden Sie das Paket auf Ihre iSeries und speichern es im IFS. Wenn Sie nicht wissen, wie man Dateien von einem PC auf die iSeries übertragen kann, verwenden Sie die Windows-Befehlszeilenversion von FTP:

  1. Um FTP von der Befehlseingabe aus zu benutzen, wählen Sie im Startmenü die Option Ausführen und geben folgendes ein:
    FTP Hostname
    Für Hostname setzen Sie den Namen oder die IP-Adresse Ihrer iSeries ein.
  2. Melden Sie sich an, indem Sie die Eingabeaufforderungen für den Benutzernamen und das Kennwort beantworten.
  3. Übertragen Sie die Datei mit dem Befehl Put, wobei Sie Quell- und Zielverzeichnis folgendermaßen angeben: put
    <PC-Quellverzeichnis\Datei>
        <iSeries-Zielverzeichnis\Datei>

    Beispiel: 

    put c:\download\jakarta-tomcat-4.1.29.zip
        \tmp\jakarta-tomcat-4.1.29.zip
  4. Nach der Übertragung geben Sie den Befehl Quit ein, um die FTP-Sitzung zu beenden. Nachdem die Datei mit der Distribution auf die iSeries übertragen wurde, können Sie daran gehen, das Paket zu extrahieren. Starten Sue dazu mit dem Befehl QSH eine QShell-Sitzung, und gehen Sie in das Verzeichnis, in dem Sie die Tomcat-Distribution gespeichert haben. Extrahieren Sie die Dateien mit Hilfe des Java-Utilities jar aus dem Zip-Archiv:
    jar  xf jakarta-tomcat-4.1.29.zip

    Sobald das Dollarzeichen ($) der Befehlseingabe erscheint, ist die Extraktion abgeschlossen. Verschieben Sie jetzt das Verzeichnis an seinen endgültigen Speicherort. Das Verzeichnis hat einen langen Namen. Wenn Sie es umbenennen möchten, ist jetzt der richtige Zeitpunkt dafür. Zum Verschieben und Umbenennen von Verzeichnissen verwenden Sie den Unix-Befehl mv:

Schlagworte: , , , , , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.