WebSphere Application Server for z/OS, Version 6.0.x   
             オペレーティング・システム: z/OS

             目次と検索結果のパーソナライズ化

WSIF の目標

WSIF は、基本バインディングまたはアクセス・プロトコルに関係なく、SOAP サービスにより提供される柔軟性を一般モデルに拡張し、Web サービスを呼び出せるようにすることを目標としています。

Web サービスの SOAP バインディングは、WSDL 仕様の一部です。 したがって、ほとんどの開発者は、Web サービスの使用を考える際に、SOAP メッセージをアセンブルし、 SOAP クライアント API を使用してこれをネットワーク経由でサービス・エンドポイントに送信することをすぐに思いつきます。 例えば、クライアントは Apache SOAP を使用して、Call オブジェクトを作成して取り込みます。 このオブジェクトは、サービス・エンドポイント、呼び出される SOAP オペレーションの識別番号、 送信するパラメーターなどをカプセル化します。

このプロセスは SOAP にとって有用ですが、以下の理由から 、Web サービスを呼び出す汎用モデルとして使用する際に、制限が課せられます。

したがって、Web Services Invocation Framework (WSIF) の目標は、以下のようになります。

Web サービスは単なる SOAP サービスを超えたものである

任意のアプリケーションの機能およびアクセス・プロトコル の WSDL ベースの記述を使用すると、 そのアプリケーションを Web サービスとしてデプロイすることができます。 Java 2 platform, Enterprise Edition (J2EE) 環境を使用している場合は、 アプリケーションを複数のトランスポートとプロトコルを介して使用することができます。

例えば、データベースに保管したプロシージャーを使用することができます。 これはステートレス・セッション Bean として公開され、 その後 SOAP ルーターに SOAP サービスとしてデプロイされます。 各段階で、 基本的なサービスは同じです。変化するのは、アクセス・メカニズムのみです。 すなわち、Java DataBase Connectivity (JDBC) から Remote Method Invocation over Internet Inter-ORB Protocol (RMI-IIOP) へ、 次いで SOAP へと変化します。

WSDL 仕様は Web サービスの SOAP バインディングを定義しますが 、WSDL にバインディング拡張を追加することにより、例えば、 アクセス・プロトコルとして RMI-IIOP を使用してエンタープライズ Bean を Web サービスとして提供することができます。 さらに、アクセス・プロトコルとしてスレッド内の Java メソッド呼び出しを使用すれば、 単一の Java クラスを Web サービスとして扱うこともできます。 このように Web サービスをより広く定義する場合は、 サービス呼び出しにはバインディングに依存しないメカニズムが必要です。

クライアント・コードを特定のプロトコル・インプリメンテーションに結び付けることによって生じる制限

クライアント・コードが、 特定のプロトコル・インプリメンテーションのクライアント・ライブラリーに強固にバインドされていると、 保守がむずかしい場合があります。

例えば、Apache SOAP から Java Message Service (JMS) またはエンタープライズ Bean に移動する場合、プロセスにかなりの時間と手間がかかる可能性があります。このような問題を回避するためには、サービス呼び出しのための、 プロトコル・インプリメンテーションに依存しないメカニズムが必要です。

新しいバインディングをクライアント・コードに取り込むことは困難

カスタム・プロトコル作業を Web サービスとして使用するアプリケーションを作成する場合には、拡張性エレメントを WSDL に追加して、新規バインディングを定義することができます。 しかし実際には、この機能を実行することは困難です。

例えば、このプロトコルを使用するにはクライアント API を設計する必要があります。 また、アプリケーションが Web サービスの抽象インターフェースだけを使用する場合は、 抽象化層だけを使用可能にするスタブを生成するツールを作成しなければなりません。 これらの作業には、かなりの時間と手間がかかる場合があります。 必要なのは、既存のバインディングの更新および新規バインディングの追加を行うことができる サービス呼び出しメカニズムです。

複数のバインディングを柔軟に使用できる

複数のバインディングを提供する Web サービスを利用するためには、 スタブを生成または再コンパイルしなくても、 実行時に使用可能なサービス・バインディングを切り替えることができるサービス呼び出しメカニズムが必要です。

複数のバインディングを提供する Web サービスを使用するアプリケーションが、 正常にデプロイされたとします。 例えば、このサービス用の SOAP バインディングと、 ローカル・サービス実装 (Java クラス) を Web サービスとして扱うことのできる、 ローカル Java バインディングがあるとします。

このサービス用のローカル Java バインディングを使用できるのは、 クライアントがそのサービスと同じ環境にデプロイされている場合に限られます。 その場合は、直接 Java を呼び出してサービスとの通信を行う方が 、SOAP バインディングを使用するより効率的です。

クライアントがランタイム情報に基づいて実際に使用するバインディングを切り替えることができる場合は、 状況ごとに、使用可能なバインディングの中から最も効率的なものを選択することができます。

Web サービス環境の自由度を高めることで仲介プログラムを使用できる

Web サービスは、アプリケーション・インテグレーターに疎結合パラダイムを提供します。 このような環境では、仲介プログラムが強い力を持つ場合があります。

仲介プログラムは、 サービス要求元とターゲットの Web サービスの間で送受信されるメッセージをインターセプトし、 メッセージを引き渡す前に何らかの仲介タスク (例えばロギング、高可用性、変換など) を 実行するアプリケーションです。 Web Services Invocation Framework (WSIF) は、 仲介プログラムを簡単に作成できるように設計されています。 WSIF を使用すると、仲介プログラムは、トランスポート固有のプログラミングを行わ ずにサービス呼び出しに値を追加することができます。




関連概念
WSIF 概要
関連タスク
Web サービスを起動するための WSIF の使用
WSIF のインストールおよび管理
WSIF API の操作
Web Services Invocation Framework (WSIF) の学習
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 10:52:11 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/ae/cwsf_goals.html