トピック

概論 To top of page

RAD 6.0 では、Web サービスの発見、作成、テスト、導入、および発行をサポートする多くのツールが備えられています。こうしたツールを使用すると、最新規格に基づいて Web サービスを開発でき、複数の実行時環境での導入がサポートされています。さらに、ツールでは多くのウィザードが用意されていて、異なる開発手法をサポートして推進します。この資料では、Web サービスを開発するために RAD 6.0 で提供されている種々の手法について説明し、Web サービスの導入に関連した導入考慮事項や相互運用性オプションのレベルについて取り上げます。

開発手法 To top of page

RAD 6.0 の Web サービス・ウィザードを使用すると、トップダウンまたはボトムアップ手法を使用して Web サービスを作成できます。トップダウンを使用すると、Web サービス記述言語 (WSDL) ドキュメントを使用し、Web サービスの作成に使用できるスケルトン Java Bean またはスケルトン Enterprise JavaBean (EJB) のいずれかを生成できます。ボトムアップ手法を使用すると、既存の Java Bean、EJB、Document Access Definition Extender (DADX) ファイル、Uniform Resource Locator (URL) または Web サービス開発記述子 (ISD) ファイルから、Web サービスを作成できます。 図 1 は、RAD 6.0 で提供されている Web サービス作成手法を示しています。

 

図 1 - RAD 6.0 Web サービス作成手法

Web サービスを作成する際、ウィザードによって以下の事柄がオプションとして可能です。

  • Web Services Explorer ツールを使用して、Web サービスが作成されると同時に Web サービスをテストできます。
  • Web サービスにアクセスするため、クライアント・アプリケーションで使用できるクライアント・プロキシーを生成します。
  • Universal Test Client (UTC) ツール、またはこのツールを生成するサンプル JSP アプリケーションを使用して、クライアント・プロキシーをテストします。
  • Web Services Explorer ツールを使用して、Universal Description, Discovery and Integration (UDDI) レジストリーに Web サービスを発行します。

RAD 6.0 で開発される Web サービスは Web または EJB プロジェクト内で作成する必要があり、以下の規格に準拠する成果物を含んでいなければなりません。

  • Web Services Definition Language (WSDL) バージョン 1.1
  • Simple Object Access Protocol (SOAP) バージョン 1.1 (Apache SOAP 2.2 および 2.3 インプリメンテーションを含む)
  • Universal Description, Discovery and Integration (UDDI) バージョン 2.0
  • Web Services Inspection Language (WSIL) バージョン 1.0
  • Java API for XML-based Remote Procedure Call (JAX-RPC) (JSR-101 とも呼ばれる)
  • JSR-109 および JSR-921 (エンタープライズ Web サービスの実装)
  • Web Services Interoperability (WS-I) Basic Profile 1.0 (オプションで準拠)
  • WS-Security

こうしたトピックの詳細については、「概念: J2EE 用の Web サービス」を参照してください。

トップダウン開発 To top of page

