高度なカスタマイズ > Info*Engine 実装 > コンフィギュレーションプロセスについて
  
コンフィギュレーションプロセスについて
以下のトピックでは、Info*Engine コンポーネントを設定するときに必要な基本概念とツールについて説明します。
Info*Engine LDAP ディレクトリ
ネーミングサービスは、LDAP ディレクトリ (複数の場合もある) を使用して、Info*Engine コンポーネントを検索するために必要な情報を保存します。すべての Info*Engine サーブレット、Info*Engine サーバー、タスクプロセッサ、アダプタ、およびゲートウェイの名前と場所は、LDAP ディレクトリのエントリで指定する必要があります。各コンポーネントに関連付けられるプロパティは、各コンポーネントの LDAP ディレクトリのエントリで属性として保存されます。ネーミングサービスでは、この情報の要求があったときに、コンポーネントのプロパティ設定が実行されます。
サイトは、標準的なネーミング規則 (たとえば、民間、組織、またはドメインなどのネーミング規則) のいずれかを使用して、LDAP ディレクトリのエントリを設定できます。Info*Engine LDAP エントリの保存のみに使用される LDAP ディレクトリについて、サイトは 1 台のマシン上のコンポーネントを使用するようにマシンに固有のディレクトリ構造やサーチベースを設定するか、同じコンポーネントを持つ複数のマシン間にリクエストが無作為に広がるようにサーチベースを設定することができます。インストール時に指定したサーチベースの下にエントリが作成されますが、これらのエントリは自動的にセットアップされ、設定されます。
以下の例は、JDBC アダプタについて 1 台のマシン上で検索を行う場合に使用できる、マシン固有のディレクトリ構造およびサーチベースを示しています。ここで、「myHost」は完全修飾マシン名です。
次の例は、同じコンポーネントを持つ複数のマシン間でリクエストが無作為に広がるようにサーチベースを設定した場合の、同様のディレクトリツリーを示しています。ここで、「myHost1」は完全修飾マシン名です。
前の例では、「myHost」および「search base」は各サイトで指定する必要があり、残りの情報はインストール時に自動的に入力されます。インストール時に設定された情報を手動で変更することはできません。後で特定の値を変更する必要が生じた場合は、「プロパティ管理」ユーティリティを使用してアダプタエントリ値を修正します。
以下のようなドメイン構造の利用を検討してください。
このドメイン構造は、電子メールユーザー用に維持される構造とよく似ており、一般的なユーザーコミュニティでよく見かけるものです。LDAP エントリの一意性を維持するには、環境全体を通して各ホスト名が一意である状態をサイトで確保する必要があります。上記のダイアグラムの例は、「myHost」エントリの下層に存在する Info*Engine サービス LDAP を示しています。ptcServiceName 属性には、コンポーネントに対して定義されたサービス名が含まれています。
上記の例で、Info*Engine サーチベースを「dc=myCompany,dc=com」に設定すると、Info*Engine エントリをほかのホストおよびロケーションエントリの下位にも存在させることができます。次のダイアグラムは、「dc=aLocation」および「dc=aHost」の下位のその他の Info*Engine エントリを示しています。
Info*Engine LDAP エントリは、ネーミングサービスサーチベースで定義されるサブツリーの任意の場所に配置できます。たとえば、上記のダイアグラムでは、追加のエントリを「dc=myCompany」の直下に定義すると同時に、「myCompany」サブツリー内のほかのエントリの下層にも定義できます。
前の例で、Info*Engine LDAP エントリのサービス名に以下のネーミング規則が使用されている点に注意してください。
domainPath.componentName
ネーミング規則では、domainPath はコンポーネントが動作したり常駐する企業ドメインのホストを定義し、componentName はドメインパスに関連する一意の名前です。たとえば、JDBC アダプタサービスを「myHost」エントリの下層で「jdbcAdapter」とネーミングする代わりに、サービス名を「com.myCompany.myHost.jdbcAdapter」とします。コンポーネントは、ドメインパスの「com.myCompany.myHost」に関して一意であれば、サーチベース内で一意です。
サービス名を使用した Info*Engine サービスのリクエストを受け、同じ LDAP サービス名を持つコンポーネントが 1 つ以上存在する場合、ネーミングサービスは使用するコンポーネントを無作為に選択します。たとえば、"jndi" というアダプタサービスエントリが「myCompany」および「myHost」の両方のブランチの下層に定義されており、JNDI アダプタのインスタンスに対するリクエストが発生した場合、ネーミングサービスは使用する「jndi」アダプタエントリを無作為に選択します。
* 
複数のサービスエントリに同じ名前を命名する場合、リクエスト間で結果が同じになるように、各エントリを完全に同じに設定する必要があります。
Info*Engine プロパティ管理
Info*Engine プロパティ管理ユーティリティを使用して、Info*Engine コンポーネントの LDAP エントリを設定します。Info*Engine インストーラは、ネーミングサービス、Info*Engine サーブレット、Info*Engine サーバー、およびインストールするタスクプロセッサに LDAP エントリを設定します。
ネイティブアダプタをインストールした後、アダプタのプロパティを設定する必要があります。非ネイティブアダプタをインストールした後、ゲートウェイプロパティを設定して、非ネイティブアダプタのゲートウェイを定義する必要があります。
Info*Engine LDAP エントリを表示または修正したり、ほかのコンポーネントにエントリを追加するには、Info*Engine プロパティ管理ユーティリティを起動します。Info*Engine プロパティ管理ユーティリティは、JSP ルートディレクトリの下位の infoengine/jsp/admin ディレクトリにあります。たとえば、インストールによって JSP ルートディレクトリにデフォルトの「Windchill」エイリアスが設定され、Info*Engine がローカルホスト上でデフォルトのポートを使用してインストールされたと仮定します。次の URL を入力して、Info*Engine プロパティ管理ユーティリティを起動します。
http://localhost/Windchill/infoengine/jsp/admin/index.jsp
または、Windchill の「ナビゲータ」枠で、「サイト」 > 「ユーティリティ」 > 「Info*Engine 管理」の順に選択します。
Info*Engine プロパティ管理ユーティリティが開き、ログオンページが表示されます。
「ベース URI」に設定する値は、LDAP ディレクトリが常駐するホスト、既存のサービスエントリを表示する際に使用する LDAP ディレクトリレベル、および新しいエントリを作成するためのデフォルトのディレクトリレベルです。たとえば、プロパティ管理ユーティリティで設定するプロパティが、"ldap.company.com" という名前のホスト上で、そのディレクトリの「dc=windchill,dc=company,dc=com,cn=config,o=company」サブツリーに存在しているとします。この結果、ベース URI は次のようになります。
ldap://ldap.company.com/dc=windchill,dc=company,dc=com,cn=config,o=company
「LDAP サーバー管理者」は、ディレクトリ内で Info*Engine エントリを作成および修正する権限を持ったユーザーを識別する LDAP ディレクトリエントリを参照します。また、「パスワード」は、指定された管理者とともに使用されるパスワードです。
最初のログオンの後、デフォルトの「ベース URI」値を設定できます。これらの設定オプションおよび Info*Engine プロパティ管理ユーティリティの使用に関する一般的な情報については、プロパティ管理ユーティリティの使用を参照してください。
Info*Engine コンポーネントの再設定
最初のインストール時に、Windchill インストーラは Info*Engine サーブレット、ネーミングサービス、Windchill アダプタの LDAP エントリを作成します。後のインストールで同一の LDAP ディレクトリを指定した場合、インストーラは既存エントリを更新します。
Info*Engine コンポーネント (アダプタおよびゲートウェイなど) を再設定するには、Info*Engine プロパティ管理ユーティリティを使用します。各コンポーネントのプロパティは、コンポーネントエントリの LDAP 属性内に保存されています。コンポーネントを再設定するには、プロパティ管理のメインページでそのコンポーネントの名前をクリックして、属性を含むフォームを表示します。詳細については、既存の LDAP エントリの編集を参照してください。
コンポーネント名
Info*Engine の各コンポーネントには、サービス名とランタイムサービス名があります。コンポーネントの LDAP エントリを作成する際に、これらの名前を指定します。デフォルトでは、サービス名とランタイムサービス名は同じです。サービス名は、Info*Engine プロパティ管理ユーティリティでサービスを識別する名前で、通常、Webject またはタスクがサービスのインスタンスをリクエストするときに指定される名前です。Java コマンド引数またはサーブレットエンジンの初期化パラメータによって、コンポーネントを起動するときに、ランタイムサービス名を使用します。ランタイムサービス名によって、サービスのプロパティのプリフィックスが定義されます。
通常、サービス名とランタイムサービス名は同じです。ただし、使いやすく短いサービス名を使用してアダプタ Webject INSTANCE パラメータでの入力を簡単にするために、管理者は、Info*Engine プロパティ管理サービスフォームの「サービス名」および「ランタイムサービス名」の両フィールドで指定されるデフォルトの名前と異なるサービス名を作成できます。
次の表は、Info*Engine コンポーネントに対して提示される名前を示しています。
Info*Engine コンポーネント
提示された名前
サーブレット
domainPath.servlet
SOAP RPC サーブレット
domainPath.rpc
ネーミングサービス
domainPath.namingService
サーバー
domainPath.server
JDBC アダプタ
domainPath.jdbcAdapter
JNDI アダプタ
domainPath.jndiAdapter
Windchill アダプタ
domainPath.Windchill
ゲートウェイ
domainPath.gateway
各名前に示されている domainPath は、コンポーネントが動作または常駐するドメインのホストを定義します。インストールの際に、入力されるネーミングサービスサーチベースにパスが設定されます。たとえば、サーチベースが「dc=myLocation,dc=myCompany,dc=com,ou=pIE,l=Pacific,o=myCompany,c=US」に設定されている場合、企業のシステム内に Info*Engine LDAP エントリに使用される同様のパスがないと仮定すると、"com.myCompany.myLocation" という domainPath を使用できます。
コンフィギュレーションプロパティ
Info*Engine コンポーネントは、LDAP ディレクトリエントリに保存されている属性を使用して、コンフィギュレーションプロパティを定義および維持します。Info*Engine コンポーネントプロパティは、ランタイムサービス名で始まる個々のコンポーネントに適用され、そのコンポーネントの使用時に読み込まれます。
たとえば、「com.company.Ldap1」のランタイムサービス名が JNDI アダプタを定義した場合、そのコンフィギュレーションプロパティの名前は「com.company.Ldap1」で始まります。したがって、プロパティ管理フォームで JNDI アダプタの「サーチベース」フィールドに値を入力すると、com.company.Ldap1.searchBase プロパティが設定されます。
* 
Windows システムでは、円マーク (\) がディレクトリセパレータですが、Info*Engine プロパティ管理ユーティリティの例で示されているファイルのパスでは、スラッシュ (/) がファイルパスのセパレータとして使用されています。スラッシュを指定すると、Info*Engine はすべてのシステムファイルパスを正しく識別します。Windows ファイルパスにバックスラッシュを使用する場合、ファイルパスでバックスラッシュをエスケープする必要があります。つまり、パスの各バックスラッシュ (\) に対して、2 つのバックスラッシュ (\\) を入力します。
プリフィックスとしてランタイムサービス名を使用すると、混乱を引き起こさずに適切なプロパティが適切なコンポーネントに適用されて、すべてのコンポーネントプロパティをメモリにロードできます。同じプリフィックスを持つプロパティが何回も手動で設定されている場合、最後に読み込まれたプロパティの値が使用されます。Info*Engine は、LDAP エントリが読み込まれる順序を制御しないので、プロパティが数回設定されている場合、結果として生じるプロパティの値は予測できません。
通常、ユーザーは Info*Engine の各コンポーネントに一意の LDAP ディレクトリエントリを 1 つ維持します。ただし、1 つの LDAP サービスエントリに複数のコンポーネントに共通するプロパティを維持しておいて、プロパティを使用する各コンポーネントの LDAP エントリを含めることができます。Info*Engine プロパティ管理ユーティリティには、この目的のために、フォーム上に「その他のサービス」セクションが設けられています。
Info*Engine は、コンフィギュレーションプロパティを以下の 2 つの方法で使用します。
コンポーネントが起動する際に、プロパティが設定されます。大部分のコンポーネントでは ie.properties ファイルを使用します。ie.properties ファイルには、LDAP 情報を指定する seeAlso プロパティが含まれています。これによって、このファイルにアクセス制御を設定し、ps コマンドの使用によって機密情報が表示されるのを防ぐことができます。
Info*Engine がリクエストを処理するためにコンポーネントのインスタンスを作成する際に、プロパティが読み込まれます。
ie.properties ファイルについて
ie.properties ファイルは、Info*Engine がインストールされている /codebase/WEB-INF ディレクトリに存在し、Info*Engine プロパティを含む LDAP ブランチの参照が含まれます。この参照には、サービスが LDAP ディレクトリにアクセス可能なことを確認するための情報も含まれます。
Windchill インストーラは、ユーザーが LDAP 設定の入力時に指定した値に基づいて、ie.properties ファイルのコンテンツを作成します。以下の設定が含まれます。
LDAP サーバー DNS 登録ホスト名
管理者の識別名
管理パスワード
製品プロパティの基本識別名
* 
ie.properties ファイルのコンテンツは site.xconf ファイル内のエントリから生成され、xconfmanager ユーティリティを使用して設定されます。このファイルを直接編集することはできません。
たとえば、以下のように値が設定されているとします。
「管理者の識別名」が「cn=Manager」
「管理パスワード」が「admin」
「LDAP サーバーの DNS 登録ホスト名」がローカルホスト「host.company.com」
「製品プロパティの基本識別名」が「cn=configuration,cn=Windchill_10,o=Company」
この例では、ie.properties ファイルには以下が含まれます。
seeAlso=ldap://cn=Manager:encrypted.ie.ldap.managerPw@host.company.com/
cn=configuration,cn=Windchill_10,o=Company
com.myCompany.myState.myHost.namingService.
directoryProvider=ldap://cn=Manager:encrypted.ie.ldap.managerPw@host.company.com
* 
この例の LDAP のパスワードは「admin」ですが、ie.properties ファイルにはプレーンテキストでこのパスワードは格納されません。実際のパスワードは WTKeystore に格納され、必要に応じて取得されます。
Info*Engine では、ie.properties ファイルを使用することにより、管理者のユーザー名とパスワードを、一部のオペレーティングシステムで表示可能な個々の起動スクリプトではなく、比較的安全なファイルに保存できます。さらに、このファイルの内容を変更するだけで、異なった LDAP エントリのセットを簡単に使用でき、LDAP 認証を簡単に変更できます。
* 
ie.properties ファイルの内容を変更するには、xconfmanager ユーティリティを使用します。詳細については、xconfmanager ユーティリティについてを参照してください。それ以外の場合は、コマンドラインで以下のコマンドを入力します。
xconfmanager --help