介绍
这篇笔记将要讲述的是命名服务,命名服务用一句话说就是帮助客户端进行资源的定位通过给定他们的名字的方式,与命名服务十分类似的,这里还会提到目录服务,具体的说是可以通过属性查找,后面将会以DNS,GNS等为例子。
1、在这里说的名字是指与对应的对象进行了绑定的关系,而属性指的是对象与多个属性值进行了关联。在DNS中,IP地址与域名进行了绑定,在CORBA中,将对象的名字与对象的引用进行了映射绑定。
2、名字的表现形式可以有多种形式,统一资源标识符URI可以作为一个资源的唯一标示,URI的值可以是URL资源定位符或者是URN。URL的一个缺点是当所表示的资源已经被移除或者删除了之后,可能会无法打开或者是打开了一个占着此地址的错误的资源。
命名服务和DNS域名解析系统
1、一个命名服务往往包括许多个名字和属性的集合。
2、名字服务中的名字存储信息会随着网络的扩展而变得非常庞大,所以这里需要副本设置并且分开存储。
3、命名空间指的是某个特定组织内的设定的有效的名字格式,不同的分层级的名字空间代表着不同的上下文环境。
4、命名空间的定制和联合,不同的用户访问同一命名空间,但是会用不同的名字,这需要用户这边做一个名字的转换。
5、一个客户端发送名字查询请求到服务端,服务端有2种查找的方式,1种通过递归式的,自己如果没有匹配的条目,往更深的服务器查找,直到找到,最后从后往前返给客户端,还有1种是通过非递归式的,遍历一遍服务端,不行在遍历更深的一层服务。
6、在客户端请求完一次查询之后,会在本地缓存结果,下次查找就不需要请求服务器了,这样做可以大大提高效率。
7、DNS的域名空间有层级的划分,最顶级的域名包括com用于商业组织的,edu教育的,gov政府机构的,net,org等等。每个国家有自己的域名,中国的就是cn,美国的是us,英国的是uk,这些都是比较上层的域名空间。
8、在DNS中被用到频率比较的服务有:1、给定域名,返回IP地址2DNS保存了域名主机的基本信息包括操作系统,和机子结构的一些信息。
9、DNS系统中的数据至少会被备份2次在不同的服务器上。所以一台服务器的宕机不会导致服务的崩溃。
10、DNS的解析响应速度非常快的原因有3个因素:1、数据分区存储2、副本机制3、缓存机制。
11、DNS的缺点是他的刚性的设计,面对命名空间的改变,处理的不好,还有一个是无法符合定制化的命名空间的需求。
目录服务
目录服务刚好解决了DNS上面的太刚性的确定的。在目录服务中保存了名字的一堆的属性。当你需要查找一个资源的时候,你可以不用知道他的名字,通过给定属性就可以获取符合条件的列表。基于属性查找的方式就叫做目录服务。属性查找的方式相比于命名查找更具强大性,而且能够减少名字的直接暴露。
学习例子:GNS服务
GNS全名是The Global Name Service全局命名服务,用来解决资源定位,邮件定位和认证服务的。在GNS的设计中,名字数据会有自己的生存时间的。名字的数据是以树形的结构保存,不同的目录保存在不同的服务器上。
学习例子:X.500目录服务
X.500是一个将局部目录服务连接起来,构成全球分布式的目录协议系统。
1、里面的请求客户端叫做DUA目录用户代理,服务端叫做DSA,目录服务代理。
2、他也是树形结构的数据组织形式,名字树叫做DIT,里面的每个数据节点叫做DIB,DIB中存储着许多的数据的条目,就是一个些名字和属性的集合。
3、相比于X.500,我们接触的更多,听过更多的还是LDAP轻量级目录访问协议,现在也有开源的服务框架OpenLDAP用于实现此服务,提供了更加简洁,易于使用的API。
参考文献:<<Distributed Sysytems Concepts And Design>>原版第五版,author:George Coulouris,Jean
Dollimore, Tim Kindberg,Gordon Blair