トップダウン開発を行うと、WSDL ドキュメントに含まれる Web サービスの抽象的な定義を取り出して、具体的な実装を生成できます。 (注: RAD 6.0 には WSDL ドキュメントを作成するためのウィザードもあります)。 以下の 2 つの手法がサポートされています。

  • WSDL ドキュメントからのスケルトン Java Bean の作成

    WSDL ドキュメントからスケルトン Java Bean を作成し、Web サービスとして公開できます。生成される Java Bean メソッドは WSDL ドキュメントで記述されている操作に対応し、置換可能な標準的な実装が含まれます。この手法および生成された成果物には、以下の考慮事項が当てはまります。

    • Web サービスのソースとして、WSDL ドキュメントの URI を入力するか、WSDL ファイルをポイントする WSIL または HTML ドキュメントの URI を入力します。
    • WSDL ファイルには、サービス要素が含まれていなければなりません。またオプションで、結果として生じる Web サービスに対して標準化された WSDL リファレンス (WSIL) ドキュメントを生成することもできます。
    • 生成される Web サービスを Web プロジェクト内で作成することが必要です。

 

  • WSDL ドキュメントからのスケルトン EJB の作成

    前述の場合と同様、この手法を使用するとスケルトン・ステートレス・セッション EJB を WSDL ドキュメントから作成し、それを Web サービスに公開できます。EJB でのメソッドは WSDL ドキュメントで記述されている操作に対応し、置換可能な標準的な実装が含まれます。この手法および生成された成果物には、以下の考慮事項が当てはまります。

    • この手法は、IBM WebSphere v6 を Web サービス実行時環境として選択した場合にのみ使用できます (「導入依存関係」を参照してください)。
    • Web サービスのソースとして、WSDL ドキュメントの URI を入力するか、WSDL ファイルをポイントする WSIL または HTML ドキュメントの URI を入力します。
    • WSDL ファイルには、サービス要素が含まれていなければなりません。またオプションで、結果として生じる Web サービスに対して標準化された WSDL リファレンス (WSIL) ドキュメントを生成することもできます。
    • 生成される EJB サービスを EJB プロジェクト内で作成することが必要です。加えて、Web サービスが HTTP トランスポートで要求を受信できるようにするため、ルーター・プロジェクトが作成されます (注: JMS トランスポートはこの手法ではサポートされません)。ルーター・プロジェクトは Web または EJB プロジェクトとすることができ、Web サービスを包含するのと同じプロジェクトであってはならず、なおかつ同じ包含 EAR ファイルに入っていなければなりません。

ボトムアップ開発 To top of page

ボトムアップ開発の目的は、既存のアプリケーション・コンポーネントまたはリソースを Web サービスとして公開することです。以下に、様々な手法について取り上げます。

  • Java Bean からの Web サービスの作成

    この手法を使用すると、既存の Java Bean を選択して、そのメソッドを Web サービスとして公開できます。生成される成果物には、次のようなものがあります。

    • WSDL ファイル: このファイルは Web サービスについて記述していて、.wsdl というファイル名拡張子を持っています。3 つのスタイルの WSDL (文書/リテラル、RPC/リテラル、および RPC/エンコード) から選択できます。各オプションの相互運用性への影響については、「WS-I Basic Profile 準拠」を参照してください。
    • サービス・エンドポイント・インターフェース (SEI): この Java インターフェースは、Web サービスのメソッドを定義します。このファイルには、_SEI という接尾部があります。
    • Web サービス配置記述子: webservices.xml ファイルは、Web サービスの実装と導入の詳細を定義します。
    • JAX-RPC マッピング・ファイル: このファイルは、Web サービスの Java 要素を WSDL との間でマップする方法を定義します。
  •  

  • EJB からの Web サービスの作成

    ステートレス・セッション Bean のメソッドを Web サービスとして公開できます。 生成される成果物は Java Bean に対して生成される成果物と似ていて、WSDL ファイル、SEI、Web サービス配置記述子および JAX-RPC マッピング・ファイルを含んでいます。この手法および生成された成果物には、以下の考慮事項が当てはまります。

    • 生成される EJB サービスを EJB プロジェクト内で作成することが必要です。
    • Web サービスがクライアントから要求を受け取れるようにするため、ルーター・プロジェクトを作成する必要があります。トランスポート・メソッドとして HTTP を介して SOAP を使用している場合には、ルーター・プロジェクトを Web プロジェクトとして作成します。その他の場合、クライアントが JMS を介して SOAP を使用しているなら、EJB プロジェクトとして作成します (この場合 JMS ルーターは Message-Driven Bean として実装されます)。ルーター・プロジェクトと Web サービス・プロジェクトを同一にはできませんが、同じ EAR ファイルに含まれている必要があります。
    • JMS トランスポートで SOAP を使用している場合、サーバーに JMS プロバイダーを構成する必要があります。また Web サービスをテストするために、Web Service Explorer を使用することはできません。

 

  • DADX ファイルからの Web サービスの作成

    この手法を用いると、DB2 XML エクステンダーまたは通常の SQL ステートメントによってアクセスする DB2 データを、Web サービス内にラップできます。DB2 XML エクステンダーによってアクセスされるデータは、Document Access Definition (DAD) ドキュメントを使用して DB2 データベースにマップされる XML ドキュメントで構成されています。この手法は、通常の SQL ステートメントまたは DAD ファイルによって定義される一連の操作を使用して、Web サービスの作成方法を指定する DADX ファイルが開始点となります。生成される成果物には、標準の WSDL ファイル、SEI、Web サービス配置記述子および JAX-RPC マッピング・ファイルが含まれます。この手法および生成された成果物には、以下の考慮事項が当てはまります。

    • この手法は、IBM SOAP を Web サービス実行時環境として選択した場合にのみ使用できます (「導入依存関係」を参照してください)。
    • オプションとして、SQL ステートメント、ストアード・プロシージャー、および DAD ファイルを 1 つ以上組み合わせて DADX ファイルを生成することもできます。
    • DADX ファイルは DADX グループに含まれていなければなりません。そのグループは、JDBC 接続と、グループ内の DADX ファイル間で共用される他の情報を定義します。
    • 生成される Web サービスを Web プロジェクト内で作成することが必要です。

 

  • URL からの Web サービスの作成

    URL から、リモート・サーバー上で実行されているサーブレットに直接アクセスする Web サービスを作成できます。ウィザードを使用すると、サーブレットのインターフェースのポート、操作、およびパラメーターについて記述でき、さらには結果として生じる Web サービスについて説明した WSDL ドキュメントを生成できます。この手法および生成された成果物には、以下の考慮事項が当てはまります。

    • この手法は、IBM SOAP を Web サービス実行時環境として選択した場合にのみ使用できます (「導入依存関係」を参照してください)。
    • 通常、ポートは URL のドメイン/ホスト名部分に、操作はサーブレットのコンテキスト・ルートおよび URI 部分、さらにパラメーターはサーブレットの入力パラメーターにそれぞれ相当します。
    • 生成される Web サービスを Web プロジェクト内で作成することが必要です。
    • 導入する Web サービスはありません。アクティブな URL によって既に実装されているためです。
  •  

  • 配置記述子 (ISD) ファイルからの Web サービスの作成

    Web サービスが導入されると、ISD 配置記述子ファイルに構成と実行時の属性が定義されます。このファイルでは、URI、メソッド、実装クラス (JavaBean および EJB)、シリアライザーおよびデシリアライザーなど、SOAP 実行時環境でクライアントが使用可能でなければならないサービスに関する情報が提供されます。こうした情報を使用して、ISD ファイルから Web サービスを作成できます。これにより、既存の Web サービス実装をラップし、構成やマッピング情報を再指定することなく新規 Web サービスとして再導入できます。この手法および生成された成果物には、以下の考慮事項が当てはまります。

    • この手法は、IBM SOAP を Web サービス実行時環境として選択した場合にのみ使用できます (「導入依存関係」を参照してください)。
    • 生成される Web サービスを Web プロジェクト内で作成することが必要です。

