Auction Web サービスの詳細

この Web サービスは、Auction アプリケーションが使用する項目データベースと、XML を使用して相互作用するための別の方法として作成されました。 Auction Web サービスのユーザーは、データベースに対して項目を追加および削除したり、オークションに出品中の現行項目のいずれかまたはすべてに関する情報を表示させたりできます。

Web サービスは、インターネットを介して公開、配置、および起動できる関連したアプリケーション機能のセットです。 Web サービスを使用すると、異なるプラットフォームで稼動中の異なる言語で作成されたアプリケーションが XML ベースのコンポーネントを使用して相互協調処理を行えます。

Web サービスの作成方法には、トップダウンとボトムアップという 2 種類の汎用アプローチがあります。 トップダウン・アプローチでは、Web サービスは Web サービス記述言語 (WSDL) ファイルと XML Schema Definition (XSD) ファイルで定義されている Web サービス・インターフェースと XML 型をベースにします。 その上で、開発者は、ビジネス・ロジックとのインターフェースに適用するスケルトンの実装に変更を加えます。 ボトムアップ・アプローチでは、Java Bean または EJB に組み込まれている既存のビジネス・ロジックをベースにして Web サービスを作成します。 WSDL および XSD ファイルは、結果の Web サービス・インターフェースを記述するために生成されます。 Web サービスの作成方法としては、使用する Web サービス・インターフェースと XML 型をより制御しやすいトップダウン・アプローチの方をお勧めします。

Auction Web サービスは、最初に WSDL ファイルと XSD ファイルを定義するというトップダウン・アプローチを使用して作成されました。 WSDL ファイルでは、公開するインターフェース、呼び出される操作、およびそれらの操作の実行中に渡されるメッセージを定義します。 それらのメッセージを正確に定義するために、WSDL ファイルから XSD ファイルを参照します。

オークション・リスト用の Web サービス・アプリケーションの場合は、操作によって以下の機能が提供されます。

  • カタログへの項目の追加
  • カタログからの項目の除去
  • 特定の項目に関する情報の表示
  • カタログ内の全項目の一覧表示
次の図に、この Web サービスの開発ステージを示します。 本書のセクションでは、Auction サンプルと一緒に提供される Web サービスのコードに含まれている 2 つの主要なコンポーネントについて説明しています。 2 番目のコンポーネント (Java Bean スケルトン) には、すべてウィザードを使用して作成される 3 つの特殊な部分が含まれています。 これらの部分は同時に生成されて、1 つのユニットとして一緒にテストされるので、これらについてはまとめて一緒に説明します。

以下の各セクションでは、アプリケーションに含まれるこれらの主要なコンポーネントをどのように作成したかを示し、これらが Auction サンプル全体の開発に対して持つ重要度について説明します。

WSDL エディターと XSD エディターを使用した WSDL ファイルと XSD ファイルの定義

Web サービス記述言語 (WSDL) ファイルと XML Schema Definition (XSD) ファイルで定義されている Web サービス・インターフェースと XML 型により、エレメントとそれらに関連付けられているアクションが定義され、Web サービスの外観と動作が記述されます。

Auction Web サービスが作成されたときには、XML スキーマ・エディターを使用して新しい XSD ファイルが作成されて、Web サービスに渡される XML スキーマ・タイプが定義されました。

次に、「新規 WSDL ファイル」ウィザードを使用して新しい WSDL ファイルが作成されました。このウィザードにより、文書リテラルのデフォルトのスタイルおよび使用を使ってスケルトン WSDL ファイルが作成されました。 これが、Web サービス・インターオペラビリティー組織 (WS-I) が推奨している選択です。 WS-I は、オープンな業界組織で、ベンダーが異なる Web サービス間でも相互協調処理を確実に行えるように、プラットフォームおよび言語に関するガイドラインを公開しています。

スケルトン WSDL ファイルの作成後には、WSDL エディターを使用して WSDL ファイルが編集されました。 WSDL ファイル内に、新しい操作、メッセージ、およびパーツが作成され、バインディングも新しく生成されました。 WSDL エディターは、XML スキーマ・エディターと密結合されています。次の画面に示すように、WSDL ファイル内のパーツが XSD ファイル内で定義されている XML スキーマ・タイプを参照できるように、XML スキーマ・エディターは WSDL エディター内から開けるようになっています。

 

「Web サービス」ウィザードを使用した Java Bean スケルトンの生成

Java Bean スケルトンは、「Web サービス」ウィザードを使用して WSDL および XSD ファイルから作成します。 「Web サービス」ウィザードは、JAX-RPC プログラミング・モデルに従って Java コードを生成します。 Web サービス・デプロイメント記述子は、J2EE 仕様の Web サービスに準拠したものが生成されます。

このウィザードでは、スケルトン Web サービスを作成するだけでなく、ほかにあと 2 つのエレメントを作成することにしました。

  • Java プロキシー: プロキシーは、クライアントがサービス・プロバイダーと対話できるようにする Web サービス・クライアントです。
  • サンプル JSP: サンプル JSP は、テスト目的で Web サービス・クライアントと相互作用する JavaServer Pages ファイルです。

Java プロキシーとサンプル JSP をスケルトン Web サービスと同時に作成すると、Web サービスのすべてのエレメントをはるかに容易に一度にテストできるようになります。

Web サービス・スケルトンが作成されると、生成された Java スケルトン実装ファイルが Java エディター内に開かれます。このファイルには、WSDL ファイルの定義どおりに、メソッドが必要とするインターフェースが含まれています。 この時点で、開発者はスケルトン実装ファイルを変更して、バックエンドのビジネス・ロジックにアクセスできるようにしました。

生成されたサンプル JSP は、基本的なものですが機能します。その内容は 3 つのフレームに編成されています。 左側のフレームには、ユーザーが対話式に使用可能なすべてのメソッドのリストが含まれています。 これらのメソッドのいずれかをクリックすると、右上のフレームに入力域が開きます。 このフォームに値を入力して「呼び出し (Invoke)」ボタンをクリックすると、その入力を処理するためのメソッドが呼び出されて、右下のフレームに結果が表示されます。

この Auction Web サービスの場合は、生成されたサンプル JSP を変更して、より視覚的に訴えるインターフェースを作成し、さらに配列処理用のサポートを追加しました。なぜなら、データベース内のすべての項目のリストを戻す操作では配列が戻されるからです。