Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché バイナリ SOAP 形式の使用法

Caché SOAP サポートは、オプションで、専用のバイナリ SOAP 形式を提供します。これは、大きな SOAP メッセージを送受信するときにメッセージのサイズを最小化する場合に有用です。

このリリースから、すべての Caché Web サービスが、Caché バイナリ SOAP 形式または通常の SOAP 形式のいずれかで SOAP 要求を受信できるようになりました。この動作を有効にするためにパラメータは必要ありません。Caché Web クライアントは、バイナリ SOAP 形式を使用するように構成されている場合にのみ、この形式を使用します。

この章は、以下のセクションで構成されます。

また、付録 “生成された WSDL の詳細” の “Caché バイナリ SOAP 形式の WSDL の相違点” を参照してください。

Note:

Caché の Web サービスまたは Web クライアントがこの専用のバイナリ SOAP 形式を使用する場合、その Web サービスまたは Web クライアントで WS-Security 機能または WS-Policy 機能を使用することはできません。"Caché Web サービスの保護" を参照してください。

概要

以下に示すように、Caché バイナリ SOAP は HTTP メッセージで使用されます。

  • このメッセージは POST メソッドを使用します。

  • コンテンツ・タイプは常に "application/octet-stream" です。

  • 本文は、専用プロトコルを使用したオブジェクトのバイナリ表現です。

  • バイナリ SOAP 要求には、次の形式の HTTP ISCSoap ヘッダが含まれます。

    ISCSoap: NAMESPACE/Package.Class.Method
    
  • SOAP セッションがサポートされます。セッション情報は、標準の CSP セッション cookie を使用することによって管理されます。ただし、SOAP Web クライアントと Web サービスの SessionCookie プロパティはサポートされません。これは、バイナリ SOAP では、CSPCHD 専用 SOAP ヘッダが使用されないためです。

以下は、バイナリ SOAP 要求の例を示しています。

POST /csp/gsop/GSOP.WebServiceBinary.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; Cache;)
Host: localhost:8080
Connection: Close
ISCSoap: http://www.myapp.org/GSOAP.WebServiceBinary.Divide
Content-Type: application/octet-stream
Content-Length: 90

00085hdBinaryClient.MyAppSoap.Dividearg1arg2t

影響を受けるのは、SOAP エンベロープとその内容のみです。HTTP ヘッダには影響しません。

Caché Web サービスの WSDL の拡張

すべての Caché Web サービスが、Caché バイナリ SOAP 形式と通常の SOAP 形式のいずれかで SOAP 要求を受信することができます。Caché Web サービスがバイナリ要求を受け取ると、その Web サービスはバイナリ応答を送信します。それ以外の場合、Caché Web サービスは通常の応答を送信します。この動作を有効にするためにパラメータは必要ありません。

Web サービスの WSDL を拡張すると、次の処理を実行できます。

  1. Web サービスが通常の SOAP 形式に加えて Caché バイナリ SOAP 形式をサポートしていることを WSDL で公開する。

  2. Caché バイナリ SOAP 形式の使用に関する情報を WSDL に含める。

これにより、Caché Web クライアントは、必要に応じてこの形式のメッセージを適切に送信できるようになります。

このように Caché Web サービスの WSDL を拡張するには、Web サービスの SOAPBINARY パラメータを 1 に設定します。

変更の詳細は、付録 “生成された WSDL の詳細” の “Caché バイナリ SOAP 形式の WSDL の相違点” を参照してください。

バイナリ SOAP を使用するように Caché Web クライアントを再定義する方法

Caché バイナリ SOAP 形式を使用するように既存の Caché Web クライアントを再定義できます。そのためには、Web クライアントの SOAPBINARY パラメータまたは SoapBinary プロパティを 1 に設定します。その他の変更が必要になることもあります。付録 “生成された WSDL の詳細” の “Caché バイナリ SOAP 形式の WSDL の相違点” を参照してください。

文字セットの指定

Web クライアントの SoapBinaryCharset プロパティは、Web サービスの Caché 文字セット (例 : Unicode、Latin1) を指定します。クライアント・マシンとサービス・マシンの文字セットが同じ場合、文字列は RAW で送信され、それ以外の場合は UTF8 のエンコードで送信されます。

SoapBinaryCharset プロパティは、既定値の SOAPBINARYCHARSET パラメータに設定され、このパラメータは既定値の NULL に設定されます。NULL では常に文字列が UTF8 に変換されます。

Caché バイナリ SOAP 形式の詳細

以下に示すように、バイナリ SOAP の API は、XML SOAP とは異なります。

  • CSP サーバの場合

    • バイナリ SOAP は、ISCSoap HTTP ヘッダの存在によって示されます。

    • Web サービスの Initialize() メソッドは呼び出されません。

    • 初期実装では、標準の %request.Content ストリームが使用されます。

    • ログインは、URL に添付されている CacheUserName および CachePassword クエリ・パラメータを使用して実行されます。バイナリ SOAP でログイン・ページが返されることはありません。

    • 無効なログインが発生すると、%SOAP.FaultOpens in a new tab のインスタンスが返されます。

  • %Net.HttpRequestOpens in a new tab の応答は以下のようになります。

    • 呼び出されるメソッドに Web クライアント・クラスの SoapBinary プロパティを設定することにより、バイナリ SOAP 要求が示されます。

    • 要求は、標準の EntityBody ストリームを使用して送信されます。

    • 応答は、HttpResponse の Data プロパティで返されます。

FeedbackOpens in a new tab