在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 容器内工作