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?

ESB のサービスおよびオペレーションの構成

この章では、ESB プロダクションでサービスとオペレーションを構成する方法、およびオペレーションが提供するサービスを使用する方法を説明します。この章は以下の節で構成されています。

パススルー・ビジネス・サービスの構成

パススルー・ビジネス・サービスを追加するには、[プロダクション構成] ページで新規サービスを追加するための + 記号を選択してから、以下の手順を実行します。

  1. 使用されているプロトコルの種類および SAML セキュリティが使用されているかどうかに基づいてクラスを選択します。以下のいずれかのクラスを選択します。

  2. このパススルー・サービスを呼び出すポートとして、CSP ポートと専用ポートのいずれが使用されるかを設定します。ライブ・プロダクションの場合、CSP ポートを堅牢な Web サーバ・ソフトウェアと共に使用して、高負荷を処理できる安全で完全に構成可能なシステムを構築できるようにします。Ensemble と共にインストールされる Web サーバは、高負荷のライブ・システムではなく、開発システムでの使用に限定されたシステムです。専用ポートは、最小限の構成とセキュリティを提供する軽量リスナです。両方のポートで呼び出しを受け入れるようにサービスを構成することはできますが、そのような構成はお勧めしません。

    パススルー・サービスを CSP ポートを通じて呼び出す場合は、以下の操作を実行します。

    • [ポート] フィールドを空白のままにします。

    • [設定] タブの [接続設定] フィールドで [標準リクエスト有効] チェックボックスにチェックを付けます。

    • [追加設定] セクションで、[プール・サイズ] を 0 に設定します。これにより、パススルー・サービスが専用ポートでリッスンしなくなります。この手順を省略して、[ポート] フィールドを空白のままにした場合は、Ensemble ではエラー・メッセージが表示されます。

    パススルー・サービスを専用ポートから呼び出す場合は、以下の操作を実行します。

    • ポート番号を指定します。

    • [設定] タブの [接続設定] フィールドで [標準リクエスト有効] チェックボックスのチェックを外します。

  3. [ターゲット] で、対象のパススルー・オペレーションを指定します。

CSP ポートを使用するパススルー・サービスのパフォーマンスを最適化するために、パススルー・ビジネス・サービスが複数の呼び出しにまたがって接続を開いたままにするように構成できます。このように構成するには、[標準要求パーティションを維持する] チェックボックスにチェックを付けます。

SOAP と REST のパススルー・サービスで SAML 検証を使用する方法は、“パススルー・サービスでの SAML 検証の使用法” を参照してください。

CSP ポートを使用してパススルー・ビジネス・サービスにアクセスするには、Web アプリケーションの定義も必要です。詳細は、“Web アプリケーションの構成” を参照してください。

パススルー・ビジネス・オペレーションの構成

パススルー・ビジネス・オペレーションを追加するには、[プロダクション構成] ページで新規オペレーションを追加するための + 記号を選択してから、以下の手順を実行します。

  1. 使用するプロトコルおよびデータベースへのメッセージの格納を抑止するかどうかに基づいてクラスを選択します。詳細は、"パススルー・サービスおよびパススルー・オペレーションでの永続メッセージの抑止" を参照してください。以下のいずれかのクラスを選択します。

  2. パススルー・オペレーションの [HTTP サーバ][HTTP ポート]、および [URL] の各設定を構成します。これらの設定は、直接構成することも、外部サービス・レジストリを使用して構成することもできます。外部サービス・レジストリを使用して設定するには、[外部レジストリ ID] プロパティの値を設定します。 [外部レジストリ ID] の設定の詳細は、“ESB ホストの構成での外部サービス・レジストリの使用” を参照してください。 [外部レジストリ ID] の設定を適用したら、Ensemble では、レジストリから現在値が読み取られ、この値を使用して他のプロパティが設定され、値は読み取り専用としてマーキングされます。

    URL を明示的に設定することも、汎用サービスに送信された受信 URL から派生させて設定することもできます。サービス・レジストリを使用して設定することも、URL プロパティで直接設定することもできます。受信 URL から派生させるには、以下のように、外部サービス・レジストリの [エンドポイント] フィールドの URL セグメントまたは [URL] プロパティを設定します。

    • 空の文字列 : GenericMessage 内の URL を使用します。通常はこの URL は汎用サービスに渡された URL です。一般に、この設定値を使用するのは、当該パススルー・サービスが専用ポートから呼び出される場合に、URL に Web アプリケーション名とサービス・コンポーネント名が含まれていない場合です。

    • | (縦棒) : GenericMessage 内の URL 値から Web アプリケーション名と構成名を除去して、その残り部分を URL として使用します。一般に、この設定値を使用するのは、GenericService が標準 CSP ポートを通じて呼び出される場合です。ビジネス・サービスの Web アプリケーション名と構成名は、GenericService への呼び出しをルーティングするために必要ですが、外部サーバにとっては不要です。

      URL は Web アプリケーション名および構成名と比較されます。このとき大文字小文字が区別されます。Web アプリケーション名のアルファベット文字はすべて小文字にする必要があり、構成名に対応する URL のセグメントは、プロダクションで定義されているとおりの構成名の大文字小文字に一致する必要があります。

    • ^ (曲折アクセント記号) : GenericMessage 内の URL 値から Web アプリケーション名を除去して、その残り部分を URL として使用します。一般に、この設定値を使用するのは、GenericService が標準 CSP ポートを使用して呼び出される場合に、パススルー・オペレーション・コンポーネントの名前が外部サーバで想定される URL の先頭部分と同じである場合のみです。URL 内の Web アプリケーション名のアルファベット文字はすべて小文字にする必要があります。

    [URL] プロパティで空ではない文字列を指定し、縦棒も曲折アクセント記号も含めない場合、受信 URL は送信 URL の生成には使用されません。

  3. パススルー・オペレーションは通常パススルー・メッセージの内容を変更しませんが、EnsLib.HTTP.GenericOperationOpens in a new tab オペレーションと EnsLib.REST.GenericOperationOpens in a new tab オペレーションで文字セット変換を実行するよう指定できます。例えば、オペレーションに文字変換を実行させ、アクセント文字が Web ブラウザで正しく表示されるようにできます。文字セット変換を実行するように HTTP または REST の汎用オペレーションを設定するには、[追加設定][Read Raw モード] チェック・ボックスのチェックを外します。

パススルー・サービスでの SAML 検証の使用法

パススルー・サービスは SAML トークンを検証しますが、SAML トークンによって外部サーバ上のリソースへのアクセスが可能になるかどうかは確認しません。外部サーバは、要求されたアクセスが SAML トークンによって許可されるかどうかを確認する必要があります。[検証] フィールドは、パススルー・ビジネス・サービスによって実行される SAML トークン検証のレベルを制御します。以下のフラグは、実行される検証の種類を指定します。

  • t — 'access_token=' というキーを持つ Authorization ヘッダ SAML トークンが含まれている必要があります。

  • a — トークンにはアサーションが含まれている必要があります。

  • r — アサーションに NotBefore/NotOnOrAfter 時間条件が含まれている必要があります。

  • v — Trusted X.509 証明書と NotBefore/NotOnOrAfter 条件 (存在する場合) を使用してアサーション署名を検証します。

  • o — その他の署名付きノードを検証します (TimeStamp など)。

デフォルトでは検証の値は 1 であり、これは tarvo を指定することと同じです。0 という値を指定した場合は、パススルー・サービスは検証を実行しません。

NotBefore および NotOnOrAfter 時間条件をチェックする際は、デフォルトのクロック・スキュー許容差は 90 秒です。このスキュー許容差を変更するには、^Ens.Config("SAML","ClockSkew") グローバルを設定します。すべてのコンポーネント向けのデフォルト・クロック・スキューを 180 秒に設定するには、次のコマンドを入力します。

Set ^Ens.Config("SAML","ClockSkew")=180

特定のコンポーネント向けのスキュー許容差を 180 秒に変更するには、次のコマンドを入力します。

Set ^Ens.Config("SAML","ClockSkew",component-name)=180

パススルー・サービスおよびパススルー・オペレーションでの永続メッセージの抑止

パススルー・サービスおよびパススルー・オペレーションを使用して効率性を最大にするために、永続メッセージの使用を抑止することができます。パススルー・サービスは、永続メッセージを作成することなく、直接パススルー・オペレーションに呼び出しを送信します。パススルー・オペレーションは、応答メッセージをパススルー・サービスに同じ方法で送信します。これによって、高レベルのスループットが実現され、メッセージをパージする必要がなくなりますが、以下の制限事項があります。

  • パススルー呼び出しの永続的な記録が保持されることはありません。メッセージ・ビューワにメッセージを表示したり、メッセージ・トレースを確認したりできません。これによって、問題のトラブルシューティングが難しくなります。

  • 再試行メカニズムが用意されていません。サーバへの通信の最初の試行に失敗した場合、この失敗は、パススルー・サービスを呼び出すアプリケーションに返されます。

  • このモードは、パススルー・サービスがパススルー・オペレーションを直接ターゲットとしている場合にのみ使用できます。メッセージが、ビジネス・プロセス・ルータなど他のプロダクション・コンポーネントを経由する場合、プロセス全体で永続メッセージが使用されます。

パススルー・サービスとパススルー・オペレーションのペアの場合に永続メッセージの使用を抑止するには、パススルー・オペレーションの専用クラスの 1 つを選択します。

さらに、永続メッセージを抑止するために、パススルー・ビジネス・サービス構成の [永続メッセージを InProc で送信] チェックボックスのチェックを外す必要があります。

パススルー・サービスで標準の CSP ポートを使用している場合、サービスが複数の呼び出しにまたがって TCP 接続を開いたままにするように構成することによって、効率性をさらに向上することができます。そのためには、パススルー・サービス構成で、[標準要求パーティションを維持する] チェックボックスにチェックを付けます。

その他のビジネス・サービス、ビジネス・プロセス、およびビジネス・オペレーションの使用

パススルー・サービスとパススルー・オペレーションのみが設定されたプロダクションで最も単純な ESB システムを構成できますが、要件によっては、より複雑なプロダクション・コンポーネントでしか満たすことができません。例えば、ESB で以下のいずれかの処理を行う必要がある場合、他の種類のビジネス・サービスとビジネス・オペレーションが必要です。

  • 1 つの受信サービスからの呼び出しを、呼び出しの内容に応じて複数の外部サービスにルーティングする処理。

  • サービスに使用されるパラメータまたはプロトコルの変更。

  • 複数の外部サービスの機能を組み合わせて実装される 1 つのサービスの公開。

  • ESB へのサービスの直接の提供。

  • SAML トークンに基づいたセキュリティ以外のセキュリティの提供。

他のビジネス・サービス、ビジネス・プロセス、およびビジネス・オペレーションを使用して REST および SOAP サービス要求を処理する操作の詳細は、"Ensemble での Web サービスおよび Web クライアントの作成" を参照してください。

パススルー・サービスおよびパススルー・オペレーションのパフォーマンス統計の追跡

使用している ESB システムが、ユーザのニーズを満たし続けることができるように、ESB システムのパフォーマンスを監視して追跡することが重要です。この監視を定期的に実行することによって、作業負荷の増加を管理でき、負荷が増加した場合はリソースの追加で対処します。パススルー・サービスおよびパススルー・オペレーションで永続メッセージを使用している場合は、Ensemble の監視機能を使用して、パフォーマンスの追跡とレポートを行うことができますが、アクティビティ量の監視には、以下の場合に有用なパフォーマンス統計の概要を作成するメカニズムが用意されています。

  • システム全体のパフォーマンスの追跡

  • システムがサービス品質保証 (SLA) を遵守していることの確認

  • 潜在的な問題の特定

永続メッセージの保存を抑止している場合 (“パススルー・サービスおよびパススルー・オペレーションでの永続メッセージの抑止” を参照)、このような統計概要が、パフォーマンス追跡の主要ツールとなります。

この統計概要は、パススルー・サービスおよびパススルー・オペレーションごとの以下の情報で構成されます。

  • 決められた時間間隔 (10 秒) の間に完了したメッセージの合計数

  • これらのメッセージの処理の完了に要した合計時間

一般的にパフォーマンスの監視に当てはまることですが、パフォーマンス統計の定期的な監視および記録が重要です。これによって、傾向を検出したり、現在のパフォーマンスを基準値と比較したりできます。これは、パフォーマンス上の問題の原因が、負荷の増加、ネットワーク上の問題、サービスを提供しているサーバの問題、あるいは ESB のパフォーマンス上の問題のいずれであるかの判別に役立つ場合があります。

パススルー・サービスおよびパススルー・オペレーションの統計概要のメカニズムは、以下のコンポーネントで構成されます。

  • [構成] および [グローバル] の設定。パススルー・サービスおよびパススルー・オペレーションでの統計の生成を有効にします。

  • デーモン。パススルー・サービスおよびパススルー・オペレーションから統計を取得してデーモンに送信し、保存します。

  • ユーザ・インタフェース。統計の監視および調査に使用します。

詳細は、“Ensemble の監視” の "アクティビティ量の監視" を参照してください。

FeedbackOpens in a new tab