ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Unified Directory開発者ガイド
11gリリース2 (11.1.2)
E50140-03
  目次へ移動
目次

前
 
次
 

1 Oracle Unified Directoryプラグインの基本コンセプトの理解

この章では、次の内容を説明します。

1.1 OUDプラグインの実装の要否判定

Oracle Unified Directory (OUD)プラグインAPIは、既存のディレクトリ・サーバー機能を拡張する手段を提供しています。非常に特有なディレクトリ・サーバー要件があってOUDではそのままでは対応できない場合、プラグインを開発することもできます。たとえば、OUDプラグインを使用して次のことを正常に実現できました。

これらのプラグインのいくつかは、Oracle顧客のOUDへのシームレスな移行を支援する役割を果たしました。これらは、LDAP操作をカスタマイズして結果をプログラムにより操作することでディレクトリ・サーバー機能をどのように拡張できるかの例にすぎません。

独自のOUDプラグインを開発することの利点と費用を分析する際には、次の点を考慮してください。

1.2 OUDプラグインおよびOUDワークフロー

OUDプラグインは新しいタイプのOUDワークフロー要素と考えることができます。ワークフローおよびワークフロー要素はOUDディレクトリにおける基礎的なビルディング・ブロックです。ワークフローおよびワークフロー要素がOracle Unified Directoryアーキテクチャでどのように機能するかの詳細は、『Oracle Fusion Middleware Oracle Unified Directory管理者ガイド』を参照してください。

OUDプラグインは任意のワークフロー要素ツリーに挿入できます。OUDプラグインがワークフロー要素ツリー内で実行できる代表的なタスクは次のとおりです。

次の図に、ネーミング・コンテキスト・ワークフローおよびDNリネーム・ワークフロー要素を含む代表的なOUDワークフローを示します。OUDプラグインがこれらのビルディング・ブロックの下流、およびリモート・バックエンド・ワークフロー要素の上流に挿入されます。

wfevsplugins-2.pngの説明が続きます
図wfevsplugins-2.pngの説明

いくつかのOUDプラグインを開発した後に、OUDワークフロー内にプラグイン・チェーンを形成できます。

1.3 OUDプラグインの実装ポイント

OUDプラグインは次の実装ポイント・セットを経由してOUDコア・サーバーと対話します。

プラグインを管理するための実装ポイントはoracle.oud.plugin.ManagedPluginインタフェースに定義されています。

LDAP操作をインターセプトするための実装ポイントは、oracle.oud.plugin.RequestManagerインタフェースに定義されています。第3.6項「内部操作」も参照してください。

1.4 Oracle Unified Directoryプラグインのバージョン情報

Oracle Unified Directoryプラグインが、次の3つのJavaインタフェース: oracle.oud.RequestManageroracle.oud.plugin.Pluginおよびoracle.oud.plugin.ManagedPluginから形成されるoracle.oud.plugin.ManagedPluginの実装です。

oracle.oud.RequestManager

LDAPプロトコルで定義されている各タイプの操作のメソッドを定義します。handleAddという名前のメソッドは、プラグインがLDAPのadd操作に含まれるたびに呼び出されます。bindcomparedeletemodifymodifyDNおよびsearch操作には、同様のメソッドが存在します。例外は、abandonおよびunbind操作で、これらの2つのタイプのリクエストはインターセプトできません。

oracle.oud.plugin.Plugin

名前をインスタンスごとに一意のプラグインに関連付けます。プラグインを識別すると、受け取ったリクエストをプラグインが複数のプラグインの中の特定のプラグインにルーティングする際に役立ちます。

oracle.oud.plugin.ManagedPlugin

プラグインのライフ・サイクルを定義します。ライフ・サイクルは、サーバーが起動したときまたはプラグインが作成されたときのプラグインの初期化から始まります。初期化後、プラグインは構成変更を受け取ることができます。サーバーが停止したときまたはプラグインがサーバー構成から削除されたときに、プラグインはファイナライズされます。

OUDプラグインの後にプロセス・チェーンの1つ以上のプラグインを続けることができます。最も一般的なケースは、後にプラグインが1つのみ続いているOUDプラグインです。このタイプのプラグインは、リクエストを受け取り、受け取ったリクエストのロギングまたは変更などの追加アクションを実行した後、そのリクエストを次のプラグインに転送できます。LDAP操作で応答が返されたときに、同様のアクションを実行できます。

プロセス・チェーンに後続のプラグインがないプラグインが、LDAPリクエストで操作されるエントリの格納を受け持ちます。格納はローカルでもリモートでも可能です。どちらの場合も、プラグインは受け取ったLDAPリクエストの結果の割当てを受け持ちます。

プロセス・チェーンで複数のプラグインが続いているプラグインが最も難しいケースです。このタイプのプラグインは、分散またはロード・バランシングを含む複雑なアーキテクチャにのみ使用されます。たとえば、このタイプのプラグインは専用プラグイン上のバインド・リクエストをルーティングしたり、他のプラグイン上の他のLDAP操作をルーティングするために使用される場合があります。

OUDプラグインAPIには、抽象クラスoracle.oud.plugin.AbstractPluginであるoracle.oud.plugin.ManagedPlugin Javaインタフェースのデフォルトの実装が提供されています。このクラスでは、受け取ったリクエストを処理チェーン内のその次のプラグインに転送する以外に何もアクションを実行しないプラグインの実装が提供されています。デフォルトの実装では、プラグインに少なくとも1つ後続プラグインがあることを前提としています。ただし、必要であれば適切なメソッドを上書きしてデフォルトの動作を変更できます。oracle.oud.plugin.AbstractPluginクラスから派生したプラグイン実装を作成する必要があります。これにより、実装されたJavaインタフェースが変更された場合の下位互換性が最適化されます。