開発ガイドライン To top of page

以下のセクションでは、RAD 6.0 における Web サービスの導入に関連した大切な考慮事項について取り上げます。Web サービスの導入および WS-I 準拠要件に基づいて使用可能な導入オプションについて説明されています。

導入依存関係 To top of page

Web サービスを作成するのに使用可能な手法 (トップダウンおよびボトムアップ) は、導入のターゲットとなる実行時環境に依存しています。 RAD 6.0 では、以下の Web サービス実行時環境がサポートされています。

  • IBM WebSphere v6

    これが、RAD 6.0 でのデフォルトの Web サービス実行時環境です。JMS および HTTP トランスポート・プロトコルの両方をサポートしているので、Web サービス・クライアントとサーバーは HTTP 接続または JMS キューおよびトピックを介して通信することができます。JMS トランスポートを介してアクセスできる場合には、Web サービスを EJB として実装する必要があります。

  • IBM SOAP

    IBM SOAP 実行時環境は、Apache SOAP バージョン 2.2 と 2.3 プロトコル (「リソース」を参照してください) をサポートしています。これは、WebSphere Studio バージョン 5.0 以前でサポートされていた唯一の Web サービス実行時環境です。後方互換性のためにのみ使用してください。

  • Apache Axis 1.0

    この実行時環境は、Apache Axis バージョン 1.0 SOAP 実装をサポートしています (「リソース」を参照してください)。Web サービスで相互運用性の問題が生じる可能性があるため、実動で使用することはお勧めできません (このツールのヘルプ目次にある「Problems with using Apache Axis 1.0 run-time environment」を参照してください)。

