Naming System
Components
Naming mechanism
To assign character names to be assigned to these objects
Locating mechanism
For mapping the objects name to the objects location in the distributed system
Functions
Location transparency Migration transparency Replication of objects Object sharing Multiple names for objects
Features of a Good Naming Systems
Location Transparency Location Independency
Name of the object need not be changed on Location change
Scalability
Any changes in the system scale should not require any change in naming mechanisms
Uniform naming convention
File names, process names, user names
Meaningful names
Allow multiple user-defined names for same object Group Naming Performance Fault Tolerance Replication transparency
Locating nearest replica
Locating all replicas
Basic Concepts
Name
Name :- is a logical object that binds to a physical object from among a set of physical objects eg: test, 2answer, #asd
Human oriented names
Also known as high-level names A set of characters that is meaningful to users Should have flexibility to give multiple names to same object Should be location independent
System oriented names
Also known as unique identifiers or low-level names Are bit patterns of fixed size which can be automatically generated for each object when the object is created
Mapping of Human oriented names to System oriented names
Namespace and contexts
Namespace :The set of names within a distributed system complying with the naming convention
Name space
Flat name space
Names are character strings No structure
Partitioned name space
Name structure represents physical association
Partitioned name space is partitioned to different levels. Each of the partitions is called a domain of the name space Names can be
Simple names Compound names Eg: sample.doc Eg: /usr/temp/xdev
Number of levels can be fixed or variable Eg. for fixed-level namespace
Grapevine system, Xerox clearinghouse(a distributed directory service), Internet Domain Namespace, Universal Directory Service
Hierarchical namespace is an example of compound names The names defined in this namespace are called hierarchical names
Hierarchical namespace
Context
A context is an environment within which a name is valid A context/name pair forms a qualified name that identifies an object uniquely In a partitioned name space, each domain is a context in which those names are valid
Basic features of a context
Names in a context can be generated regardless of what names exist in other contexts The same name can occur in more than one context Contexts can be nested where a qualified name consists of identifying a context and subsequent sub-contexts within it Eg: /usr/temp/alias/xdev.sh
Ways Of Naming Objects
Distinguished names While every name is unambiguous, distinguished names (DNs) are also unique, each object having precisely one.
The distinguished name of an object, is a sequence of RDNs (realtive distinguished names) of the object's entry and all of its superiors, starting from the root. Because the naming data base is arranged as a tree, there is a unique path from the root to the object's entry
Alias/ abbreviations Like a distinguished name (DN), alias is a path through the IT from the root to the object's entry. However, unlike the DN, an alias name involves one or more alias entries
An absolute name begins at the root context of the name space tree and follows a path down to the specified object, giving the context names on the path. A relative name defines a path from the current context to the specified object. It is called a relative name because it is "relative to (start from) the user's current context.
Accessing namespace using current context
Object naming in Hierarchical namespace
The user can specify the name of an object in any one of the following ways: Using absolute name Using a relative name Changing the current context and then using a relative name
Generic names/ Group or multicast names
generic name :- a name is mapped to any one of the set of objects to which it is bound. This type of facility is useful in situations such as when a user wants a request to be serviced by any of the servers capable of servicing that request and the user is not concerned with which server services his or her request. multicast name :- A name is mapped to all the objects to which it is bound. Useful for broadcasting and multicasting
Descriptive/ Attribute based names
Allows an object to be named with a set of attributes An attribute has a type and a value Eg for attributes
User : sunita Date created:20/12/2012 Language : C
Source routing name
A namespace may be of the same structure as the physical network Such namespaces define Source routing names to identify a path through the network in a distributed system Route is specified at the source computer
Name server
A name server is a process that maintains information about named objects and provides facilities that enable users to access that information. It acts to bind an object's name to some of its properties, including the object's location. Each name server normally has information about only a small subset of the set of objects in the distributed system. The name servers that store the information about an object are called the authoritative name servers of that object.
Name server
The authoritative name server of the root domain knows the locations of the authoritative name servers of the domains that branch out from the root domain
Name Agent
Interface between the name servers and clients
Private name agent
A private name agent works for a single client and is structured as a set of subroutines linked to a client program.
Shared name agent
A shared name agent is structured as a part of the operating system kernel with system calls to invoke the naming service operations or which can be accessed via IPC primitives.
Name resolution
Name resolution is the process of mapping an object's name to the object's properties, such as its location. Client contacts the name agent. Name agent contacts the known name server to locate the object If object is not located then this known name server contacts the other name servers
Since an object's properties are stored and maintained by the authoritative name servers of that object, name resolution is basically the process of mapping an object's name to the authoritative name servers of that object. Once an authoritative name server of the object has been located, operations can be invoked to read or update the object's properties. Each name agent in a distributed system knows about at least one name server apriori.
Name resolution in a partitioned namespace