Welcome 微信登录

首页 / 软件开发 / JAVA / 在Apache目录服务器中存储Java对象,第1部分 - 深入Apache目录服务器

在Apache目录服务器中存储Java对象,第1部分 - 深入Apache目录服务器2011-08-13 IBM Bilal Siddiqui简介:这个两部分的系列介绍了在 Apache 目录服务器(ApacheDS)中保存 Java™ 对象的步骤 。在第 1 部分中,作者 Bilal Siddiqui 介绍了 ApacheDS,并提供了 ApacheDS 核心架构的概述。因为 主要把 ApacheDS 用作保存 Java 对象的 LDAP 服务器,所以 Bilal 提供了对 LDAP 概念和术语的快速 概述。他还介绍了如何用 JXplorer 查看 LDAP 模式组件,例如属性类型和对象类,还介绍了如何在 ApacheDS 中输入数据对象。文章末尾概述了 Java 对象的序列化和远程方法调用,并用它们把 Java 对 象保存在 ApacheDS 中,为 第 2 部分中 实践性更强的方法做好准备。

Apache 目录服务器是众多的 Internet 协议中的一个开放源码的、基于 Java 的实现。ApacheDS 的 核心是目录服务,可以保存数据,并对不同类型的数据进行搜索操作。协议的实现在目录服务器顶层工作 ,提供与数据存储、搜索和检索有关的 Internet 服务。

ApacheDS 最重要的特性可能是利用不同 协议公开目录服务的能力。这意味着可以把应用程序的数据(包括运行时的 Java 对象)保存在 ApacheDS 中,而不同的客户机可以使用不同的协议来利用数据。由 ApacheDS 实现的最重要的协议是轻 量级目录访问协议(LDAP)。ApacheDS 充当 LDAP 服务器,侦听请求,与内部核心目录服务协调,响应 LDAP 请求。

在这个两部分的系列中,我将介绍核心的 ApacheDS 架构,并介绍在 ApacheDS 中保 存运行时 Java 对象的全部步骤。因为我对 ApacheDS 的关注几乎全在它作为 LDAP 服务器实现上,所以 本系列的第 1 部分主要介绍 LDAP 功能和术语。但在进入这部分之前,我要介绍 ApacheDS 模块化的可 扩展架构,并解释如何用它把新的协议实现和 Internet 服务插入 ApacheDS。对 ApacheDS 核心目录服 务工作方式的理解,有助于后面理解它提供 LDAP 功能的方式。

要跟上这篇文章的讨论,需要 下 载并安装 ApacheDS 和 JXplorer。可能还要下载 完整源代码 供文章使用。

ApacheDS 中的目录 服务

目录服务 是保存和组织数据的应用程序。目录服务处理不需要频繁更新的数据,例如系统用 户的个人数据(例如姓名、地址、电话号码)或者车间的生产能力(例如安装的设备的数量、型号和生产 能力)。在本系列的第 2 部分中,将介绍一个整合了这两种类型数据的示例应用程序。现在,我把重点 放在 ApacheDS 提供目录服务的方式上。

ApacheDS 实现 JNDI

在图 1 中可以看到, ApacheDS 为自己的核心目录服务实现了 Java 名称和目录接口(JNDI)包装器。JNDI 是 Java 接口,定 义了执行目录操作的方法,例如在目录中保存数据和搜索保存的数据。JNDI 是 Java 2 企业版(J2EE) 和 Java 2 标准版(J2SE)的组成部分。其中 J2SE 只包含客户端 JNDI 支持,而 J2EE 容器通常包含服 务器端 JNDI 实现。J2EE 容器可以通过 ApacheDS 的 JNDI 包装器利用它的目录服务,如图 1 所示:

图 1. ApacheDS 在 J2EE 容器内工作