Java Naming and Directory Interfaceとは? わかりやすく解説

Weblio 辞書 > 固有名詞の種類 > 製品 > コンピュータ > ソフトウェア > Java enterprise platform > Java Naming and Directory Interfaceの意味・解説 

Java Naming and Directory Interface

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/30 01:20 UTC 版)

Java Naming and Directory InterfaceJNDI)は、ディレクトリ・サービスが提供するデータやオブジェクトを名前で発見 (discover) し、参照 (lookup) するのためのAPIである。他の全てのJava APIと同様、JNDIは他システムに対するインターフェースであり、具体的な実装からは独立している。またJNDIにはサービスプロバイダインタフェース (SPI) が規定されており、フレームワークにディレクトリ・サービスの実装をプラグインすることができる。ディレクトリ・サービスの実装はサーバでもフラットファイルでもデータベースでもよく、サービスの提供側が任意に選択できる。

背景

Java RMIJakarta EEは、ネットワーク上のオブジェクトを参照するためにJNDI APIを使用している。Jiniは独自のルックアップサービスを持っており、JNDIは使用していない。

JNDI APIには以下のものが含まれる。

  • 名前とオブジェクトを結びつける機構
  • 多様な照会方法に対応する階層構造の参照インターフェース
  • 要素がいつ更新されたかをクライアントに通知するイベントインターフェース
  • LDAPの追加要件に対応するLDAP拡張

SPIにより、以下のようなあらゆるネーミング・サービスやディレクトリ・サービスに対応している。

JNDIの仕様は、サン・マイクロシステムズ1997年3月10日に公開した[1]。現在の最新バージョンは1.2で、J2SE 1.3以降のJava SEに統合されている。

ルックアップの基本

JNDIは名前を階層構造で管理している。名前はどのような文字列でもよい(例:"com.mydomain.ejb.MyBean")。Nameインターフェースを実装したオブジェクトを名前にすることも可能だが、文字列を使用する方が一般的である。ある名前に対応するオブジェクト、あるいはオブジェクトへの参照を、名前と一緒にディレクトリ・サービスに格納 (bind) することで、名前とオブジェクトが関連付けられる。

JNDI APIはオブジェクトを探す場所(これをコンテクストという)の指定方法も規定している。

典型的なルックアップ処理では、まず最初に初期コンテクストを取得する。もっとも単純なケースで言うと、特定の実装を用いて、その実装が要求するパラメータを指定して、初期コンテクストを生成する。初期コンテクストはディレクトリツリーやファイルシステムにおけるルートディレクトリのようなもので、初期コンテクストに対して名前のルックアップを行う。以下は、初期コンテクスト生成の例である。

Hashtable contextArgs = new Hashtable<String, String>();
// 最初にコンテクストファクトリーを指定する。
// JBossの実装やSunの実装、あるいは全く別のベンダーの実装などの中から
// どれを選ぶかという動作に相当する。
contextArgs.put( Context.INITIAL_CONTEXT_FACTORY, "com.jndiprovider.TheirContextFactory" );

 // 次に、データ保存場所のURLを指定する。
contextArgs.put( Context.PROVIDER_URL, "jndiprovider-database" ); 

// (ここでなんらかの認証が必要な場合もある。)

 // 次に、初期コンテクストを生成する。
Context myCurrentContext = new InitialContext(contextArgs);

いったん初期コンテクストが取得できると、それに対して名前と結び付けられたオブジェクトをルックアップできる。

MyBean myBean = (MyBean)  myCurrentContext.lookup("com.mydomain.MyBean");

上のコードに対する別法を次に示す:

Context オブジェクトは、初期コンテクスト・ファクトリー・クラス名とプロバイダURLを書いた jndi.properties ファイルをクラスパス内に追加することによって設定することもできる。すると、上記のコードは下記のように短くできる:

//初期コンテキストを作るだけでよい。これでクラスパスからjndi.properties ファイルを読みにいこうとする。
Context myCurrentContext = new InitialContext();

それから、コンテキストを使って、そのコンテキストで事前に紐づけられた名前を探す。たとえば:

MyBean myBean = (MyBean)  myCurrentContext.lookup("com.mydomain.MyBean");

検索

「ディレクトリ」とよばれる特殊なエントリには、属性を付与することができる。ディレクトリでは、属性を指定してオブジェクトを検索できる。ディレクトリはコンテクストの一種であるが、その名前空間は、ファイルシステム内のディレクトリ構造のようにある程度限定されている。

外部リンク


「Java Naming and Directory Interface」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Java Naming and Directory Interfaceのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Java Naming and Directory Interfaceのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのJava Naming and Directory Interface (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS