java naming and directory interface n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Java Naming and Directory Interface PowerPoint Presentation
Download Presentation
Java Naming and Directory Interface

Loading in 2 Seconds...

play fullscreen
1 / 32

Java Naming and Directory Interface - PowerPoint PPT Presentation


  • 191 Views
  • Uploaded on

Java Naming and Directory Interface . JNDI. Topics. Naming and Directory Services JNDI Overview Features and Code Samples JNDI Providers References. Naming Service. Associate names with objects (bind) Retrieve objects by their name (lookup) Examples: RMI Registry

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Java Naming and Directory Interface


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. Java Naming and Directory Interface JNDI

    2. Topics • Naming and Directory Services • JNDI Overview • Features and Code Samples • JNDI Providers • References JNDI

    3. Naming Service • Associate names with objects (bind) • Retrieve objects by their name (lookup) • Examples: • RMI Registry • CORBA Naming Service (COSNaming) • Domain Name Service (DNS) • File system JNDI

    4. Contexts • Contains a set of bindings and lookup operations • Has its own naming convention • Examples • File system directory: “/” • DNS domain: “edu” • LDAP: “c=us” JNDI

    5. Names • Logical identifier assigned to an object • Naming convention defined by Naming System • Examples • /dir/dir2/file for UNIX • drive:\dir\string for DOS • cn=dan, o=ISP for LDAP • www.cise.ufl.edu for DNS JNDI

    6. Names (Cont) • Atomic Name • name used in a binding • Ex. filename in a directory • Compound Name • sequence of atomic names • /usr/bin/ls JNDI

    7. Names (Cont) • Composite Name • applies multiple naming systems • http://www.apl.jhu.edu/~weimer/ • URL scheme id: http • DNS: www.apl.jhu.edu • UNIX and webserver: /usr/weimer/public_html JNDI

    8. Directory Service • Can obtain an object with attributes and search for objects based on attributes • Current Directory Systems • X.500 - ISO standard. Complex. • LDAP - Simplified X.500 over TCP/IP • NDS - Novell Directory Services. • NIS - Directory service for Solaris JNDI

    9. Attributes • Common LDAP Attributes c = Country o = Organization ou = Organizational Unit cn = Common Name (typically first or full name) sn = User’s surname JNDI

    10. Naming and Directory Targets • Resources • printers • machines • Users • Java Objects ! JNDI

    11. Naming Vs. Directory • Naming Services simply assign logical names to addresses or objects • localhost => 127.0.0.1 • white pages • Directory Services add attributes and attribute-based searching • find all hosts that are Sparc Solaris and have available disk space • yellow pages JNDI

    12. JNDI Goals • Provide a consistent API to access different naming and directory services. • Clients learn one API. • Different naming and directory systems can be combined into one logical system • New naming service implementations can be added with no client modifications JNDI

    13. JNDI Architecture Overview Java Client Application JNDI API JNDI Naming Manager JNDI Service Provider Interface DNS RMI LDAP CORBA Anything JNDI

    14. JNDI Architecture • Application Programming Interface (API) • API for client programmer • Unifying interface • Service Provider Interface (SPI) • For vendors enabling JNDI access to their naming/directory service JNDI

    15. JNDI API • Included in Java 2 SDK v 1.3 • Have to download for JDK 1.1 and SDK 1.2 • Packages • javax.naming • javax.naming.directory • javax.naming.event • javax.naming.ldap • javax.naming.spi JNDI

    16. Service Providers • Implementation for underlying products • Included in Java 2 SDK 1.3 • LDAP • COSNaming • JNDI over RMI Registry • Have to download for previous versions • http://java.sun.com/products/jndi/ JNDI

    17. Common JNDI Tasks • Obtain reference to initial context • Context Operations • List children of a context • Bind names to objects • Lookup objects via name • Create/destroy contexts • Note: NamingException can be thrown from most Context operations JNDI

    18. JNDI Contexts JNDI

    19. Obtain Initial Context import javax.naming.*; java.util.Properties props = new java.util.Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.jndi.fscontext.RefFSContextFactory”); props.put(Context.PROVIDER_URL, “file:///”); Context initContext = new InitialContext( props ); JNDI

    20. Initial Context • Starting point in the namespace • All operations performed are relative to the initial context • Specify service provider with property props.put(Context.INITIAL_CONTEXT_FACTORY”, “com.sun.jndi.fscontext.RefFSContextFactory” ); JNDI

    21. Initial Context (Cont) • Specify provider-specific properties • LDAP props.put(Context.PROVIDER_URL, “ldap://host:port”); props.put(Context.SECURITY_PRINCIPAL, “user” ); props.put(Context.SECURITY_CREDENTIALS, “password”); • File System props.put(Context.PROVIDER_URL, “file://tmp/”); • Create InitialContext initContext = new InitialContext( props ); JNDI

    22. List children NamingEnumeration children = initContext.list(“”); while( children.hasMore() ) { NameClassPair nc = (NameClassPair) children.next(); System.out.println(nc.getName()); System.out.println(nc.getClassName()); } • list() returns a NamingEnumeration of NameClassPair objects • listBindings() returns a NamingEnumeration of Binding objects JNDI

    23. Binding Names to an Object • Bind name to object within a context File f = new File(“/tmp/dan”); tmpDirContext.bind(“dan”, f ); • NameAlreadyBoundException occurs if “dan” is already bound in the tmp context • Can use unbind() or rebind() JNDI

    24. Object Lookup • Lookup object in a context • String name; Object o = initContext.lookup(name); • name can be compound • “/usr/tmp/dir/myfile” • Filesystem provider returns • File for files JNDI

    25. Attributes • DirContext contains an object with attributes for each contained binding • Common LDAP Attributes c = Country o = Organization ou = Organizational Unit cn = Common Name (typically first or full name) sn = User’s surname JNDI

    26. Basic Search • Specify a set of attributes that an entry must have. • Specify required attribute values • Specify attributes to return search(String name, Attributes match, String[] retAttrIds ) • Returns NamingEnumeration of SearchResults JNDI

    27. Storing objects • Object Types to store • Java Serializable Object • Referenceable Java Object • Remote Objects like RMI and CORBA objects JNDI

    28. Federation • Composite names span multiple namespaces • ou=People/tmp/myFile • File f = (File) ctx.lookup(“ou=People/tmp/myFile”); • lookup on this name will traverse through LDAP and the Filesystem provider to retrieve the file JNDI

    29. JNDI Providers • LDAP • com.novell.naming.service.nds.NdsInitialContextFactory • NIS • com.sun.jndi.nis.NISCtxFactory • RMI • com.sun.jndi.rmi.registry.RegistryContextFactory • COSNaming ( CORBA Naming System ) • Files • com.sun.jndi.fscontext.[Ref]FSContextFactory JNDI

    30. Setup Requirement • For 1.3, essentially nothing. JNDI should be included in the distribution along with the 3 providers • For Java 2 SDK version 1.2 • jndi.jar in $JAVA_HOME/jre/lib/ext • For jdk 1.1 • Add jndi.jar to the CLASSPATH JNDI

    31. Summary • Provide a consistent API to access different naming and directory services. • Clients learn one API. • Different naming and directory systems can be combined into one logical system • New naming service implementations can be added with no client modifications JNDI

    32. Resources • JNDI API Tutorial and Reference, Rosanna Lee and Scott Seligman. Addison Wesley, 2000 • Main JNDI Page • http://java.sun.com/products/jndi/ • Java Lecture Source • http://www.apl.jhu.edu/~jcstaff/ejava/ejava_whatsnew_f00.htm • Java Online Tutorial • http://java.sun.com/docs/books/tutorial/ JNDI