WebSphere Application Server の Web Services Resource Framework (WSRF) サポートは、 OASIS WSRF 仕様に従う Web サービス・アプリケーション用の環境を提供します。
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 仕様は、プロトコル・メッセージと、これらのメッセージを処理する際に WS-Resource で予想されるセマンティクスの振る舞いのみを定義します。この仕様は、WS-Resource オブジェクトをインプリメントする手段を事前定義していません。 WSRF は基本的にアプリケーション・レベルのプロトコルであり、WS-Resources をインプリメントするためのツールは、その他の Web サービスをインプリメントするために使用するツールと同じものです。 WSRF は WS-Addressing エンドポイント参照を使用します。WS-Resources のプログラミング・モデルは、WS-Addressing を使用する任意の Web サービスの場合と同じです。このモデルは、Web Services Addressing アプリケーション・プログラミング・モデル で説明されています。