WSRF-Unterstützung
Die WSRF-Unterstützung (Web Services Resource Framework) in WebSphere Application Server stellt die Umgebung für Web-Service-Anwendungen bereit, die auf der Grundlage der OASIS-WSRF-Spezifikationen ausgeführt werden.
Übersicht über WSRF
Web-Service-Schnittstellen müssen häufig statusabhängige Interaktionen mit den Clients des Services bereitstellen. Ein Beispiel hierfür ist ein Web-Service-Schnittstellen, z. B. ein elektronischer Warenkorb, bei dem das Ergebnis einer Operation die Ausführung der nachfolgenden Operationen beeinflusst. Das OASIS Web Services Resource Framework (WSRF) definiert ein generisches Framework für die Modellierung und den Zugriff auf statusabhängige Ressourcen mittels Web-Services und vereinfacht dadurch die Definition und Implementierung eines Services und die Integration und Verwaltung mehrerer Services.
WSRF führt das Konzept einer XML-Dokumentbeschreibung ein, das sogenannte Schema des Ressourceneigenschaftendokuments, das von der WSDL-Beschreibung eines Web-Service referenziert wird und eine explizite Beschreibung einer Sicht des Status der Ressource enthält, mit der der Client interagiert. Ein Service, der auf diese Art und Weise beschrieben wird, ist eine WS-Resource.

<wsa:EndpointReference>
<wsa:Address>
http://www.example.com/service
</wsa:Address>
<wsa:ReferenceParameters>
<tns:SomeDisambiguatorElement>C</tns:SomeDisambiguatorElement>
</wsa:ReferenceParameters>
...
</wsa:EndpointReference>
Jede dieser WS-Resources hat ein Ressourceneigenschaftendokument (ein XML-Instanzendokument), das eine Sicht des Status der Ressource beschreibt. Die WSDL für eine WS-Resource gibt das XML-Schema an, das den Typ des Ressourceneigenschaftendokuments über ein ResourceProperties-Attribut des Elements "wsdl:PortType" beschreibt. Durch Angabe dieser Standard-WSDL-Erweiterung für das Schema des Ressourceneigenschaftendokuments ermöglicht WSRF die Definition einfacher generischer Nachrichten, die mit der WS-Resource interagieren.
<?xml version="1.0"?>
<xsd:schema ...
xmlns:pr="http://example.org/printer.xsd"
targetNamespace="http://example.org/printer.xsd" >
<xsd:element name="printer_properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="pr:printer_name" />
<xsd:element ref="pr:queued_job_count" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
...
</schema>
<wsdl:portType xmlns:pr="http://example.org/printer.xsd"
xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
name="Printer" wsrf-rp:ResourceProperties="pr:printer_properties">
Jede WS-Resource verfügt über eine eindeutige logische Instanz des Ressourceneigenschaftendokuments, die eine Sicht des Status der Ressource ist. Die Spezifikation WS-ResourceProperties beschreibt die interoperabeln Protokollnachrichten, die eine WS-Resource implementieren kann, um den Status der Ressource mittels des Ressourceneigenschaftendokuments abzurufen, festzulegen oder abzufragen. Einige der dazu ausgeführten Operationen betreffen das Ressourceneigenschaftendokument als Ganzes, während andere nur für ein oder mehrere Elemente im Dokument ausgeführt werden (für die individuellen Ressourceneigenschaften, z. B. pr:printer_name). Jede WS-Resource kann einen abgeschlossenen Lebenszyklus haben und kann erstellt und gelöscht werden. Die Spezifikation WS-ResourceLifetime beschreibt die interoperablen Protokollnachrichten, die von einer WS-Resource zum Löschen oder zum Ändern ihrer Ablaufzeit implementiert werden können.
Nähere Informationen zu WSRF finden Sie in der WSRF-Einführung, die vom OASIS Technical Committee veröffentlicht wurde.
WSRF-Programmiermodell
Die WSRF-Spezifikationen definieren nur die Protokollnachrichten und das semantische Verhalten, das von einer WS-Resource erwartet wird, wenn sie diese Nachrichten verarbeitet. Die Spezifikationen geben jedoch nicht die Mittel zur Implementierung der WS-Resource vor. WSRF ist primär ein Protokoll auf Anwendungsebene und die Tools zum Implementieren von WS-Resources sind dieselben, die auch zum Implementieren jeder anderen Art von Web-Service verwendet werden. WSRF verwendet WS-Addressing-Endpunktreferenzen, und das Anwendungsprogrammiermodell für WS-Resources ist dem Modell für alle Web-Services ähnlich, die WS-Addressing verwenden.
- WSRF benötigt das Attribut ResourceProperties im Element wsdlPortType. Dieses Attribut deklariert, dass der portType von einer WS-Resource und nicht von einem generischen Web-Service implementiert wird. Die WS-Resource muss deklarieren, welche WSRF-Operationen sie unterstützt, indem sie diese Operationen in das Element portType in ihrer WSDL-Definition kopiert. Die WS-Resource kann jede gewünschte Implementierungsstrategie zur Darstellung der statusabhängigen Ressource und zur Verarbeitung der WSRF-Nachrichten wählen. Sie können eine Ressource implementieren, indem Sie eine einfache Java™-Klasse, eine Stateless-Session-EJB, eine von einer relationalen Datenbank gestützte Entity-Bean, ein SDO (Service Data Object) oder eine andere Implementierungsstrategie wählen.
- WSRF definiert eine Hierarchie von Java-BaseFault-Typen.