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?

SOAP と Web サービスについて

Ensemble は SOAP 1.1 および 1.2 (Simple Object Access Protocol) をサポートします。このサポートは、使いやすく、効率的で、SOAP 仕様と完全な互換性があります。このサポートは Ensemble に組み込まれており、Ensemble がサポートするすべてのプラットフォームで利用できます。Ensemble SOAP サポートを使用すると、以下のことができます。

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

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

この章では、以下のトピックについて説明します。

SOAP および Web サービスで InterSystems 製品がサポートする特定の基準 (WSDL 制限など) については、Caché のドキュメント・セットにある "Caché での Web サービスおよび Web クライアントの作成" を参照してください。

Ensemble による Web サービスのサポート

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

generated description: web service high level

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

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

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

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

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

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

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

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

Note:

Ensemble Web サービスを作成する際に Ensemble アダプタは使用しません。

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

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

generated description: outbound high level

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

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

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

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

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

SOAP ウィザード

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

generated description: wsdl reader

プロキシ・クライアント

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

generated description: generating web client step2

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

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

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

generated description: generating web client step3

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

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

FeedbackOpens in a new tab