Web サービス技術の概要

Web サービスとは、標準技術を使用して、ソフトウェア アプリケーションのリソースをネットワーク上で使用できるようにするものです。標準インタフェースに基づいているので、異なるオペレーティング システムで実行されていたり、異なる言語で書かれていても通信できます。このような理由により、Web サービスは、ネットワーク上のさまざまなシステムに組み込む必要がある分散型アプリケーションを構築する最適な方法となっています。

次のトピックでは、Web サービスの構築に使用する標準技術と、非同期 Web サービスを通じて得られる高度な機能について概説します。

標準技術

Web サービスは、認知された標準に準拠しているため、一般的な方法でリソースをエクスポーズできます。以下の方法があります。

WSDL ファイル

WSDL (Web Service Description Language) は、Web サービスを記述する標準 XML フォーマットです。WSDL ファイルでは、ある特定の Web サービスと他のソフトウェア アプリケーションとのインタフェース方法について記述します。

WSDL には誰でもアクセスできます。また、アクセスしたクライアントが WSDL ファイルを参照するだけでサービスを操作できるよう詳細な情報が記述されています。Web サービスが、英語の文章をフランス語に変換するとします。この場合、WSDL ファイルには英語の文章を Web サービスに送信する方法と、変換したフランス語をリクエストしているクライアントに返す方法が記述されています。WSDL ファイルの詳細については、「WSDL ファイル : Web サービスの記述」を参照してください。

XML と SOAP

XML (Extensible Markup Language) メッセージは、異なるアプリケーションがネットワーク上で別のアプリケーションと通信できるようにする共通言語を提供します。ほとんどの Web サービスは、XML を介して通信します。クライアントは、Web サービスへのリクエストを含む XML メッセージを送信し、Web サービスはオペレーションの結果を含む XML メッセージを返します。XML メッセージはほとんどの場合、SOAP 構文に従ってフォーマットされています。

SOAP (Simple Object Access Protocol) は、アプリケーションが互いのメソッドを呼び出し、データを別のアプリケーションに渡す際の標準フォーマットを指定します。特定の Web サービスでサポートされているメッセージの種類は、サービスの WSDL ファイルに記述されています。

ネットワーク プロトコル

Web サービスは、HTTP (HyperText Transfer Protocol)、JMS (Java Message Service) などの一般的に使用されているプロトコルを使用してリクエストを受信し、応答します。Web サービスでは、複数のプロトコルをサポートできます。Web サービスがサポートするプロトコルは、WSDL ファイルに記述されています。

Web サービス アーキテクチャ

以下の図で、Web サービス (中央)、クライアント ソフトウェア アプリケーション (左側)、使用するリソース (データベースを含む) やその他の Web サービス (右側) の関係を示します。Web サービスは、HTTP などの標準プロトコルで XML メッセージを交換することによって、クライアントおよびリソースと通信します。Web サービスがデプロイされている WebLogic Server は、受信 XML メッセージを記述された Web サービス コードへ転送します。Web サービスは、インタフェースについて記述した WSDL ファイルをエクスポートします。他の開発者は、このファイルの情報を使用して、サービスにアクセスするコンポーネントを新たに作成できます。

非同期 Web サービス

多くのビジネス プロセスは、完了するのに時間がかかりますが、従来のアーキテクチャでは、長期間かかるタスクを効率的に処理するのは困難です。Workshop を使用すると、会話とコールバックを使って簡単に非同期 Web サービスを作成できます。会話は、非同期メッセージングの一般的な問題を解決するのに役立ちます。つまり、メッセージ同士の関連付け、およびメッセージ交換における情報やステートの管理です。継続している会話では、Web サービスはオペレーションの結果が準備できると、コールバックを使用してクライアントに通知します。

さらに、WebLogic Server はメッセージ バッファとして、JMS (Java Message Service) キューをサポートしており、Web サービスのメッセージがサーバの負荷によって失われることがないようにしています。また、JMS はバック エンド リソースとの通信に使用されます。バッファの使用の詳細については、WebLogic Server ドキュメントの「バッファ付き Web サービスの作成」を参照してください。

Web サービスによる非同期処理の 2 つのモデル

WebLogic Server は非同期 Web サービスの 2 つのモデルをサポートしています。一方のモデルでは「コールバック」を使用し、もう一方のモデルでは「非同期の応答と要求」を使用します。2 つのモデルは、Web サービスとクライアントが非同期通信の調整作業をどのように担当するかという点で異なっています。

コールバック

非同期 Web サービスのコールバック モデルでは、Web サービスとクライアント (Web サービス コントロール) の両方が、互いに非同期通信を行うように特別に設計されています。このモデルにおいて、Web サービスは非同期的に呼び出されるように明示的に設計されており、クライアントにデータを返信する、特別なアノテーション付きのコールバック メソッドが含まれています。同様に、Web サービス コントロールは、特別なアノテーション付きのイベント セット メソッドを使用して、Web サービスからのコールバックをリスンして受信するように、明示的に設計されています。

コールバック モデルの詳細については、「Web サービス コールバック」を参照してください。

非同期の要求と応答

非同期の要求と応答モデルでは、非同期調整のすべての負荷をクライアントが担っています。このモデルでは、対象の Web サービスを非同期的に呼び出されるように明示的に設計する必要はありません。対象の Web サービスで必要なのは WS-Addressing 標準に準拠することだけです。クライアントは、非同期応答の調整や、後で Web サービスから返される障害などのすべての負荷を担います。

非同期の要求と応答モデルの詳細については、「非同期の要求と応答を使用した Web サービスの呼び出し」を参照してください。

メッセージ ハンドラ

メッセージ ハンドラを使用すると、処理層を追加できます。メッセージ ハンドラは通常、送受信されるメッセージに対して一定の処理を提供するために使用されます。受信メッセージは基底の JAX-RPC スタブに渡される前にメッセージ ハンドラによって処理できます。送信メッセージは送信される前にメッセージ ハンドラによって処理できます。詳細については、「サービス コントロールへのハンドラの登録」および「メッセージ ハンドラを使用した SOAP ヘッダの処理」を参照してください。

関連トピック

Workshop による Web サービスの構築


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。