Soporte de WSRF (Web Services Resource Framework)
El soporte de WSRF (Web Services Resource Framework) de WebSphere Application Server proporciona el entorno para las aplicaciones de servicio web que siguen las especificaciones OASIS de WSRF.
Visión general de WSRF
Las interfaces de servicios web necesitan proporcionar interacciones con estado con los clientes del servicio con frecuencia. Por ejemplo, una interfaz de servicio web como, por ejemplo, un carro de la compra, donde el resultado de una operación influye en la realización de las operaciones subsiguientes. WSRF (Web Services Resource Framework) de OASIS define una infraestructura genérica para modelar los recursos con estado y acceder a ellos mediante los servicios web, de modo que la definición e implementación de un servicio y la integración y gestión de varios servicios se realice con mayor facilidad.
WSRF introduce el concepto de una descripción de documento XML denominada esquema de documento de propiedades de recurso, a la que hace referencia la descripción WSDL de un servicio web y que describe explícitamente una vista del estado del recurso con el que interactúa el cliente. Un servicio describe descrito de este modo se denomina WS-Resource.

<wsa:EndpointReference>
<wsa:Address>
http://www.example.com/service
</wsa:Address>
<wsa:ReferenceParameters>
<tns:SomeDisambiguatorElement>C</tns:SomeDisambiguatorElement>
</wsa:ReferenceParameters>
...
</wsa:EndpointReference>
Cada WS-Resource de este tipo tiene un documento de propiedades de recurso (un documento de instancia XML) que describe una vista del estado del recurso. El WSDL de un WS-Resource identifica el esquema XML que describe el tipo de documento de propiedades de recurso a través de un atributo ResourceProperties del elemento wsdl:PortType. Mediante la especificación de esta extensión WSDL estándar del esquema de documento de propiedades de recurso, WSRF habilita la definición de mensajes genéricos sencillos que interactúan con el WS-Resource.
<?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">
Cada WS-Resource tiene una instancia de documento de propiedades de recurso lógica y exclusiva que es una vista del estado del recurso. La especificación de WS-ResourceProperties describe los mensajes de protocolo interoperativos que puede implementar un WS-Resource para obtener, establecer o consultar el estado del recurso mediante operaciones en el documento de propiedades de recurso. Algunas de estas operaciones afectan al documento de propiedades de recurso en su totalidad y otras actúan sobre uno o más de los elementos del documento (las propiedades de recurso individuales, por ejemplo pr:printer_name). Cada WS-Resource puede tener un ciclo de vida finito y puede crearse o destruirse. La especificación de WS-ResourceLifetime describe los mensajes de protocolo interoperativos que puede implementar un WS-Resource para destruir su ciclo de vida o alterar la hora de finalización.
Para obtener más información sobre WSRF, consulte el manual básico de WSRF publicado por OASIS Technical Committee.
Modelo de programación de WSRF
Las especificaciones de WSRF definen los mensajes de protocolo y el comportamiento semántico que se espera de un WS-Resource cuando procesa estos mensajes. Las especificaciones no prescriben el modo en que se deben implementar los objetos de WS-Resource. WSRF es principalmente un protocolo de nivel de aplicaciones y las herramientas para implementar los WS-Resources son las mismas que se utilizan para implementar cualquier otro tipo de servicio web. WSRF utiliza las referencias de punto final de WS-Addressing y el modelo de programación de aplicación para WS-Resources es similar al modelo para cualquier servicio web que utilice WS-Addressing.
- WSRF requiere el atributo ResourceProperties en el elemento wsdlPortType. Este atributo declara que portType se implementa mediante un WS-Resource en lugar de un servicio web genérico. El WS-Resource debe declarar las operaciones de WSRF a las que da soporte copiándolas en el elemento portType de su definición WSDL. El WS-Resource puede elegir libremente cualquier estrategia de implementación para representar el recurso con estado y procesar los mensajes WSRF. Puede implementar un recurso utilizando una clase Java™ sencilla, un bean enterprise de sesión sin estado, un bean de entidad respaldado por una base de datos relacional, un SDO (Service Data Object), etc.
- WSRF define una jerarquía de tipos BaseFault Java.