Webservice light

Manchmal kann es nützlich sein, Informationen über das Internet bereitzustellen – und damit ist diesmal nicht der Zugriff auf eine Datenbank auf einem Webserver gemeint. In diesem Fall soll eine Anwendung etwa selbst ermitteln können, ob es ein Update für sie gibt, oder sie soll Informationen wie etwa Registrierungsdaten zum Webserver des Benutzers übermitteln. Dieser Beitrag stellt eine kleine Lösung bereit, mit der Sie die notwendigen Daten auf einem Webserver bereitstellen, und zeigt, wie Sie diese Informationen per Access-Datenbank auslesen.

Dabei soll die Informationsbeschaffung keine Einbahnstraße sein: Ziel der Lösung dieses Beitrags ist es zunächst, dass Sie von einer Access-Anwendung aus eine Anfrage an einen Webserver schicken können.

Diese Anfrage soll aber durchaus auch noch Parameter enthalten können, die dann von einem entsprechenden Algorithmus auf dem Webserver ausgewertet und entsprechend beantwortet werden können.

PHP als Programmiersprache

Die in diesem Beitrag vorgestellte Lösung basiert serverseitig auf der Sprache PHP. Auch, wenn Sie sich als Leser dieses Magazins zumindest als Anwender von Microsoft-Produkten zu erkennen geben, scheinen die meisten Webanwendungen auf Unix/Linux-Servern zu laufen – dementsprechend ist die Chance, dass Sie die Möglichkeit zum Ausprobieren dieser Lösung auf einem Server mit PHP haben, relativ hoch. Die Portierung des hier vorgestellten, einfachen Codes auf eine andere Sprache sollte jedoch nicht allzu kompliziert sein.

Webservice light

Normalerweise verwendet man für solche Anforderungen einen Webservice. Dies ist jedoch nicht ganz trivial, sodass wir eine etwas vereinfachte Variante eines Webservice nutzen möchten, die auf einer einzigen .php-Seite basiert.

Die .php-Seite soll dabei die von der Anwendung abgeschickten Parameter auswerten und eine entsprechende Antwort zurücksenden.

Im einfachsten Fall sieht das wie folgt aus: Sie schicken vom Rechner aus eine Anfrage ab, die beispielsweise http://www.acciu.de/zeit.php lautet. Der Webserver soll dann ein XML-Dokument zurücksenden, das etwa so aussieht:

<xml version=''1.0''>
<zeit>18:37:20</zeit>

Dieses Dokument können wir mithilfe der MSXML-Bibliothek anschließend leicht auswerten.

Unser einfacher Webservice soll jedoch auch Parameter verarbeiten können. Diese werden beim Aufruf an den Link angehängt – zum Beispiel so:

<Webadresse>/update.phpversion=1.0.0.3

Die Webseite update.php soll nun anhand der übermittelten Version prüfen, ob es eine neuere Version gibt, und gegebenenfalls einen Link auf die neue Version übermitteln (den Ausdruck <Webadresse> in diesem und den folgenden Beispielen ersetzen Sie durch die entsprechende Webseite, beispielsweise http://www.access-im-unternehmen.de/index.php).

Auch solche Anforderungen kann unser im Anschluss vorgestellter Webservice light erledigen – grundsätzlich gibt es kaum Grenzen, sofern Sie sich die Programmierung der wenigen notwendigen PHP-Codezeilen zutrauen und auf einen Webserver mit PHP zugreifen können.

Technik zum Anfragen der XML-Antworten

Der erste interessante Teil der Implementierung ist die Übertragung der Webadresse mit den Parametern zum Webserver und das Auslesen der Antwort auf diese Anfrage.

Diese Technik können Sie grundsätzlich verwenden, um beliebige Webseiteninhalte oder auch Dateien herunterzuladen. Die erste Variante dieser Funktion sieht wie in Listing 1 aus und erwartet den Link zur einzulesenden Datei als Parameter. Sie liefert den Quellcode dieser Datei zurück:

Listing 1: Einfache Routine zum Herunterladen von Quelltexten

Public Function DownloadText(ByVal strDateiadresse As String) As Text
    Dim objXMLHTTP As MSXML2.XMLHTTP
    Set objXMLHTTP = New MSXML2.XMLHTTP
    With objXMLHTTP
        .Open "GET", strDateiadresse, True
        .send
        Do While Not .ReadyState = 4
            DoEvents
        Loop
        DownloadText = .responseText
    End With
End Function

Dazu verwendet sie das Objekt XMLHTTP der Bibliothek Microsoft XML, Version x.0, wobei x.0 für die neueste verfügbare Version steht (aktuell 6.0).

Dieses Objekt erlaubt es beispielsweise, Anfragen an einen Webserver zu senden und das von diesem gelieferte Resultat weiterzuverarbeiten. In diesem Falle rufen Sie die Anwendung beispielsweise so auf:

Debug.Print DownloadText("http://www.access-im-unternehmen.de")

Dies gibt, im Direktfenster eingesetzt, beispielsweise den kompletten Quelltext der angegebenen Internetseite aus.

Wenn Sie nun beispielsweise die aktuelle Version einer Software damit über das Internet verfügbar machen möchten, würden Sie etwa eine Datei wie die folgende mit der Nummer der aktuellsten Version auf einen Webserver legen:

<xml version=''1.0''>
<currentVersion>1.0.0.3</currentVersion>

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