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 を拡張すると、次の処理を実行できます。
-
Web サービスが通常の SOAP 形式に加えて InterSystems IRIS バイナリ SOAP 形式をサポートしていることを WSDL で公開する。
-
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 とは異なります。