Google per Web-Service abfragen

Christoph Spielmann, Düsseldorf

Die Kommunikation zwischen Anwendungen spielt bei modernen Datenbanken eine wesentliche Rolle. Häufig ist es beispielsweise notwendig, dass eine Anwendung auf eine Datenbank zugreifen soll, hierbei jedoch keinen direkten Zugriff auf die Tabellen haben darf. Zudem kann der Fall eintreten, dass die Datenbank nicht auf dem lokalen PC oder im lokalen Netzwerk, sondern irgendwo im Internet untergebracht ist. Um hier eine Kommunikation zu ermöglichen, bietet sich der Einsatz von Web-Services an. Dieser Artikel zeigt Ihnen, wie Sie mit Access auf den Web-Service der Suchmaschine „Google“ zugreifen und die abgefragten Suchergebnisse in einer Datenbank speichern.

Bei Web-Services handelt es sich um Anwendungen, die ihre Dienste über ein standardisiertes Protokoll zur Verfügung stellen. Hinter diesem Protokoll verbirgt sich nichts anderes als eine Textdatei im XML-Format.

Der Hintergrund ist, dass XML-Dateien von modernen Browsern wie herkömmlicher HTML-Code interpretiert werden können. Dementsprechend gelangen XML-Dateien z. B. problemlos durch Firewalls, sofern diese für den normalen Transfer von Web-Seiten freigeschaltet sind. Die Kommunikation findet über den Port 80 statt, der für Web-Server reserviert ist.

Nun genügt es nicht zu definieren, dass die Daten per XML übertragen werden. Wichtig ist außerdem noch, dass eine spezielle XML-Struktur zum Einsatz kommt. Diese Strukturdefinition trägt den Namen SOAP (Simple Object Access Protocol). Bei der Entwicklung von SOAP war das Ziel, die Kommunikation für den Benutzer möglichst einfach zu gestalten. Zudem sollte SOAP alle möglichen Programmier-Werkzeuge und Plattformen (z. B. Windows, Linux oder Macintosh) unterstützen.

Herausgekommen ist ein standardisiertes Protokoll zum Abruf von Objektmethoden über das Internet. Sie kennen dies bereits von VBA und Access: Wenn Sie ein Klassenmodul namens clsDienst in Ihrer Anwendung haben, können Sie die darin enthaltene Methode Start über die folgende Syntax aufrufen:

Dim MeinDienst as new clsDienst
MeinDienst.Start

ähnlich einfach ist der Aufruf mit Hilfe von SOAP, wenn sich die Klasse Dienst auf einem Rechner im Internet befindet.

Da Web-Services eine relativ neue Technologie sind, stellt Access noch keine eingebauten Funktionen zum Aufruf von Web-Services zur Verfügung. Sie benötigen dafür ein spezielles Toolkit namens Microsoft Office XP Web Services Toolkit 2.0. Um die hier vorgestellte Lösung nachvollziehen zu können, müssen Sie dieses Toolkit unter der folgenden Adresse herunterladen:

Abb. 1: Registrierung bei Google

http://download.microsoft.com/download/OfficeXPDev/Install/2.0/W982KMeXP/DE/setup.exe

Achten Sie darauf, dass Sie nicht versehentlich die Version 1.0 herunterladen, auf die Microsoft noch von den Office-Startseiten verlinkt.

Hinweis

Von dem Zusatz XP sollten Sie sich übrigens nicht verwirren lassen: Das Toolkit funktioniert sowohl mit Access 2000 als auch mit Access XP. ältere Versionen wie z. B. Access 97 werden allerdings nicht unterstützt.

Nach dem Download starten Sie die EXE-Datei und installieren das Toolkit.

Wie bereits erwähnt, greift das hier vorgestellte Beispiel auf die Suchmaschine Google zu. Die Google-Betreiber möchten hierbei sicherstellen, dass der Zugriff nicht missbraucht wird.

Schließlich wäre es denkbar, eine eigene Suchmaschine im Internet zu veröffentlichen, die in Wirklichkeit per Web-Service auf Google zugreift. Aus diesem Grund ist eine vorhergehende Registrierung bei Google erforderlich, bei der Sie einen Schlüssel erhalten. Dieser Schlüssel berechtigt Sie, täglich maximal 1000 Suchergebnisse abzufragen, was in der Praxis mehr als genug sein dürfte.

