非同期 Web サービス

設計中の Web サービスが長時間かかる処理をエクスポーズする場合は、クライアントがブロック状態で長時間の処理が完了するのを待たなくて良いように Web サービスのインタフェースを設計する必要があります。そのためには、Web サービスを非同期にします。実際の設計では、クライアントからのリクエストを受け入れるがすぐに復帰する 1 つまたは複数のメソッドを提供します。また、長時間かかる処理の結果が準備できたときにその結果をクライアントが取得するためのメカニズムも提供する必要があります。

非同期 Web サービス非同期メソッド(すぐに復帰し、常に void を返すメソッド)はしっかりと区別することが重要です。Web サービスは、非同期メソッドを使用しなくても非同期になり得ます。たとえば、結果ではなく確認応答を返し、その後、結果を送信する同期のコールバックを呼び出してクライアントから確認応答を受信する同期的なリクエスト処理を提供する Web サービスがあります。そのメソッドとコールバックは両方とも同期的ですが、Web サービスは非同期です。非同期のメソッドとコールバックの詳細については、非同期メソッドを使用するを参照してください。

以下の 2 通りの方法で非同期 Web サービスを設計できます。

Web サービスで両方を実装することもできます。そうすると、コールバックを処理できるクライアントにはコールバックの利便性が提供され、コールバックを受け入れないクライアントにはポーリング インタフェースが提供されます。

関連トピック

WebLogic Workshop で Web サービスを構築する

非同期性を利用して長期間の処理を実現する

会話を使用してステートを保持する