1 / 27

Java Naming and Directory Interface (JNDI)

Java Naming and Directory Interface (JNDI). Vijay Bhatt NCST Juhu, Mumbai. Agenda. What is JNDI? Naming and Directory Services Naming Concepts Issues JNDI Architecture Programming with JNDI Role of JNDI in J2EE. Class.forName("com.microsoft.jdbc. sqlserver.SQLServerDriver");

jewel
Download Presentation

Java Naming and Directory Interface (JNDI)

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Naming and DirectoryInterface (JNDI) Vijay Bhatt NCST Juhu, Mumbai (c)CDAC(Formerly NCST)

  2. Agenda • What is JNDI? • Naming and Directory Services • Naming Concepts • Issues • JNDI Architecture • Programming with JNDI • Role of JNDI in J2EE (c)CDAC(Formerly NCST)

  3. Class.forName("com.microsoft.jdbc. sqlserver.SQLServerDriver"); • cnn = DriverManager.getConnection ("jdbc:microsoft:sqlserver://siddh ant:1433",“username",“password"); (c)CDAC(Formerly NCST)

  4. Context ctx = new InitialContext(); • DataSource ds = (DataSource)ctx.lookup(“myname”); • Connection con = ds.getConnection(“abc”,”***”); (c)CDAC(Formerly NCST)

  5. JNDI Java Naming and Directory Interface (JNDI) provides a standard interface for Java applications to access naming and directory services. (c)CDAC(Formerly NCST)

  6. Naming Service • Naming Service performs: – Binding: Associating names with objects – Lookup: Find an object based on a name. • Examples: DNS and File systems • Examples: – DNS – Filesystems (c)CDAC(Formerly NCST)

  7. Directory Service • Directory is a naming service that stores objects with attributes. – Usernames and passwords etc stored in attrs. • Tree like structure (c)CDAC(Formerly NCST)

  8. Names • Atomic name is a indivisible component of a name – in /etc/fstab, etc and fstab are atomic names. • Compound name is zero or more atomic names put together. – /etc/fstab is a compound name (c)CDAC(Formerly NCST)

  9. Binding • Binding is an association of a name with an object. – Filename “autoexec.bat” has a binding to some file data on the disk. – “c:\windows” foldername is bound to a folder on your drive. • Compound name such as /usr/people/ed/.cshrc consists of multiple bindings, one to usr, one to people, one to ed, and one to .cshrc. (c)CDAC(Formerly NCST)

  10. Context • Contains zero or more bindings. – Each binding has a distinct atomic name. • /etc contains files named mtab and exports. • The /etc folder is a context containing bindings with atomic names mtab and exports. • mtab and exports are each bound to a file on the disk. (c)CDAC(Formerly NCST)

  11. Sub-Context • /usr – CONTEXT – /usr/people – SUB-CONTEXT – /usr/bin – SUB-CONTEXT – /usr/local – SUB-CONTEXT • Each atomic name is bound to a sub-context the subfolder. • Subcontext are full-fledged contexts • Can contain more name-object bindings, such as other files or other folders. (c)CDAC(Formerly NCST)

  12. Naming System and Namespaces • Naming system: A connected set of contexts. • Namespace: all the names contained within that naming system. (c)CDAC(Formerly NCST)

  13. InitialContext • Starting point for exploring a namespace. • Starting point for performing all naming and directory operations. (c)CDAC(Formerly NCST)

  14. Issues • Many naming and directory products. – Netscape Directory Server – MicrosoftActiveDirectory • Various naming and directory protocols: Each directory standard has a different protocol for accessing the directory. – Lightweight Directory Access Protocol (LDAP) – Network Information System (NIS) – Novell’s Network Directory System (NDS) • EveryDS has it’s ownAPI. (c)CDAC(Formerly NCST)

  15. Introducing JNDI • Standard interface to interact with naming and directory systems. • For Java programs. • Provides common interface to disparate directories: Same API for LDAP and NIS NDS. • Used in EJB, RMI-IIOP, JDBC for operations like locating entities i.e. Users, Machines (e.g. printer), Objects, Services (e.g. datasource) etc. (c)CDAC(Formerly NCST)

  16. JNDI Architecture • The client API – Allow Java code to perform directory operations. • The Service Provider: Driver • The Service Provider Interface (SPI) – An interface to which naming and directory service vendors can plug in. (c)CDAC(Formerly NCST)

  17. (c)CDAC(Formerly NCST)

  18. JNDI Packages The JNDI comprises of 5 packages • javax.naming – Contains classes and interfaces for accessing naming services • javax.naming.directory – Extends javax.naming and provides functionality to access directory services in addition to naming services (c)CDAC(Formerly NCST)

  19. JNDI Packages • javax.naming.event – Classes and interfaces for supporting event notification in naming and directory services • javax.naming.ldap – Classes and interfaces for using features that are specific to LDAP v3 that are not already covered by the more generic javax.naming.directory • javax.naming.spi – Vendors develop their naming/directory services conforming to SPI. Applications can then access these services through the JNDI API (c)CDAC(Formerly NCST)

  20. InitialContextFactory • Used to acquire an initial context • Implementation of the JNDI driver: Knows the specific semantics of a particular directory structure. • bootstrapping. • Necessary information for JNDI to acquire that initial context. – The IP address of the J2EE server – The port number that the J2EE server accepts – Any username/password necessary to use the J2EE server. (c)CDAC(Formerly NCST)

  21. javax.naming.Context ctx = new javax.naming.InitialContext (System.getProperties()); java -Djava.naming.factory.initial= com.sun.jndi.fscontext.RefFSContextFactory -Djava.naming.provider.url= file:c:\examples.InitCtx class of the JNDI driver • provider URL: URL that the service provider accepts for bootstrapping. (c)CDAC(Formerly NCST)

  22. Other JNDI operations Methods invoked on a Context • list() - list of contents available at the context. – names of objects bound to the JNDI tree – subcontexts. • lookup() - look up objects bound to the JNDI tree – Return type is driver specific • RMI-IIOP java.rmi.Remote • file system java.io.File (c)CDAC(Formerly NCST)

  23. rename() - give a new name to a context – c:\temp to c:\tmp • createSubcontext() - create a subcontext at the context – c:\foo\bar at the folder c:\foo. • destroySubcontext() - destroy a subcontext of the context – Destroy c:\foo\bar from the folder c:\foo. • bind() – associates a name to a content and stores it at the Context – JNDI drivers accept different parameters to bind() • rebind() - forces a bind even if some object is already bound to the name. (c)CDAC(Formerly NCST)

  24. Binding import javax.naming.*; public class Startup { public static void main(String args[]) throws Exception { AccountImpl acct_impl = new AccountImpl(); Context ctx = new InitialContext (System.getProperties()); ctx.rebind(“myname", acct_impl); } } (c)CDAC(Formerly NCST)

  25. Looking Up import javax.naming.*; import java.rmi.*; public class Client { public static void main (String[] args) throws Exception { Context ctx = new InitialContext (System.getProperties()); Object remoteObject = ctx.lookup(“myname"); Account account = (Account) javax.rmi.PortableRemoteObject.narrow ( remoteObject, Account.class); int b = account.method1(5));}} (c)CDAC(Formerly NCST)

  26. Role of JNDI in J2EE • J2EE servers have a JNDI implementation. • Used to Look up beans. • Connect to resource factories – JDBC DataSource – Java Message Service (JMS) drivers • Acquiring a reference to the Java Transaction API’s (JTA) UserTransaction interface. (c)CDAC(Formerly NCST)

  27. References • Mastering Enterprise JavaBeans by Ed Roman et. al. (Wiley) • JNDI Tutorial on java.sun.com • Java Server Programming J2EE Edition – Volume 1 – Wrox. • Java Enterprise in a nutshell – David Flanagan et. Al. – O’reilly (c)CDAC(Formerly NCST)

More Related