Skip to main content

SOAP と Web サービスについて

InterSystems IRIS® データ・プラットフォームは、SOAP 1.1 および 1.2 (Simple Object Access Protocol) をサポートします。このサポートを利用して、以下の操作を行えます。

  • プロダクションに Web サービスを追加し、プロダクションに SOAP 対応のフロント・エンドを提供します。クライアント・アプリケーションは、SOAP プロトコルを使用して、このプロダクション Web サービスを呼び出すことができます。他の SOAP 対応のアプリケーションから、このようなメソッドを検索して呼び出すことができます。InterSystems IRIS は、データベース内で直接 SOAP メソッドを実行するため、非常に効率的に実行できます。

  • プロダクションに Web クライアントを追加します。使用したい Web サービスの WSDL ドキュメントがある場合は、ツールを使用してビジネス・オペレーションやプロキシ・クライアント・クラスを生成できます。InterSystems IRIS Web クライアントは、InterSystems IRIS SOAP 送信アダプタおよび生成されたプロキシ・クライアント・クラスを介して、外部の Web サービスを呼び出します。

SOAP および Web サービスでインターシステムズ製品がサポートする特定の基準 (WSDL 制限など) については、"Web サービスおよび Web クライアントの作成" を参照してください。

InterSystems IRIS による Web サービスのサポート

プロダクション用に SOAP 対応のフロント・エンドを提供できます。そのためには、Web サービスでありビジネス・サービスでもある、プロダクション Web サービスを作成します。内部的には、通常 Web メソッドが SOAP 要求メッセージを受信し、それらを使用してプロダクション内で必要とされる要求メッセージを作成および送信します。次に応答メッセージを受信し、それらを使用して SOAP 応答メッセージを作成します。

プロダクション外からの SOAP 要求は Web サービスに送られ、Web サービスはそれを他のプロダクション・コンポーネントに送信し、SOAP 応答を送信元に返します

プロダクション Web サービスを作成するために、InterSystems IRIS には、%SOAP および %XML パッケージに基本プロダクション Web サービス・クラス (EnsLib.SOAP.ServiceOpens in a new tab)、およびサポート・クラスが用意されています。

InterSystems IRIS は、強力な Web サービスの組み込みサポートを提供します。基本プロダクション Web サービス・クラスは、以下のことを実行できます。

  • 受信 SOAP メッセージを検証します。

  • SOAP メッセージを解凍し、InterSystems IRIS 表記にデータを変換し、要求メッセージをプロダクション内の宛先に送信する対応メソッドを呼び出します。

  • メソッドを実行します。

  • 応答メッセージを受信し、応答メッセージ (SOAP メッセージ) を作成して呼び出し側に返信します。

SOAP 仕様には、セッション・サポートは含まれていません。ただし、Web クライアントと使用する Web サービスとの間でセッションを維持することが有用な場合がよくあります。プロダクション Web サービスを使用して、これを行うことができます。Web サービスがセッションを使用する場合、セッション ID が確立され、クライアントからの呼び出しが一度正しく認証されると、その後はサービスに対する繰り返しの呼び出しが許可されます。

また、プロダクション Web サービス・クラスは、任意のビジネス・サービスの完全な機能を提供します。

Note:

プロダクション Web サービスを作成する際にプロダクション・アダプタは使用しません。

InterSystems IRIS による Web クライアントのサポート

プロダクション内から外部の Web サービスを呼び出すことができます。そのために、InterSystems IRIS Web クライアントを作成します。

プロダクション内のコンポーネントは要求を Web クライアントに送信し、Web クライアントはそれを外部の Web サービスに送信して、SOAP 応答を要求元コンポーネントに返します

高レベルで、InterSystems IRIS Web クライアントは InterSystems IRIS 要求を受信し、SOAP 要求に変換して適切な Web サービスに送信します。同様に、SOAP 応答を受信して InterSystems IRIS 応答に変換します。

InterSystems IRIS Web クライアントは、以下の要素で構成され、その要素のすべてが SOAP ウィザードを使用してスタジオ内で生成できます。

  • プロキシ・クライアント・クラス。Web サービスによって定義される各メソッドに対してプロキシ・メソッドを定義します。プロキシ・クライアントの目的は、Web サービスの場所を指定し、プロキシ・メソッドを保持することです。各プロキシ・メソッドは、対応する Web サービス・メソッドが使用するものと同じシグニチャを使用し、要求に応じてそのメソッドを呼び出します。

  • ビジネス・オペレーション。InterSystems IRIS SOAP 送信アダプタを使用して、プロキシ・メソッドを呼び出します。

  • サポート・クラス。XML タイプおよびプロダクション・メッセージの定義に必要となります。

SOAP ウィザード

これらの各要素を理解するには、これらがどのように生成されるかを考慮することが有用です。まず、SOAP ウィザードを使用するときに、対象となる Web サービスの WSDL の URL を入力します。ウィザードが WSDL を読み取り、一連のクラスを生成します。

SOAP クライアント・ウィザードは、外部の WSDL ファイルを読み取り、クラスを生成します

プロキシ・クライアント

生成されたクラスには、Web サービスの各メソッドに対してプロキシ・メソッドを定義する、プロキシ・クライアント・クラスが含まれます。各プロキシ・メソッドは、Web サービスに SOAP 要求を送信し、対応する SOAP 応答を受信します。

プロキシ・クライアント・クラスは、外部の Web サービス・メソッドに SOAP メッセージを送信します

図のように、生成されたクラスには、メソッドの入力や出力に必要な XML タイプを定義するクラスも含まれます。

InterSystems IRIS Web クライアントのビジネス・オペレーション

このウィザードでは、プロキシ・クライアントを呼び出すビジネス・オペレーション・クラス、および必要に応じてメッセージ・タイプを定義するクラスを生成することもできます。以下の図は、これらのクラスが機能するしくみについて示しています。

オペレーションが SOAP 送信アダプタ内の InvokeMethod を呼び出し、そのメソッドがプロキシ・クラスを使用して、指定のメソッドを呼び出します。これは、サポートされているタイプでのみ生じます。

点線で示されたクラスおよびメソッドは、すべて SOAP ウィザードによって生成されます。

ビジネス・オペレーションは、SOAP 送信アダプタを使用します。SOAP 送信アダプタは、便利な実行時設定および汎用メソッド InvokeMethod() を提供します。プロキシ・クライアント・クラスのプロキシ・メソッドを呼び出すために、ビジネス・オペレーション・クラスは InvokeMethod() を呼び出し、実行するメソッド名および任意の引数を渡します。次に、InvokeMethod() がプロキシ・クライアント・クラスのメソッドを呼び出します。

FeedbackOpens in a new tab