JNDI と Java でのその使用
この記事では、JNDI (Java Naming and Directory Interface
) とは何か、その主な用途、およびいつ使用されるかについて説明します。 また、Java での JNDI
の長所と短所を比較します。
Java の Java Naming and Directory Interface (JNDI
)
Java プログラムは、アプリケーション プログラミング インターフェイス (API) である JNDI
の名前とディレクトリの機能を使用できます。
分散システムで利用することができます。つまり、システムに多数のサーバーがある場合でも、すべてのサーバーで情報を共有できます。
- たとえば、
JNDI
ディレクトリを使用して、アプリケーション サーバーの IP アドレスなどの構成データを保存すると、アプリはこの情報を取得できます。 JNDI
は、ディレクトリ サービスの実装から独立して動作することを意図しています。 その結果、ユーザーは、新しいディレクトリ、開発中のディレクトリ、実装済みのディレクトリなど、さまざまなディレクトリにアクセスできます。
Java での JNDI
の使用
JNDI
を使用すると、オブジェクト、デバイス、名前のファイル、ディレクトリ サービスなど、さまざまな種類のデータにアクセスできます。 たとえば、EJB
はこれを使用してリモート オブジェクトを検索します。
JNDI
は、DNS
、NDS
、LDAP
、CORBA
、RMI
などの既存のサービスへの標準化されたエントリ ポイントを提供するために開発されました。
したがって、JNDI
を利用するには、JNDI
クラスと 1つ以上のサービス プロバイダが必要です。 Java 2 SDK は、次に示すネーム サービスとディレクトリ サービスに対して 3つの異なるサービス プロバイダを提供します。
- ライトウェイト ディレクトリ アクセス プロトコル (
LDAP
) - Common Object Request Broker Architecture (
CORBA
) Common Object Services (COS
) ネーム サービス - Java Remote Method Invocation (
RMI
) レジストリ
したがって、最初にオブジェクトを作成してからディレクトリ サービスに登録し、後で検索して操作を実行できるようにします。
Java での JNDI
の長所と短所
以下は、JNDI
が提供する利点の一部です。
- アプリケーションが
devl->int->test->prod
環境から移行するデプロイメント シーケンスを使用する場合、各環境で同じJNDI
名を使用して、実際に使用されるデータベースを隠すことができます。 - アプリケーションを環境間で移行する場合、変更を加える必要はありません。
- 読み取り操作や名前空間の変更操作などのネーミング アクティビティは、
JNDI
を使用して実行できます。 - 本番環境でデータベースへのアクセスを必要とする人数を最小限に抑えることができます。
JNDI
の使用法は、Java EE アプリケーション サーバー以外には隠されている可能性があります。 - リソースが
JNDI
ディレクトリにリストされている限り、コードは単一のコンピューターまたは分散環境でリソースにアクセスできます。 - 強力でポータブルな新しいアプリを作成できます。 また、Java のオブジェクト モデルを使用しており、それらが配置されている環境とうまく接続されています。
欠点の 1つを以下に示します。
- 欠点の 1つは、デフォルトのセキュリティ モデルがないことです。 ただし、一部の実装では、ディレクトリ サービスへの暗号化された接続を確立するための
API
が提供されています。
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn