4.
Naming Service <ul><li>Allows you to look up names </li></ul><ul><ul><li>Often returns an address as a response </li></ul></ul><ul><li>Might be implemented as </li></ul><ul><ul><li>Search through file </li></ul></ul><ul><ul><li>Client-server program </li></ul></ul><ul><ul><li>Database query </li></ul></ul><ul><ul><li>… </li></ul></ul>

5.
What’s a name? <ul><li>Name : identifies what you want </li></ul><ul><li>Address : identifies where it is </li></ul><ul><li>Route : identifies how to get there </li></ul><ul><li>Binding : associates a name with an address </li></ul><ul><ul><li>“ choose a lower-level-implementation for a higher-level semantic construct” </li></ul></ul>RFC 1498: Inter-network Naming, addresses, routing

6.
Names <ul><li>Need names for: </li></ul><ul><ul><li>Services : e.g., time of day </li></ul></ul><ul><ul><li>Nodes : computer that can run services </li></ul></ul><ul><ul><li>Paths : route </li></ul></ul><ul><ul><li>Objects within service : e.g. files on a file server </li></ul></ul><ul><li>Naming convention can take any format </li></ul><ul><ul><li>Ideally one that will suit application and user </li></ul></ul><ul><ul><li>E.g., human readable names for humans, binary identifiers for machines </li></ul></ul>

7.
Uniqueness of names <ul><li>Easy on a small scale </li></ul><ul><li>Problematic on a large scale </li></ul><ul><li>Hierarchy allows uniqueness to be maintained </li></ul><ul><ul><li>compound name : set of atomic names connected with a name separator </li></ul></ul>

8.
Terms: Naming convention <ul><li>Naming system determines syntax for a name </li></ul><ul><ul><li>Unix file names: </li></ul></ul><ul><ul><ul><li>Parse components from left to right separated by / /home/paul/src/gps/gui.c </li></ul></ul></ul><ul><ul><li>Internet domain names: </li></ul></ul><ul><ul><ul><li>Ordered right to left and delimited by . www.cs.rutgers.edu </li></ul></ul></ul><ul><ul><li>LDAP names </li></ul></ul><ul><ul><ul><li>Attribute/value pairs ordered right to left, delimited by , cn=Paul Krzyzanowski, o=Rutgers, c=US </li></ul></ul></ul>

9.
Terms: Context <ul><ul><li>A particular set of name  object bindings </li></ul></ul><ul><ul><li>Each context has an associated naming convention </li></ul></ul><ul><ul><li>A name is always interpreted relative to some context </li></ul></ul><ul><ul><ul><li>E.g., directory /usr in the UNIX file system </li></ul></ul></ul>

10.
Terms: Naming System <ul><li>Connected set of contexts of the same type (same naming convention) along with a common set of operations </li></ul><ul><li>For example: </li></ul><ul><ul><li>System that implements DNS </li></ul></ul><ul><ul><li>System that implements LDAP </li></ul></ul>

11.
Terms: Name space <ul><li>Set of names in the naming system </li></ul><ul><li>For example, </li></ul><ul><ul><li>Names of all files and directories in a UNIX file system </li></ul></ul>

13.
Directory Service <ul><li>Extension of naming service: </li></ul><ul><ul><li>Associates names with objects </li></ul></ul><ul><ul><li>Allows objects to have attributes </li></ul></ul><ul><ul><li>Can search based on attributes </li></ul></ul><ul><li>For example, </li></ul><ul><ul><li>Netscape directory: general-purpose directory service based on LDAP </li></ul></ul><ul><ul><li>Directory can be object store: </li></ul></ul><ul><ul><ul><li>Look up printer object and send data stream to it </li></ul></ul></ul>

14.
Name resolution <ul><li>To send data to a service: </li></ul><ul><ul><li>1. Find a node on which the service resides (service name resolution) </li></ul></ul><ul><ul><li>2. Find an address (or network attachment point) for that node (node name location) </li></ul></ul><ul><ul><li>3. Find a path from this location to the service (routing service) </li></ul></ul>

16.
Binding <ul><li>The association of a resolution </li></ul><ul><li>Static binding </li></ul><ul><ul><li>Hard-coded </li></ul></ul><ul><li>Early binding </li></ul><ul><ul><li>Look up binding before use </li></ul></ul><ul><ul><li>Cache previously used binding </li></ul></ul><ul><li>Late binding </li></ul><ul><ul><li>Look up just before use </li></ul></ul>