WEB开发网
开发学院WEB开发Jsp java高级编程:基于JNDI的应用开发 阅读

java高级编程:基于JNDI的应用开发

 2008-01-05 19:17:47 来源:WEB开发网   
核心提示: 基于JNDI的应用开发 JNDI(The java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,java高级编程:基于JNDI的应用开发,使得我们可以用名称访问对象,目录服务是一种命名服务,作

   基于JNDI的应用开发

   JNDI(The java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

   命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更轻易治理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用。

   本文用代码示例的方式给出了一个快速教程,使你可以开始使用JNDI.它:

   l 提供了JNDI概述 l 描述了JNDI的特点 l 体验了一下用JNDI开发应用 l 表明了如何利用JNDI访问LDAP服务器,例如,Sun ONE 目录服务器 l 表明了如何利用JNDI访问J2EE服务 l 提供了示例代码,你可以将其改编为自己的应用

   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架构

   JNDI架构提供了一组标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分离,因此不管应用访问的是LDAP、RMI、DNS、还是其他的目录服务。换句话说,JNDI独立于目录服务的具体实现,只要你有目录的服务提供接口(或驱动),你就可以使用目录。如图1所示。 图1:JNDI架构

   关于JNDI要注重的重要一点是,它提供了应用编程接口(application programming interface,API)和服务提供者接口(service provider interface,SPI)。这一点的真正含义是,要让你的应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI SPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口?很象JDBC驱动为各种具体的数据库系统实现了JDBC接口一样。作为一个应用开发者,你不必操心JNDI SPI.你只需要确认你要使用的每一个命名或目录服务都有服务提供者。

   J2SE和JNDI

   Java 2 SDK 1.3及以上的版本包含了JNDI.对于JDK 1.1和1.2也有一个标准的扩展。Java 2 SDK 1.4.x的最新版本包括了几个增强和下面的命名/目录服务提供者:

   l LDAP(Lightweight Directory Access Protocol)服务提供者 l CORBA COS(Common Object Request Broker Architecture Common Object Services)命名服务提供者 l RMI(Java Remote Method Invocation)注册服务提供者 l DNS(Domain Name System)服务提供者


Tags:java 高级 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接