Zur Durchführung der Registrierung gehen Sie wie folgt vor:

  • Rufen Sie den Internet-Explorer auf und wechseln Sie zu der Seite http://www.google.de/apis/.
  • Klicken Sie auf create a google account.
  • Geben Sie Ihre E-Mail-Adresse und ein beliebiges Passwort ein.
  • Erzeugen Sie Ihr Konto über die entsprechende Schaltfläche.
  • Warten Sie auf die Bestätigungs-E-Mail, die Google automatisch an die angegebene Adresse sendet.
  • Klicken Sie den in der Bestätigungs-E-Mail enthaltenen Link an. Hierdurch teilen Sie Google mit, dass Sie eine korrekte E-Mail-Adresse angegeben haben.
  • Wechseln Sie wieder zu der Seite http://www.google.de/apis/ und klicken Sie erneut auf create a google account.
  • Klicken Sie anschließend auf Sign in here und geben Sie Ihre E-Mail-Adresse und das Passwort an. Bestätigen Sie mit Sign in (s. Abb. 1). (
  • Nach dem letzten Schritt erhalten Sie von Google eine erneute E-Mail, die Ihren Schlüssel zum Zugriff auf den Web-Service enthält. Bewahren Sie diesen gut auf.

    Abb. 2: Der Startbildschirm des Web-Service-Toolkits

    Abb. 3: Die Suche nach Web-Services zum Thema Wetter.

    Um nun eine Verbindung zu Google herzustellen, legen Sie zunächst eine neue Access-Datenbank an. Klicken Sie anschließend auf Module und danach auf Neu, um ein neues Modul anzulegen. Dieser Schritt ist erforderlich, da die Funktionen des Web-Service-Toolkits nur vom VBA-Editor aus zur Verfügung stehen.

    Nachdem Sie nun den VBA-Editor auf dem Bildschirm haben, wählen Sie den Menüpunkt Extras/Webdienstverweise aus. Dieser Menüpunkt startet das Toolkit (s. Abb. 2).

    Auf der linken Seite des Startfensters haben Sie die Möglichkeit, nach Web-Services zu suchen. Hierbei kommen spezielle Suchmaschinen zum Einsatz. Wenn Sie beispielsweise unter Schlüsselwörter den Text weather eingeben und anschließend auf Suchen klicken, erscheint einige Zeit später eine Liste aller Web-Services zum Thema Wetter (s. Abb. 3). Voraussetzung für die erfolgreiche Suche ist natürlich, dass Sie mit dem Internet verbunden sind.

    Anhand der Liste können Sie bereits die Struktur der einzelnen Dienste erkennen. Der Dienst WeatherRetriever unterstützt beispielsweise zwei Methoden namens GetTemperature und GetWeather. Um den Web-Service auszuprobieren, markieren Sie diesen in der Liste und klicken auf Testen.

    Das Toolkit öffnet nun den Internet-Explorer und ruft eine spezielle Seite auf, die der Anbieter zum Test des Web-Services zur Verfügung stellt. Auf dieser Seite werden auch die beiden Methoden GetTemperature und GetWeather aufgeführt (s. Abb. 4).

    Hinweis

    Dieser Web-Service wurde mit Hilfe der Microsoft .NET-Technologie entwickelt. Wenn Sie einen mit einem anderen Werkzeug entwickelten Web-Service aufrufen, hat die Testseite einen anderen Aufbau.

    Abb. 4: Die Hauptseite zum Test eines Web-Service

    Abb. 5: Auswahl des Ortes zur Ermittlung der Temperatur

    Abb. 6: Das Ergebnis der Temperatur-Abfrage

    Abb. 7: Die URL des Google Web-Service

    Klicken Sie auf der Testseite auf GetTemperature. Sie gelangen hierdurch auf eine zweite Seite, in der Sie den US-ZIP-Code des Ortes eingeben können, von dem Sie die aktuelle Temperatur wissen möchten. Geben Sie hier 20000 ein und bestätigen Sie mit Invoke (s. Abb. 5).

    Es erscheint eine weitere Web-Seite, die das Ergebnis in Form einer XML-Datei anzeigt (s. Abb. 6).

    Das Ergebnis wird in Fahrenheit ausgegeben.

    Nachdem Sie nun den ersten Test mit einem Web-Service durchgeführt haben, soll nun eine Verbindung zu Google hergestellt werden. Zu diesem Zweck klicken Sie in dem Startbildschirm des Web-Service-Toolkits auf Webdienst-URL und geben folgende URL ein (s. Abb. 7). Beachten Sie dabei Groß- und Kleinschreibung:

    http://api.google.com/GoogleSearch.wsdl

    Dieser Link zeigt auf eine WSDL-Datei (Web Service Definition Language), die den Aufbau und die Struktur des Web-Services beschreibt. Hier ist beispielsweise hinterlegt, welche Parameter zur Suche in Google erforderlich sind und wie das Suchergebnis strukturiert ist.

    Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
    Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
    Zur Bestellung ...
    Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
    Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar