Web Services Resource Framework サポート
WebSphere® Application Server の Web Services Resource Framework (WSRF) サポートは、OASIS WSRF 仕様に従う Web サービス・アプリケーション用の環境を提供します。
WSRF 概要
Web サービス・インターフェースは、サービスのクライアントとのステートフルな対話を頻繁に提供する必要があります。 例えば、ある操作の結果がそれに続く操作の実行に影響を与えるような、ショッピング・カートなどの Web サービス・インターフェースがこれに相当します。OASIS Web Services Resource Framework (WSRF) は、Web サービスを使用してステートフル・リソースをモデリングし、アクセスするための汎用フレームワークを定義し、サービスの定義と実装および複数のサービスの統合と管理が簡単にできるようにします。
WSRF では リソース・プロパティー文書スキーマ と呼ばれる XML 文書の説明の概念を採用しています。これは、Web サービスの WSDL 記述により参照され、クライアントが相互作用するリソースの状態のビューを明示的に記述します。このように記述されたサービスは WS-Resource と呼ばれます。

<wsa:EndpointReference>
<wsa:Address>
http://www.example.com/service
</wsa:Address>
<wsa:ReferenceParameters>
<tns:SomeDisambiguatorElement>C</tns:SomeDisambiguatorElement>
</wsa:ReferenceParameters>
...
</wsa:EndpointReference>
そのような各 WS-Resource には、リソースの状態のビューを記述する、リソース・プロパティー文書 (XML インスタンス文書) があります。 WS-Resource の WSDL は、wsdl:PortType エレメントの ResourceProperties 属性を使用してリソース・プロパティー文書のタイプを記述する、XML スキーマを識別します。 この、リソース・プロパティー文書スキーマに対する標準の WSDL 拡張機能を指定することにより、WSRF は 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">
各 WS-Resource には、リソースの状態のビューである固有の論理リソース・プロパティー文書インスタンスがあります。 WS-ResourceProperties 仕様は、リソース・プロパティー文書に対して操作することにより、リソースの状態を取得、設定、または照会するよう WS-Resource が実装できる、相互運用可能なプロトコル・メッセージを記述します。 これらの操作の中にはリソース・プロパティー文書全体に影響を与えるものもあり、文書内で 1 つ以上のエレメントに対して操作するものもあります (例えば、pr:printer_name のような、個々のリソース・プロパティー)。 各 WS-Resource は有限なライフサイクルを持つことができ、作成済みおよび廃棄済みにすることができます。WS-ResourceLifetime 仕様は、WS-Resource がこれを破棄、またはその終了時刻の変更を実装できるように、相互運用可能なプロトコル・メッセージを記述します。
WSRF についての詳しい情報は、OASIS 技術委員会によって公開された WSRF Primer の資料を参照してください。
WSRF プログラミング・モデル
WSRF 仕様は、プロトコル・メッセージと、これらのメッセージを処理する際に WS-Resource で予想されるセマンティクスの振る舞いのみを定義します。この仕様は、WS-Resource オブジェクトを実装する手段を事前定義していません。 WSRF は基本的にアプリケーション・レベルのプロトコルであり、WS-Resources を実装するためのツールは、その他の Web サービスを実装するために使用するツールと同じものです。WSRF は WS-Addressing エンドポイント参照を使用し、WS-Resources アプリケーション・プログラミング・モデルは、WS-Addressing を使用する Web サービスのモデルに類似しています。
- WSRF は、wsdlPortType エレメントで ResourceProperties 属性を必要とします。 この属性は、portType エレメントが、汎用 Web サービスではなく、WS-Resource によって実装されることを宣言します。WS-Resource は、WSRF 操作を WSDL 定義の portType エレメントにコピーすることにより、どの WSRF 操作をサポートするかを宣言する必要があります。 WS-Resource は、ステートフル・リソースを表し、WSRF メッセージを処理するために必要な、実装戦略を自由に選択することができます。単純な Java™ クラスやステートレス・セッション・エンタープライズ Bean、リレーショナル・データベースにより支援されるエンティティー Bean、サービス・データ・オブジェクト (SDO) などを使用して、リソースを実装できます。
- WSRF は Java BaseFault タイプの階層を定義します。