95-702 Distributed Systems 1!Master of Information System Management 95-702 Distributed Systems Naming Sources: “Computer Networks” by Peterson and Davie and Sun Microsystems Java documentation.95-702 Distributed Systems 2!Master of Information System Management Name Services • User friendly name usually vary in length and are mnemonic. • Little in a user friendly name helps locate a host. • Addresses, by contrast, may have imbedded routing information. • Flat addresses (those not divisible into component parts) are the exception. • IP addresses have a network part and a host part. • IP addresses are used by routers. • But IP addresses are not user friendly. • A system is needed to map user friendly names to router friendly addresses.95-702 Distributed Systems 3!Master of Information System Management Terminology • A namespace defines a set of possible name. • In a flat namespace, names are not divisible into components. • In a hierarchical namespace, names are broken into components. E.g., Unix, DOS, URL’s, etc. • A naming system is a collection of bindings of names to values. These values are often addresses. • A resolution mechanism is a procedure that, when invoked with a name, returns a corresponding value. • A name server is a specific implementation of a resolution mechanism that is available on a network and can be queried by sending it a message.95-702 Distributed Systems 4!Master of Information System Management Example: Domain Name System client www.heinz.cmu.edu 198.12.78.608 Local Name Server Root Name Server CMU Name Server Heinz Name Server www.heinz.cmu.edu cmu’s IP www.heinz.cmu.edu Heinz’s IP www.heinz.cmu.edu 198.12.78.608 www.heinz.cmu.edu 198.12.78.608:8095-702 Distributed Systems 5!Master of Information System Management Naming Concepts • Very common problem: map people friendly names to objects. • Examples: [email protected] -> Mike’s mailbox www.cnn.com -> cnn’s web server c:\somedir\f1.dat -> a file on my C drive cn=Rosanna Lee, o=Sun, c=US -> info about Rosanna Notice the hierarchies in each case.95-702 Distributed Systems 6!Master of Information System Management Naming Conventions • Different naming systems use different conventions (or syntax) for names • Examples: DOS uses slashes and colons and periods c:\some\f.dat Unix uses slashes /usr/local/filename DNS uses dots www.cnn.com LDAP (The lightweight directory access protocol) uses name, value pairs cn=Rosanna Lee, o=Sun, c=US95-702 Distributed Systems 7!Master of Information System Management Context A context is a set of name-to-object bindings. Every context has an associated naming convention. A context may allow operations such as bind, unbind, lookup. A context may associate a name with another context (subcontext, or subdirectory).95-702 Distributed Systems 8!Master of Information System Management Directory Service • A Directory Service is an extension of a naming service that allows one to lookup objects based on names or based on attributes. • Attributes have attribute identifiers and a set of attribute values. • Quiz: What is the directory service often associated with web services? Answer: UDDI - Universal Description, Discovery and Integration95-702 Distributed Systems 9!Master of Information System Management Also called Reverse Lookup or Content-Based searching • Example queries to directory services: Find all machines whose IP address begins with 192.115.50. Find all companies that provide hardware support services.95-702 Distributed Systems 10!Master of Information System Management Directory Enabled Applications A directory-enabled application is an application that uses a naming or directory service. Applications can share the common infrastructure provided by the directory. Example: A mail client, scheduling systems and mail forwarding program might all use the same address book stored in a common directory. The directory may also be used as an object store for programs needing the same object.95-702 Distributed Systems 11!Master of Information System Management Java Naming and Directory Interface JNDI95-702 Distributed Systems 12!Master of Information System Management The Java Naming and Directory Interface (JNDI): • Is an abstraction API (just like JDBC is an abstraction API on RDBMS databases). • Handles or sits on top of different naming services. Java Application | JNDI API LDAP DNS rmiregistry Various Service Providers File System Pluggable architecture95-702 Distributed Systems 13!Master of Information System Management JNDI • The javax.naming packages contains mostly Java interfaces. • Some vendor implements the interface to provide JNDI support for their service. • To use the service, you need a JNDI service provider that implements the interface. • JDK1.4 comes with RMI, DNS, COS, and LDAP service providers. • Sun’s web site has an additional JNDI service provider that works with the local file system95-702 Distributed Systems 14!Master of Information System Management Namespaces are represented by the Context Interface • Different classes implement this interface differently depending on which naming service they are accessing. • Has methods to - bind and unbind objects to names - create and delete sub-contexts - lookup and list names • Since a Context is a Java object it can be registered in another Context with its own name.95-702 Distributed Systems 15!Master of Information System Management The Context Interface • Start from some “root” context. • Get the “root” from the InitialContext class • Two simple examples: LookUp.java ListCurrentDirectory.java95-702 Distributed Systems 16!Master of Information System Management LookUp.java // pre: download JNDI provider from Sun // add .jar files to classpath import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import java.util.Hashtable; import java.io.File;95-702 Distributed Systems 17!Master of Information System Management public class LookUp { public static void main(String args[]) throws NamingException { try { System.out.println("Using a file system (FS) provider"); // initialize the context with properties for provider // and current directory
View Full Document