概念: J2EE 用の Web サービス
トピック
J2EE Web サービスの概要
Web サービスは、サービス・レジストリー、サービス・プロバイダー、サービス・リクエスターという 3 つの主要な要素を含むアーキテクチャーを中心に編成されています。図 1 は、こうした異なる要素間の関係の概要を示しています。

図 1: - Web サービスのアーキテクチャー
最初にサービス・プロバイダーは、Web サービス記述言語 (WSDL) を使用する抽象サービス記述ドキュメントによって、サービス・インターフェースを定義します。
この抽象記述はトランスポートおよびエンコード・バインディング、さらには具象サービス記述内のアドレスと関連付けられ、サービス・エンドポイント または
ポート とも呼ばれる具象サービス・インスタンスを定義します。その後、この具象記述を Universal Description, Discovery and Integration (UDDI) などのサービス・レジストリーに発行して、任意のサービス・リクエスターがアクセスできるようにします。サービス・リクエスターはその記述を使用して、Web サービス用の具象サービス実装を選択して、使用します。
J2EE Web サービスは、コンテナー内で作動する一式のポートなどで構成されます。
コンテナーがサービスへのアクセスを扱い、実行時環境を提供します。
別の Web サービス、J2EE コンポーネント、または任意の Java アプリケーションが、Web サービスのクライアントになれます。
Java また Web アプリケーションではなくても、Web サービスを使用できます。
Web サービスのクライアント・ビュー
Web サービスのクライアント・ビューは、ポート・プロバイダー (サービス・プロバイダー) およびコンテナーによって提供されます。下の図 2 に (グレーで) 示されているように、クライアント・ビューはサービス・インターフェースとサービス・エンドポイント・インターフェースで構成されています。

図 2: - Web サービスのクライアント・ビュー
Web サービスのポートにアクセスするには、JNDI API を使用するサービス・インターフェースを見つけます。クライアントはサービス・インターフェースを使用して、ポートへのアクセスに使用する方法を見出し、サービス・エンドポイント・インターフェースを用いた Web サービス実装にアクセスします。クライアント・ビューでは、ポートはステートレス・オブジェクトと見なされます。
サービス・インターフェースとサービス・エンドポイント・インターフェースは、JAX-RPC 仕様によって定義されます。ただしサービス・インターフェースの動作は、Web サービス・プロバイダーが提供する WSDL サービス記述文書によって定義されます。
Web サービスのサービス・ビュー
Web サービスのサービス・ビューは、サービスのビジネス論理の実装を扱います。J2EE 1.4 で定義されているように、Web サービス・エンドポイントは以下のいずれかの方法で実装できます。
この 2 つの方法に関する詳細は、セッション Bean ベースのエンドポイントの場合は『ガイドライン: セッション Bean の識別』を、サーブレット・ベースのエンドポイントの場合は『ガイドライン: サーブレットの識別 』を参照してください。
参考資料
このページの主な参考資料は、「Web Services for J2EE (JSR 109) specification」です。
|