ESB の構成
ここでは、InterSystems IRIS® システムを ESB として構成する方法を説明します。
ESB としての InterSystems IRIS の構成の概要
この節では、InterSystems IRIS を ESB として構成するために必要なタスクの概要を示します。各タスクの詳細は、他の節で示しています。
-
ESB プロダクションおよびサービス・レジストリを格納するための相互運用対応ネームスペースを作成して、Web ゲートウェイを構成します。詳細は、"InterSystems IRIS システムの構成とネームスペースの作成" を参照してください。
-
ESB で使用する外部サービスのエンドポイントを定義する外部サービス・レジストリのエントリを作成します。詳細は、"パブリック・サービス・レジストリおよび外部サービス・レジストリの管理" を参照してください。
-
ESB プロダクションを作成し、ビジネス・サービス、およびそれらのサービスを提供するビジネス・オペレーションを追加して構成し、プロダクションを開始します。サービスとオペレーションの構成の詳細は、"ESB のサービスおよびオペレーションの構成" を参照してください。
-
クライアントでビジネス・サービスを使用できるようにするために必要な Web アプリケーションを作成します。詳細は、"Web アプリケーションの構成" を参照してください。
-
管理ポータルからパブリック REST API を使用してパブリック・サービス・レジストリにアクセスするときに必要なロールとユーザを作成します。詳細は、"パブリック・サービス・レジストリに対するロールとユーザの定義" を参照してください。
-
Web アプリケーションを作成して、パブリック・サービス・レジストリに対して REST API を有効にします。 詳細は、"パブリック・サービス・レジストリ API への Web アプリケーションの構成" を参照してください。
-
ESB からアクセス可能なサービスを記述するパブリック・サービス・レジストリのエントリを作成します。詳細は、"パブリック・サービス・レジストリおよび外部サービス・レジストリの管理" を参照してください。
パブリック・サービス・レジストリに対するロールとユーザの定義
レジストリ内の情報に誰もがアクセスできるように ESB を構成することも、個々のレジストリ・エントリによるアクセスを特定のアカウントに限定することもできます。
パブリック・サービス・レジストリの一部またはすべてのエントリへのアクセスが開かれるようにするには、以下の操作を行います。
-
以下のいずれかの操作を実行して、ロールを作成します。
-
[システム管理]→[セキュリティ]→[ロール] の順に選択して、[ロール] ポータル・ページを表示します。
-
[新規ロール作成] ボタンを選択して、ロールに名前を付け (例 : ServReg_Unauthenticated)、[保存] ボタンを選択します。
-
-
以下の操作を実行して、パブリック・サービス・レジストリ向けの Web アプリケーションを編集または作成します。
-
[許可された認証方法] の [認証なし] チェックボックスにチェックを付けます。
-
前の手順で定義したロールを [アプリケーションロール] に追加します。
追加の必要がある他のロールの追加の詳細は、"パブリック・サービス・レジストリ API への Web アプリケーションの構成" を参照してください。
-
-
認証されていないユーザがアクセスできるようにするパブリック・サービス・レジストリのエントリごとに、手順 1 で定義したロールを [必要なロール] フィールドに追加します。これは、[内部情報] 内のカンマ区切りのリストです。
認証なしのアクセスを許可するには、ロールの定義だけが必要で、ユーザを定義する必要はありません。
パブリック・サービス・レジストリのエントリへのアクセスを 1 人以上のユーザに制限するには、以下の操作を行います。
-
以下のいずれかの操作を実行して、ロールを作成します。
-
[システム管理]→[セキュリティ]→[ロール] の順に選択して、[ロール] ポータル・ページを表示します。
-
[新規ロール作成] ボタンを選択して、ロールに名前を付け (例 : ServReg_IDServices)、[保存] ボタンを選択します。
-
-
以下の操作を実行して、パブリック・サービス・レジストリに対して Web アプリケーションを編集または作成します。
-
[許可された認証方法] の [パスワード] チェックボックスにチェックを付けます。
-
前の手順で定義したロールを [アプリケーションロール] に追加しないでください。
追加の必要がある他のロールの追加の詳細は、"パブリック・サービス・レジストリ API への Web アプリケーションの構成" を参照してください。
-
-
このロールを持つユーザがアクセスできるようにするパブリック・サービス・レジストリのエントリごとに、このロールを [許可されたロール] フィールドに追加します。これは、カンマ区切りのリストです。
-
以下のように、ユーザ・アカウントを作成または編集して、ロールをユーザに割り当てます。
-
[システム管理]→[セキュリティ]→[ユーザ] の順に選択して、[ユーザ] ポータル・ページを表示します。
-
[新規ユーザ作成] ボタンを選択して、ユーザに名前を付け、パスワードなどの関連フィールドに入力し、[保存] ボタンを選択するか、既存のユーザを選択して編集します。
-
[ロール] タブで、作成したロールを 1 つまたは複数選択し、右矢印ボタンを選択して、[割り当てる] ボタンを選択します。
パブリック・サービス・レジストリ REST API にアクセスするために、ユーザにその他のロールを割り当てる必要はありません。サービス自体にアクセスできるように、追加のロールの割り当てが必要な場合があります。
-
レジストリ・エントリへのアクセスの制限または許可は、そのレジストリ・エントリによって記述されるサービスへのアクセスの制限または許可とはまったく無関係です。サービス自体へのアクセスの制御は、そのサービスを起動する Web アプリケーションへのアクセスを制御するか、そのサービスでカスタム・コードを使用することによって実現できます。
パブリック・サービス・レジストリ REST API への Web アプリケーションの構成
この節では、パブリック・サービス・レジストリ REST API に Web アプリケーションを構成する方法を説明します。
-
Web ポートへの呼び出しを処理する Web アプリケーションを定義します。この Web アプリケーションの名前によって、サービスを呼び出す URL のルートが指定されます。単一の Web アプリケーションは複数のビジネス・サービスをサポートできますが、これらのビジネス・サービスはすべて、同じクラスを持っているか、その Web アプリケーションのディスパッチ・クラスのサブクラスを持っている必要があります。
-
[システム管理]→[セキュリティ]→[アプリケーション]→[Web アプリケーション] の順に選択して、[Web アプリケーション] ポータル・ページを表示します。[新規 Web アプリケーション作成] ボタンを選択します。
-
この Web アプリケーションに名前を付けます (例 : /services)。名前の先頭には / (スラッシュ) を付加する必要があります。名前の中のアルファベット文字はすべて小文字にする必要があります。
-
[ネームスペース] で、当該サービス・レジストリが実行されているネームスペースを指定します (例 : SERVICESNS)。[ネームスペースのデフォルト・アプリケーション] チェックボックスのチェックは外したままにします。
-
[アプリケーション]、[Web ファイル]、および [着信 Web サービス] の各チェック・ボックスにはチェックを付けてもかまいません。
-
[必須リソース] フィールドと [ID でグループ分け] フィールドは空白のままにします。
-
ログインするユーザがこのレジストリにアクセスできるようにするには、[許可された認証方法] の [パスワード] チェックボックスにチェックを付けます。ログオンなしにユーザがこのレジストリにアクセスできるようにするには、[認証なし] チェックボックスにチェックを付けます。
-
[ディスパッチ・クラス] を Ens.ServiceRegistry.API.REST.QueryOpens in a new tab コンポーネント・クラスに設定します。
-
[保存] を選択します。
-
[アプリケーションロール] タブを選択します。
-
[利用可能] ボックスで、以下のロールを選択します。
-
%EnsRole_RegistrySelect
-
ネームスペースのグローバル用データベースおよびルーチン用データベースに定義されているロール (例 : %DB_SERVICESNSG や %DB_SERVICESNSR)
-
ユーザがログインに使用するアカウントに関係なく、すべてのユーザがアクセスできるようにするパブリック・サービス・レジストリに定義されているロール。非認証アクセスを許可するよう Web アプリケーションを構成している場合は、これらのロールを少なくとも 1 つ指定する必要があります。
複数のロールを選択するには、Ctrl キーを押しながら選択します。
-
-
選択したロールがハイライト表示された状態で、右矢印ボタンを選択してこれらのロールを [選択済み] テキスト・ボックスに移動します。
-
[割り当てる] ボタンを選択します。
-
Web アプリケーションで非認証サービスと認証済みサービスの両方を許可する場合は、パスワードの入力が求められますが、パスワードを入力しないと、Web アプリケーションによって非認証アクセスが許可されます。
ESB ホストの構成での外部サービス・レジストリの使用
ESB プロダクションと外部サービス・レジストリが同じネームスペースにある場合、そのレジストリを使用して ESB ホストを構成できます。これによって、レジストリ内で外部サービスに関する情報を一元化できます。ほとんどの場合、このようなレジストリは、外部サービスにアクセスするビジネス・オペレーションのプロパティの設定に使用しますが、FTP サーバから受信メッセージを取得する FTP 受信アダプタに基づくサービスなどのビジネス・サービスにこのようなレジストリを使用することもできます。
外部サービス・レジストリを使用して、以下のいずれかのアダプタを実装するホストのプロパティを設定できます。
-
EnsLib.FTP.InboundAdapter
-
EnsLib.FTP.OutboundAdapter
-
EnsLib.File.InboundAdapter
-
EnsLib.File.OutboundAdapter
-
EnsLib.HTTP.OutboundAdapter
-
EnsLib.SOAP.OutboundAdapter
-
EnsLib.SQL.InboundAdapter
-
EnsLib.SQL.OutboundAdapter
-
EnsLib.TCP.OutboundAdapter
設定を外部サービス・レジストリから取得するようホストを構成するには、[外部レジストリ ID] フィールドでそのレジストリ・エントリのキー値を指定します。キー値は、サービスの名前、ドメイン、およびバージョンが、それぞれの要素を区切る || (2 本の縦棒) で連結されたものから成ります。例えば、名前が GetDaily、ドメインが Weather、バージョンが 1.0 の外部サービス・レジストリ・エントリからプロパティ値を取得するには、[外部レジストリ ID] プロパティを以下のように設定します。
GetDaily||Weather||1.0
次に、エンドポイント値を使用して、以下の各プロトコルにアダプタのプロパティを設定する方法を説明します。
-
HTTP および REST — エンドポイントで HTTPServer プロパティ、HTTPPort プロパティ、および URL プロパティが設定されます。例えば、エンドポイントが以下の場合
http://newsrvcs.example.com:57781/csp/samples/docserver/namespaces
ビジネス・オペレーションのプロパティは以下のように設定されます。
HTTPServer : newsrvcs.example.com
HTTPPort: 57781
URL: /csp/samples/docserver/namespaces
ビジネス・オペレーションがパススルー・ビジネス・オペレーションである場合、特殊文字 * (アスタリスク)、^ (キャレット)、および | (縦棒) を使用して、受信 URL からエンドポイントを構築する方法を記述します。詳細は、"パススルー・ビジネス・オペレーションの構成" を参照してください。
-
FTP — エンドポイントで FTPServer プロパティ、FTPPort プロパティ、FilePath プロパティ、および SSLConfig プロパティが設定されます。例えば、エンドポイントが以下の場合
ftp://newftp.example.com/filestore/docs/
ビジネス・オペレーションのプロパティは以下のように設定されます。
FTPServer: newftp.example.com
FTPPort: 21
FilePath: /filestore/docs/
プロトコルが sftp:// である場合、SSLConfig は "!SFTP" に設定され、FTPPort は 22 に設定されます。
-
SQL — エンドポイントは、DSN プロパティの設定に使用されます。
-
SOAP — エンドポイントは、WebServiceURL プロパティの設定に使用されます。このため、EnsLib.SOAP.GenericOperationOpens in a new tab および EnsLib.SOAP.GenericOperationInProcOpens in a new tab パススルー・オペレーションは、SOAP オペレーションではなく HTTP オペレーションと見なされます。
-
File — エンドポイントは、FilePath プロパティの設定に使用されます。
-
TCP — エンドポイントは、IPAddress プロパティおよび Port プロパティの設定に使用されます。例えば、エンドポイントが以下の場合
102.23.10.1:4500
ビジネス・オペレーションのプロパティは以下のように設定されます。
IPAddress: 102.23.10.1
Port: 4500
-
HL7 および X12 — エンドポイント文字列の先頭で、基盤となる以下のプロトコルが指定されます。File、TCP、FTP、または HTTP。File および TCP の場合、解析の前にエンドポイントの文字列から file: および tcp: が削除されます。
外部サービス・レジストリ・エントリから取得したビジネス・オペレーションの設定によって、システムのデフォルト設定、プロダクション定義、およびビジネス・ホスト・クラス定義のいずれの設定も上書きされます。