Web サービス「サービスの呼び出し」アクティビティーによる圧縮/圧縮解除

実行時に、 Web サービス「サービスの呼び出し」アクティビティーは、 HTTP/HTTPS 1.1 プロトコルに準拠した HTTP 要求を Web サービスに送信します。 「サービスの呼び出し」アクティビティーは、 圧縮では gzip 形式のみを、圧縮解除では gzip 形式または deflate 形式をサポートしています。

注:サービスの呼び出し」アクティビティーは、 UNIX で一般的な compress と呼ばれるファイル圧縮形式はサポートしていません。
「サービスの呼び出し」アクティビティーの圧縮/圧縮解除ランタイム動作は、以下の条件によって異なります。

これらの条件が「サービスの呼び出し」アクティビティーの圧縮/圧縮解除ランタイム動作に与える影響については、以下のセクションおよび『ランタイム圧縮/圧縮解除動作』セクションの表に説明があります。

圧縮/圧縮解除のエンドポイント・サポート

統合アプライアンスでは、最初の HTTP 要求を圧縮形式で HTTP エンドポイント (Web サービス) に送信するときに、HTTP エンドポイントが圧縮をサポートするかどうかを判断します。Web サービスが、圧縮をサポートしない、あるいは指定した Content-Encoding タイプをサポートしないというエラー・コードを返す場合、統合アプライアンスは最初の要求を非圧縮形式で再送し、このエンドポイントへの以後の要求はすべて非圧縮形式で送信されます。 さらに、Web サービスが送信する HTTP 応答は、統合アプライアンスが受信するときには圧縮解除されていません。

圧縮/圧縮解除のエンドポイント・サポートは、『ランタイム圧縮/圧縮解除動作』セクションにある表の 4 列目 (「エンドポイントが圧縮をサポートする」というラベル) に示されます。

メッセージ・レベルでの Content-Encoding 値と Accept-Encoding 値

HTTP 要求の Content-Encoding ヘッダーの値によって、 要求の本体が圧縮されているかどうかがわかります。 「サービスの呼び出し」アクティビティーの場合、統合アプライアンスは Content-Encoding を gzip に設定し、要求の本体を gzip 形式で圧縮して送信します (『要求送信時の圧縮動作』というラベルが付いた最初の表の 2 行目と、次の図を参照)。

要求内の Accept-Encoding ヘッダーの値は、HTTP クライアントがその応答で受け入れるエンコードのタイプを定義します。「サービスの呼び出し」アクティビティーの場合、 統合アプライアンスは Accept-Encoding を要求内の gzip,deflate と同様に設定し、 Web サービスは、要求本体を gzip 形式または deflate 形式で圧縮して統合アプライアンス (クライアントとして機能) に送信します (次の図を参照)。

要求内の Accept-Encoding ヘッダーおよび Content-Encoding ヘッダーの値は、統合アプライアンスと Web サービスが圧縮/圧縮解除動作を判別する際に使用されます。

アクティビティー・レベルでの圧縮/圧縮解除の設定

デフォルトでは、圧縮と圧縮解除は「サービスの呼び出し」アクティビティーのアクティビティー・レベルでオンになっています。 アクティビティー・レベルで圧縮/圧縮解除をオフにするには、「圧縮/圧縮解除の使用」チェック・ボックスの選択を解除します。 「圧縮/圧縮解除の使用」チェック・ボックスは、アクティビティーの「構成」タスクで使用できます。 『ランタイム圧縮/圧縮解除動作』セクションにある下の表の 2 列目の「圧縮/圧縮解除の使用」チェック・ボックスというラベルの列は、「圧縮/圧縮解除の使用」チェック・ボックスの設定を示しています。

非推奨に関する注:「圧縮/圧縮解除の使用」チェック・ボックスは、今後のリリースでは非推奨となります。 HTTP 要求本体の圧縮解除方法と、HTTP 応答本体の圧縮方法を指定するには、 HTTP 要求の HTTP パラメーター、Content-Encoding および Accept-Encoding を使用してください。

