WSIF の目標

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

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

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

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

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

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

WSDL 仕様は Web サービスの SOAP バインディングを定義しますが、WSDL にバインディング拡張を追加することにより、例えば、アクセス・プロトコルとして RMI-IIOP を使用する Enterprise 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 を使用すると、仲介プログラムは、トランスポート固有のプログラミングを行わ ずにサービス呼び出しに値を追加することができます。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwsf_goals
ファイル名:cwsf_goals.html