日期:2014-05-18  浏览次数:20640 次

Java华丽转身 —— J2EE规范(一) JNDI Java Naming and Directory Interface

    Java命名和目录接口,是一组在Java应用中访问命名和目录服务的API。为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
 

         命名服务将名称和对象联系起来,可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称还有属性。

 

一、命名服务与目录服务

 

          命名服务:作为一种基础设施出现在众多的计算机系统,其意义在于提供根据名称关联对象和通过对象匹配相应的命名服务。命名服务允许你通过名称找到一个与之对应的对象。例如在Internet上的域名服务(domain namingservice,DNS)就是提供将域名映射到IP地址的命名服务,在打开网站时一般都是在浏览器中输入名字,通过DNS找到相应的IP地址,然后打开。

 

          目录服务:是一种特殊类型的数据库,与SQLServer、Access、Oracle等关系数据库管理系统相反,构造目录服务的目的是为了处理基于行为的事务,并且使用一种关系信息模型。

 

          目录服务将命名服务的概念进一步引申为提供具有层次结构的信息库,这一信息库除了包含一对一的关系外,还有信息的层次结构。对目录服务而言,这种层次结构通常用于优化搜索操作,并且也可以按实际情况进行分布或者跨网络复制。

       

          目录服务是命名服务,命名服务不需要是目录服务。

 

          命名和目录服务把标识符和资源关联起来。


 

  

二、JNDI架构


 

 

    JNDI架构与JDBI架构非常类似。JNDI架构提供了一组标准命名系统的API。在应用程序中,我们实际上只是用以上几个包的种类。具体调用类以及通信过程对用户来说是透明的。JNDI API提供了访问不同JNDI服务的一个标准的统一实现,其具体实现可由不同的Service Provider