Home » Tutorials » Netzwerk und Internet » Webservices

Webservices

WebModul

Kommen wir zurück zum WebModul der Unit1. Das WebModul selbst ist – wie das DataModul – ein Container für nicht sichtbare Komponenten. Das WebModul besitzt eine Eigenschaft Actions, der vom Assistenten bereits eine Action „DefaultHandler“ zugeordnet wurde. Der DefaultHandler ist dafür da, alle Anfragen zu beantworten, für die die Anwendung sonst keinen expliziten Code enthält. Er ist quasi das Auffangbecken für alles, das nicht vorher schon ausgefiltert wurde. Dem OnAction-Ereignis des DefaultHandlers ist folgender Code zugeordnet:

 WSDLHTMLPublish1.ServiceInfo(Sender, Request, Response, Handled);

WSDLHTMLPublish1 ist eine der drei Komponenten im WebModul. Sie dient der automatischen Schnittstellenbeschreibung für den Webservice. Der Entwickler muss sich also nicht damit abmühen, von Hand eine WSDL-Datei zu erstellen. Das übernimmt diese Delphi-Komponente. Ihre Methode ServiceInfo zeigt eine Webseite mit WSDL-Informationen an. Dazu später mehr.

Die Komponente HTTPSoapDispatcher dient der SOAP-Kommunikation. Sie empfängt alle Nachrichten, die an eine Schnittstelle des Webservices gerichtet sind und leitet sie an die Komponente weiter, die in ihrer Eigenschaft „Dispatcher“ genannt ist. In unserem Fall ist das HTTPSoapPascalInvoker. Diese Komponente macht die eigentliche Arbeit. Sie empfängt die SOAP-Anfragen von der HTTPSoapDispatcher-Komponente, wandelt sie in Object Pascal-Aufrufe um und führt sie aus.

All die wirklich komplizierte Arbeit in Zusammenhang mit Webservices, nämlich das Empfangen, Interpretieren, Reagieren und Beantworten von SOAP-Anfragen wird von diesen Komponenten ohne weiteres Zutun des Programmierers erledigt.