JNDI

JNDI

電子技術
JNDI(Java Naming and Directory Interface,Java命名和目錄接口)是一組在Java應用中訪問命名和目錄服務的API。命名服務将名稱和對象聯系起來,使得我們可以用名稱訪問對象。目錄服務是一種命名服務,在這種服務裡,對象不但有名稱,還有屬性。[1]
    軟件名稱:Java命名和目錄接口 軟件平台: 軟件語言:Java 開發商:SUN 軟件授權: 軟件版本: 軟件大小: 屬性:API 簡稱:JNDI

用途

命名或目錄服務使用戶可以集中存儲共有信息,這一點在網絡應用中是重要的,因為這使得這樣的應用更協調、更容易管理。例如,可以将打印機設置存儲在目錄服務中,以便被與打印機有關的應用使用。

我們大家每天都不知不覺地使用了命名服務。例如,當在web浏覽器輸入URL,http://java.sun.com時,DNS(Domain Name System,域名系統)将這個符号URL名轉換成通訊标識(IP地址)。命名系統中的對象可以是DNS記錄中的名稱、應用服務器中的EJB組件(Enterprise JavaBeans Component)、LDAP(Lightweight Directory Access Protocol)中的用戶Profile。

目錄服務是命名服務的自然擴展。兩者之間的關鍵差别是目錄服務中對象可以有屬性(例如,用戶有email地址),而命名服務中對象沒有屬性。因此,在目錄服務中,你可以根據屬性搜索對象。JNDI允許你訪問文件系統中的文件,定位遠程RMI注冊的對象,訪問象LDAP這樣的目錄服務,定位網絡上的EJB組件。

對于象LDAP客戶端、應用launcher、類浏覽器、網絡管理實用程序,甚至地址薄這樣的應用來說,JNDI是一個很好的選擇。

JNDI可訪問的現有的目錄及服務有:

DNS、XNam、Novell目錄服務、LDAP(Lightweight Directory Access Protocol輕型目錄訪問協議)、CORBA對象服務、文件系統、Windows XP/2000/NT/Me/9x的注冊表、RMI、DSML v1&v2、NIS。

架構

JNDI架構提供了一組标準的獨立于命名系統的API,這些API構建在與命名系統有關的驅動之上。這一層有助于将應用與實際數據源分離,因此不管應用訪問的是LDAP、RMI、DNS、還是其他的目錄服務。換句話說,JNDI獨立于目錄服務的具體實現,隻要有目錄的服務提供接口(或驅動),就可以使用目錄。

關于JNDI要注意的重要一點是,它提供了應用編程接口(application programming interface,API)和服務提供者接口(service provider interface,SPI)。這一點的真正含義是,要讓應用與命名服務或目錄服務交互,必須有這個服務的JNDI服務提供者,這正是JNDI SPI發揮作用的地方。服務提供者基本上是一組類,這些類為各種具體的命名和目錄服務實現了JNDI接口—很象JDBC驅動為各種具體的數據庫系統實現了JDBC接口一樣。作為一個應用開發者,不必操心JNDI SPI。隻需要确認要使用的每一個命名或目錄服務都有服務提供者。

組件

1、Javax.naming:包含了訪問命名服務的類和接口。例如,它定義了Context接口,這是命名服務執行查詢的入口。

2、javax.naming.directory:對命名包的擴充,提供了訪問目錄服務的類和接口。例如,它為屬性增加了新的類,提供了表示目錄上下文的DirContext接口,定義了檢查和更新目錄對象的屬性的方法。

3、javax.naming.event:提供了對訪問命名和目錄服務時的時間通知的支持。例如,定義了NamingEvent類,這個類用來表示命名/目錄服務産生的事件,定義了偵聽NamingEvents的NamingListener接口。

4、javax.naming.ldap:這個包提供了對LDAP版本3擴充的操作和控制的支持,通用包javax.naming.directory沒有包含這些操作和控制。

5、javax.naming.spi:這個包提供了一個方法,通過javax.naming和有關包動态增加對訪問命名和目錄服務的支持。這個包是為有興趣創建服務提供者的開發者提供的。

優點

包含了大量的命名和目錄服務,使用通用接口來訪問不同種類的服務;

可以同時連接到多個命名或目錄服務上;

建立起邏輯關聯,允許把名稱同Java對象或資源關聯起來,而不必指導對象或資源的物理ID。

服務提供者

Java 2 SDK1.3及以上的版本包含了JNDI。對于JDK 1.1和1.2也有一個标準的擴展。Java 2 SDK 1.4.x的最新版本包括了幾個增強和下面的命名/目錄服務提供者:

1、LDAP(Lightweight Directory Access Protocol)服務提供者

2、CORBA COS(Common Object Request Broker Architecture Common Object Services)命名服務提供者

3、RMI(Java Remote Method Invocation)注冊服務提供者

4、DNS(Domain Name System)服務提供者

上一篇:QQ拼音輸入法

下一篇:TRADOS

相關詞條

相關搜索

其它詞條