この章では、エンタープライズ・サービス・バスとしての InterSystems IRIS® の使用を紹介し、InterSystems IRIS ESB アーキテクチャについて説明して、ESB の配置の概要を示します。
エンタープライズ・サービス・バス・アーキテクチャ
InterSystems IRIS ESB アーキテクチャのコンポーネントは、次のとおりです。
-
受信要求をサーバに接続するルーティング・メカニズム。これは、専用のビジネス・サービスとビジネス・オペレーション、およびビジネス・プロセスのプロダクション (オプション) によって実装されます。
-
パブリック・サービス・レジストリ。このサービス・レジストリには、ESB パブリック REST API を使用して ESB クライアントからアクセスできます。開発者は、これを使用して、ESB 経由で使用可能なサービスに関する情報を取得できます。
-
外部サービス・レジストリ。このサービスは、ESB プロダクション内でのみアクセス可能です。これは、ESB ビジネス・ホストにエンドポイントの情報を提供します。
-
SAML トークン検証サービス。
ESB プロダクションとサービス・レジストリの両方を、ESB 専用のネームスペースで定義する必要があります。
Note:
1 つの InterSystems IRIS インスタンスで 1 つの ESB プロダクションのみを実行することをお勧めします。
この最も単純な形では、ESB はパススルー・サービス、パススルー・オペレーション、およびサービス・レジストリで構成されます。次の図は、単純な ESB のアーキテクチャを示しています。
単純なエンタープライズ・サービス・バス・アーキテクチャ
通常、アプリケーション開発者は、使用可能なサービスについて検索し、基盤となるサービスへのアクセスを提供するパススルー・ビジネス・サービスの URL を取得するために、Web ページまたはアプリケーションを使用して ESB サービス・レジストリにクエリを実行します。このクエリおよびサービスの検出プロセスは、開発者がクライアント・アプリケーションを作成しているときに実行されます。開発者が、サービスへのアクセスに必要な URL や説明などの情報を取得した後は、クライアント・アプリケーションからは、サービスを呼び出すためにサービス・レジストリにアクセスする必要はありません。環境によっては、クライアント・アプリケーションからパブリック API に実行時呼び出しを行って、レジストリ・エントリが前回のアクセス以降に変更されていないことを確認する場合があります。
クライアント・アプリケーションは、パススルー・サービスを呼び出します。パススルー・サービスは、ターゲットの設定に指定されているパススルー・オペレーションにメッセージを送信します。そのパススルー・オペレーションは、外部サービス・レジストリでエンドポイント URL を検索するよう構成されています。パススルー・オペレーションは、エンドポイント URL を使用して外部サービスを呼び出します。外部サービスは、パススルー・オペレーションに応答を返し、パススルー・オペレーションはその応答をパススルー・サービスに転送します。次にパススルー・サービスは、その応答をクライアント・アプリケーションに返します。
パススルー・サービスとパススルー・オペレーションに加えて、より複雑なサービス、オペレーション、およびビジネス・プロセスを定義して、次のような機能を追加することができます。
-
1 つの受信サービスからの呼び出しを、呼び出しの内容に応じて複数の外部サービスにルーティングする処理。これによって、ESB は、1 つの外部サービスからでは使用できないサービスを提供できます。クライアント・アプリケーションが、拡張されたサービスの実装に必要な外部サービスの影響を受けることはありません。
-
サービスに使用されるパラメータまたはプロトコルの変更。1 つのサービスを使用する一連のアプリケーションを開発したが、後に異なる API を使用するより優れたサービスが使用可能になった場合、ESB では、各アプリケーションを変更するのではなく、変換を実行できます。クライアント・アプリケーションが、1 つの外部サービスから別のサービスへの切り替えに必要な変更の影響を受けることはありません。
-
ESB へのサービスの直接の実装要件を満たす外部サービスがない場合、ObjectScript を使用して ESB に外部サービスを実装できます。
ただし、このようなより複雑なサービスを ESB に追加すると効率性が犠牲になります。複雑なサービスにより追加の処理が必要になり、ESB による要求の処理が遅くなり、スループットが低下します。
きわめて高度なスループットが必要な ESB システムの場合、永続メッセージを排除することによって、要求処理のオーバーヘッドを削減できます。永続メッセージは、パススルー・サービスからパススルー・オペレーションに送信され、オペレーションからサービスに返されるオブジェクトです。これらのオブジェクトは、InterSystems IRIS データベースに格納されます。これらの永続メッセージは、ESB で処理された呼び出しの追跡とレポート、および問題が発生した場合のトラブルシューティングに役立ちます。ただし、これらのオブジェクトの作成にはリソースが必要で、スループットがきわめて高度なシステムの場合、これらのオブジェクトに必要なストレージはかなり大きくなることがあります。システムを保持するためには、これらのメッセージを頻繁にパージする必要があります。永続メッセージの使用を抑止し、柔軟性を下げることによって効率性を高めることができます。詳細は、“パススルー・サービスおよびパススルー・オペレーションでの永続メッセージの抑止” を参照してください。
Note:
HealthShare 製品を実行している場合、HealthShare サービス・レジストリは、InterSystems IRIS サービス・レジストリとは異なります。HealthShare サービス・レジストリは、InterSystems IRIS 外部サービス・レジストリと同様の機能を提供します。ほとんどの場合、HealthShare サービス・レジストリの使用を続行し、InterSystems IRIS 外部サービス・レジストリは使用しないでください。