Home » Tutorials » Netzwerk und Internet » Webservice-Client

Webservice-Client

Begriffe

Webservice

Was also ist ein Webservice? Es geht um verteilte Anwendungen. Heutzutage wird auf das Web hauptsächlich über einen Browser zugegriffen. Der Browser wird (zwangsläufig) von einem Menschen bedient. In vielen Fällen wäre es jedoch einfacher, wenn ein spezielles Programm auf dem lokalen Rechner die Daten übers Web sendet und empfängt. Es unterhalten sich also zwei Anwendungen über das Internet miteinander. Die eine Anwendung befindet sich auf einem Webserver, die andere beim Benutzer. Ob das nun ein Desktop-PC, ein PDA oder ein Handy ist, ist nicht relevant.
Was ist nun der Vorteil davon gegenüber dem Surfen mit einem Browser? Nehmen wir ein Beispiel: Börsendaten. Die lokale Anwendung setzt sich über das Internet mit einem Webservice in Verbindung. Sie fragt ihn, welche Prozeduren und Funktionen er öffentlich zur Verfügung stellt und ruft dann eine davon auf. Wenn sie ein Ergebnis zurückgeliefert bekommt, kann sie dieses auswerten. Im Beispiel könnte das so aussehen: Die lokale Anwendung möchte alle Börsenkurse bestimmter Firmen. Wenn der Webservice eine Funktion zur Verfügung stellt, der man den Firmennamen (oder ein entsprechendes Kürzel) mitgibt und die dann den Kurswert zurückliefert, hat man das Problem gelöst, ohne sich per Hand von Webseite zu Webseite durchklicken zu müssen. Die Anwendung könnte den aktuellen Kurs sogar automatisch in einer Datenbank ablegen und die Kursentwicklung grafisch darstellen.
Ein weiteres Beispiel wäre die Möglichkeit einer Reisebuchung, bei der sich die Anwendung evtl. mit mehreren Webdiensten in Verbindung setzt, freie Hotelzimmer und Mietautos zu einem bestimmten Termin ermittelt und anschließend bucht.
Das grundlegende Problem hierbei ist immer, dass sich die unterschiedlichsten Anwendungen auf verschiedenen Plattformen und in verschiedenen Programmiersprachen entwickelt verständigen müssen. Außerdem müssen die Clients Webservices finden und herausfinden können, welche Funktionen sie zur Verfügung stellen. Diese Funktionen müssen dann auch aufgerufen werden können, ohne dass bei der Anwendungsentwicklung bereits der Funktionsname oder gar die nötigen Parameter bekannt waren.
Microsoft sieht das Thema Webservices als zentrale Technologie der Zukunft, weswegen es auch wichtiger Bestandteil von .NET ist.

Webservice suchen: UDDI

Über UDDI (Universal Description, Discovery and Integration) können Anbieter von Webdiensten in standardisierter Form bekannt geben, worum es bei ihnen geht. Entwickler von Clients können diese Daten über Hersteller und Nutzen eines Webdienstes über einen Browser auslesen (sie sind gegliedert wie ein Webverzeichnis). Durch die standardisierte Registrierung können aber auch die Clients selbst Anfragen stellen.
Beispiele: uddi.ibm.com, uddi.microsoft.com

Informationsaustausch: XML

Wie oben bereits erwähnt, müssen verschiedene Anwendungen auf verschiedenen Plattformen miteinander kommunizieren können. Die Informationen, die über das Web gesandt werden, werden mit Hilfe der Extensible Markup Language (XML) dargestellt. Dieses Format ist textbasiert und sehr variabel, so dass es auf allen Plattformen und von allen Programmiersprachen ausgelesen werden kann.

Protokoll: SOAP

Um Operationen eines Webservices aufzurufen, wird ein Protokoll benötigt. Normalerweise wird hier SOAP (Simple Object Access Protocoll) verwendet, das die Daten (wie Funktionsnamen und Parameter) in XML-Format übermittelt. Der eigenliche Transport über das Web geschieht normalerweise über HTTP (Hypertext Transfer Protocoll).

Schnittstellen: WSDL

Auch WSDL (Web Services Description Language) baut auf XML auf. WSDL stellt das Interface, also die nach außen sichtbare Schnittstelle eines Webservices dar. Dazu gehören die Operationen mit ihren Parametern und Rückgabewerten.

Wie UDDI, XML, SOAP und WSDL konkret aufgebaut sind, wollen wir uns hier nicht näher anschauen. Zum einen würde das den Umfang dieses Tutorials sprengen, zum anderen ist dieses Wissen für unser folgendes Beispiel nicht notwendig. Wer mehr über diese Themen wissen will, findet jede Menge Informationen im Internet und in Fachliteratur.

4 Gedanken zu „Webservice-Client“

  1. Ein echt gelungenes Tutorial! Leider enthält es nicht die Übergabe von Authentifizierungsparametern wie Username und Password. Im Netz ist dazu auch nicht wirklich viel hilfreiches zu finden. Vielleicht gibt es dazu bald hier eine Ergänzung?

    Das wäre echt toll!

    1. Die Anpassung ist für mich nicht so einfach.
      So sieht mein Aufruf aus:
      procedure TFormWebService.btStartClick(Sender: TObject);
      var
      i : GeoIPServiceSoap;
      begin
      i := GetGeoIPServiceSoap (true);
      ShowMessage (‚START IP: ‚ + edIP.Text);
      lblLand.Caption := i.GetGeoIP(edIP.Text).CountryName;
      end;

      Fehlermeldung:
      System.Web.Services.Protocols.SoapExecptions: Server was unable to
      process request —> System.ArgumentNullExecption: Value cannot be
      null.
      Parameter name: input
      at System.Text.RegularExpressions.Regex.IsMatch(Strin input)
      at WebserviceX.Service.Adapter.IPAdapter.CheckIP(String IP)
      at WebServiceX.Service,GeoIPService.GetGeoIP(String IPAddress)
      — End of inner exception stack trace —

Kommentare sind geschlossen.