【问题标题】:JNDI: Naming Service vs Directory ServiceJNDI:命名服务与目录服务
【发布时间】:2012-02-06 14:49:13
【问题描述】:

就 Java/JNDI 术语而言,“目录服务”只是“命名服务”的更复杂版本吗?

如果你阅读JNDI glossary,它基本上将这两个定义如下:

  • naming service - 一个允许您在不同的上下文上执行操作的 API
  • context - 听起来很像HashMap
  • directory service - 允许您对 目录对象 执行操作的 API
  • directory object - 目录中的对象....(?!?!)

所以,除非我弄错了,听起来这两种类型的服务都允许对不同类型的对象进行类似 CRUD 的操作,contexts(在命名服务的情况下)或 directory objects(在命名服务的情况下)目录服务)。

所以我的问题是:有什么区别?!?这两种上下文/目录对象类型不都只是底层的哈希图/哈希表吗?

我对这些差异感到窒息,因为我试图了解什么时候是命名服务,什么时候是目录服务,而这些定义对我来说很难衡量。

【问题讨论】:

标签: java jndi directoryservices


【解决方案1】:

这两种上下文/目录对象类型不都只是 底层的哈希图/哈希表?

不,它们几乎可以肯定是底层的数据库表,并且它们具有哈希映射/哈希表所没有的各种语义,例如属性列表、创建子上下文的能力等。

【讨论】:

  • 感谢 EJP,但是他们的区别是什么?!如果它们都是数据库表(而不是哈希图),那很好,但是为什么要区分两者呢?这是我问题的根源。
  • @AdamTannon 命名服务是一个服务器,例如LDAP 或 RMI 注册表。上下文是命名服务中的对象。目录服务是一种目录结构的命名服务。目录对象是一个目录结构的上下文,即一个 DirContext。 RMI 注册表不是目录服务,它没有目录上下文。 LDAP 是,而且确实如此。
  • 谢谢 EJP - 最后一个问题(我不想在这里变得困难,我只是在这里遗漏了一些基本原则):那么“目录结构服务”和“服务”;在“目录结构的上下文”和“上下文”之间?仅仅是“目录”意味着对象/上下文可以具有与其相关联的其他值/属性(除了它的名称)吗?
  • @Adam Tannon 'Directory' 暗示层次结构和属性。例如,DirContext 有子上下文和属性;上下文没有。
【解决方案2】:

我认为在此首字母缩略词中引用目录服务只是为了回忆首字母缩略词中带有 directory 的命名服务,例如 LDAP。

LDAP、DNS等都是命名服务,因为目录服务命名服务是同义词。

来自wikipedia

在软件工程中,目录是名称和值之间的映射。

请注意,在维基百科中,Name Service 会重定向到同一篇文章。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多