Name Services in Distributed Systems

Names are not the only useful means, descriptive attributes can be used too. A client knowing just a few characteristics needs to be able to find a proper service provider.

Pure Names: uninterpreted bit patterns, always need to be lookup. e.g. Object’s address

Non-Pure Names: contain information about the location

Binding: Association between name and Object

URN, persistent link for content even if it is moved

URC, citation resources

Unification: resources managed by different services using the same naming scheme

Integration: Share resources created in different domains. It needs a common naming service.

General Name Service Requirements:

  • Handling all resources in the world: e.g. email address
  • A long lifetime
  • Hight availability
  • Fault isolation
  • Tolerance of mistrust

Multicasting Navigation: Client send request with name and required object and only the target server answers.

Directory and Discovery Services:

Directory Service: Store collections of binding between names and attributes

Discover Service: It is a Directory Service that registers services provided in spontaneous networks.

Scope: context for discovery, e.g. a wireless network at home

Multicast used to find the lookup server for later discovery, which can be tied to specific groups used when search for the lookup server.

Global Name Service (GNS):

  • large naming database, essential use of cache, renders extremely difficult to maintain consistency.
  • Stores <directory name, value name>
  • Organized as a directory tree.

X.500 Directory Service:

  • Satisfies descriptive queries, to discover names and attributes of other resources
  • Access information about “real-world entities”
  • Data organized in a tree, composed of named nodes which hold attributes
  • Name Tree (Directory Information Tree), all together => Directory Information Base.
  • Servers are called Directory Service Agents
  • clients are called Directory User Agents
  • DIB Entries are classified similar to Classes in OO-languages
  • A DIB Entry is determined selecting some attributes as Distinguished Names.
  • LDAP is a lightweight approach to X.500