ランタイム圧縮/圧縮解除動作

要求送信時の圧縮動作』セクションにある最初の表は、統合アプライアンスが Web サービスに HTTP 要求を送信する際の圧縮ランタイム動作を示しています。

要求に渡される Accept-Encoding ヘッダー値』セクションにある 2 番目の表は、HTTP 要求に渡される Accept-Encoding ヘッダーの値を示しています。

応答受信時の圧縮解除動作』セクションにある 3 番目の表は、統合アプライアンスが Web サービスから HTTP 応答を受信する際の圧縮解除ランタイム動作を示しています。

要求送信時の圧縮動作

次の表は、統合アプライアンスが HTTP 要求を Web サービスに送信する際の圧縮ランタイム動作を示しています。
圧縮/圧縮解除の使用チェック・ボックス (アクティビティー・レベル) HTTP 要求の Content-Encoding 値 (メッセージ・レベル) エンドポイントが圧縮をサポートする 要求送信時の統合アプライアンスの圧縮ランタイム動作
選択 gzip はい 統合アプライアンスは、gzip 形式で圧縮した要求本体を送信します。 Content-Encoding ヘッダーは、要求では gzip に設定されます。
選択 値は無効 いいえ 統合アプライアンスは、非圧縮の要求本体を送信します。 Content-Encoding ヘッダーは、要求では ID に設定されます。
クリア 値は無効 値は無効 統合アプライアンスは、要求本体を現状のまま (変更せずに) 送信します。 Content-Encoding ヘッダーの現行値は、 現状のまま要求に渡されます。

要求に渡される Accept-Encoding ヘッダー値

以下の表は、HTTP 要求に渡される Accept-Encoding ヘッダーの値を示しています。
圧縮/圧縮解除の使用チェック・ボックス (アクティビティー・レベル) Accept-Encoding の初期値 エンドポイントが圧縮をサポートする HTTP 要求で Web サービスに渡される Accept-Encoding の値
選択 gzip,deflate はい Accept-Encoding ヘッダーは、要求では gzip,deflate に設定されます。
値は無効 値は無効 いいえ Accept-Encoding ヘッダーの現行値は、 現状のまま要求に渡されます。
クリア 値は無効 値は無効 Accept-Encoding ヘッダーの現行値は、 現状のまま要求に渡されます。

応答受信時の圧縮解除動作

次の表は、統合アプライアンスが Web サービスから HTTP 応答を受信する際の圧縮解除ランタイム動作を示しています。
圧縮/圧縮解除の使用チェック・ボックス (アクティビティー・レベル) HTTP 応答の Content-Encoding 値 (メッセージ・レベル) エンドポイントが圧縮をサポートする 応答受信時の統合アプライアンス圧縮解除ランタイム動作
選択 gzip はい 統合アプライアンスは、gzip 形式を使用して、応答本体を圧縮解除します。
選択 deflate はい 統合アプライアンスは、deflate 形式を使用して、応答本体を圧縮解除します。
選択 identity はい 統合アプライアンスは応答の本体を圧縮解除しません。
選択 Accept-Encoding ヘッダーにリストされない値 はい 統合アプライアンスは、応答データが非送信請求コンテンツのエンコード・タイプで受信されたというエラーをログに記録します。
選択 値は無効 いいえ 統合アプライアンスは応答の本体を圧縮解除しません。 Content-Encoding ヘッダーの現行値は、現状のまま応答に渡されます。
クリア 値は無効 値は無効 統合アプライアンスは応答の本体を圧縮解除しません。 Content-Encoding ヘッダーの現行値は、現状のまま応答に渡されます。



フィードバック | 特記事項


タイム・スタンプ・アイコン 最終更新: 2013年11月7日 (木曜日)


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/WS_Compression_Decompression_with_the_WS_Invoke_Service_Activity.html