Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

InterSystems IRIS バイナリ SOAP 形式の使用法

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

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

"生成された WSDL の詳細" の "InterSystems IRIS バイナリ SOAP 形式の WSDL の相違点" も参照してください。

Note:

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

概要

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

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

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

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

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

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

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

POST /csp/gsop/GSOP.WebServiceBinary.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;)
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 ヘッダには影響しません。

InterSystems IRIS Web サービスの WSDL の拡張

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

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

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

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

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

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

変更の詳細は、"生成された WSDL の詳細" の "InterSystems IRIS バイナリ SOAP 形式の WSDL の相違点" を参照してください。

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

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

文字セットの指定

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

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

InterSystems IRIS バイナリ SOAP 形式の詳細

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

  • InterSystems IRIS サーバの場合 :

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

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

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

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

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

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

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

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

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

FeedbackOpens in a new tab