WSIF und WSDL
Es besteht eine enge Beziehung zwischen dem metadatenbasierten Web Services Invocation Framework (WSIF) und der sich immer stärker verbreitenden Semantik von Web Services Description Language (WSDL).
In WSDL wird ein Service in drei verschiedenen Abschnitten definiert:
- portType. Dieser Abschnitt definiert die abstrakte Schnittstelle, die der Service bietet. Der portType definiert eine Gruppe von Operationen. Die gültigen Operationen sind In-Out (Anforderung-Antwort), In-Only, Out-Only und Out-In (Anforderung-Antwort). Jede Operation definiert die Eingabe- und/oder Ausgabenachrichten. Eine Nachricht ist definiert als Gruppe von Teilen, wobei jeder Teil einen im Schema definierten Typ hat.
- binding. Dieser Abschnitt definiert, wie der abstrakte portType einem realen Serviceformat und -protokoll zugeordnet wird. Die SOAP-Bindung definiert beispielsweise den Codierungsstil, den Header SOAPAction und den Namespace des Nachrichten-Body (targetURI) usw.
- port. Dieser Abschnitt definiert die Position (den Endpunkt) des verfügbaren Service. Beispiel: die HTTP-Webadresse, an der der SOAP-Service verfügbar ist.
Derzeit hat jeder Port in WSDL nur eine Bindung und jede Bindung hat einen einzigen portType. Wichtiger ist jedoch, dass jeder Service (portType) mehrere Ports haben kann, die jeder für sich eine andere Position und Bindung für den Zugriff auf den Service darstellen.
Das Web Services Invocation Framework (WSIF) stützt sich so weit wie möglich auf die Semantik der WSDL:
- Die WSIF-APi für dynamischen Aufruf stellt Laufzeitentsprechungen für das Modell aus der WSDL direkt bereit. Beispielsweise umfasst der Aufruf einer Operation die Ausführung einer Operation mit einer Eingabenachricht.
- Die WSDL kann an bestimmten Punkten durch neue Ports und Bindungen erweitert werden und unterstützt damit die Beschreibung neuer Systeme. Das funktional entsprechende Konzept in WSIF ist ein Provider, der den WSIF-Service mit der zugrunde liegenden Implementierung des Service verknüpft. Dies ermöglicht WSIF, Erweiterungsklassen zu interpretieren und damit neue Arten von Serviceimplementierungen zu unterstützen.
Als Architektur, die auf Metadaten basiert, stützt sich WSIF auf das Design der Metadaten. Wenn die WSDL erweitert wird, wird WSIF entsprechend aktualisiert.
Das WSIF-System mit primären Datentypen ist das XML-Schema. WSIF unterstützt den Aufruf über dynamische Proxys, die wiederum Java™-Typsysteme unterstützen. Wenn Sie jedoch die Schnittstelle "WSIFMessage" verwenden, um einen Web-Service über die WSIF-API aufzurufen, müssen Sie WSIFMessage-Objekte mit Daten füllen, die auf den XML-Schematypen basieren, die im WSDL-Dokument definiert sind. Sie müssen Ihre Objekttypen durch eine kanonische und feste Zuordnung zwischen Schematypen und Laufzeitumgebung definieren.