導入ターゲットで Apache SOAP または Apache Axis 実装を特に必要としないのであれば、IBM WebSphere V5 実行時環境を選択するようお勧めします (その場合、このツールのヘルプ目次にある「Limitations of Web Services」で説明されている関連する制限に注意してください)。表 1 には、各実行時環境での RAD 6.0 でサポートされる Web サービス作成手法について要約されています。

方式 IBM WebSphere v6 IBM SOAP Apache Axis 1.0
WSDL ドキュメントからのスケルトン JavaBean の作成
はい
はい
はい
WSDL ドキュメントからのスケルトン EJB の作成
はい
いいえ
いいえ
JavaBean からの Web サービスの作成
はい
はい
はい
EJB からの Web サービスの作成
はい
はい
いいえ
DADX からの Web サービスの作成
いいえ
はい
いいえ
URL からの Web サービスの作成
いいえ
はい
いいえ
Web サービス配置記述子 (ISD) からの Web サービスの作成
いいえ
はい
いいえ

表 1 - 実行時環境ごとのサポートされている Web サービス作成手法

WS-I Basic Profile 準拠 To top of page

Web Services-Interoperability (WS-I) Basic Profile は、様々なプラットフォーム、オペレーティング・システム、およびプログラム言語で Web サービスの相互運用性を高めるために WS-I 組織が発行した一式の要件です。WS-I に準拠するため、Web サービスが満たす必要のある WSDL およびプロトコル (SOAP/HTTP) トラフィック要件が定義されています。RAD 6.0 には、WS-I Basic Profile 1.0 要件に対する Web サービスの準拠を検証するための検証ツールが組み込まれています。Web サービスを開発する前にワークスペースまたはプロジェクトに対して WS-I の準拠レベル ([Require]、[Suggest] または [Ignore] (デフォルト)) を設定するか、または開発後に検証ツールを実行できます。

WS-I Basic Profile 準拠の Web サービスを開発することをお勧めします。そのためには、以下のガイドラインに従ってください。

  • WSDL スタイルとして文書/リテラルまたは RPC/リテラルを使用してください (RPC/エンコードは WS-I 準拠ではありません)。
  • HTTP を介した SOAP をメッセージおよびトランスポート・プロトコルとして使用してください (JMS を介した SOAP は WS-I 準拠ではありません)。
  • Web サービスにセキュリティー・オプションを使用しないでください (XML 電子署名と XML 暗号化は WS-I 準拠ではありません)。

クライアント・プロキシーの考慮事項 To top of page

  • Web サービスの作成時にオプションで生成できる 2 つのクライアント・プロキシーがあります。
    • Java Bean プロキシー

    Java Bean クライアント・プロキシーを使用すると、リモート・プロシージャー・コールで Web サービス・メソッドを呼び出せます。これは、IBM SOAP または Apache Axis 1.0 がクライアントの実行時環境に選択されている場合にのみ、クライアント Web プロジェクトで作成できます。 IBM WebSphere v6 クライアント実行時環境の場合には、Web、Java、EJB、またはアプリケーション・クライアント・プロジェクト内に作成できます。

    • Web サービスのユーザー定義関数

このオプションを使用すると、呼び出す各 Web サービスのメソッド用の DB2 ユーザー定義関数 (UDF) を作成できます。DB2 Web サービス利用者 UDF パッケージおよび DB2 XML エクステンダーがデータベースにインストールされていることが必要です。UDF は、Web プロジェクトに保管されている関連するすべてのクライアント成果物と共にデータベース定義に作成され追加されます。

  • 実行時エラーが生じる可能性を減らすには、Web サービスと Web サービス・クライアントに異なる EAR を選択してください。クライアントは Web サービスとは異なるアプリケーションでなければならず、Web サービスはアプリケーション間通信を対象としてはいないことを忘れないでください。

リソース To top of page

以下のトピックの追加情報については、対応するリンクを参照してください。

 

Rational Unified Process   2003.06.15