Upcoming SlideShare
Loading in...5







Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Jndi Jndi Presentation Transcript

    • SCOT Java Naming and Directory Interface (JNDI) Vijay Bhatt NCST Juhu, Mumbai (c)CDAC(Formerly NCST) JNDI 1
    • SCOT 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) JNDI 2
    • SCOT • Class.forName("com.microsoft.jdbc. sqlserver.SQLServerDriver"); • cnn = DriverManager.getConnection ("jdbc:microsoft:sqlserver://siddh ant:1433",“username",“password"); (c)CDAC(Formerly NCST) JNDI 3
    • SCOT • Context ctx = new InitialContext(); • DataSource ds = (DataSource)ctx.lookup(“myname”); • Connection con = ds.getConnection(“abc”,”***”); (c)CDAC(Formerly NCST) JNDI 4
    • SCOT JNDI Java Naming and Directory Interface (JNDI) provides a standard interface for Java applications to access naming and directory services. (c)CDAC(Formerly NCST) JNDI 5
    • SCOT 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) JNDI 6
    • SCOT 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) JNDI 7
    • SCOT 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) JNDI 8
    • SCOT 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) JNDI 9
    • SCOT 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) JNDI 10
    • SCOT 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) JNDI 11
    • SCOT Naming System and Namespaces • Naming system: A connected set of contexts. • Namespace: all the names contained within that naming system. (c)CDAC(Formerly NCST) JNDI 12
    • SCOT InitialContext • Starting point for exploring a namespace. • Starting point for performing all naming and directory operations. (c)CDAC(Formerly NCST) JNDI 13
    • SCOT 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) JNDI 14
    • SCOT 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) JNDI 15
    • SCOT 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) JNDI 16
    • SCOT (c)CDAC(Formerly NCST) JNDI 17
    • SCOT 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) JNDI 18
    • SCOT 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) JNDI 19
    • SCOT 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) JNDI 20
    • SCOT 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) JNDI 21
    • SCOT 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) JNDI 22
    • SCOT• rename() - give a new name to a context – c:temp to c:tmp• createSubcontext() - create a subcontext at the context – c:foobar at the folder c:foo.• destroySubcontext() - destroy a subcontext of the context – Destroy c:foobar 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 (c)CDAC(Formerly NCST) the name. JNDI 23
    • SCOT 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) JNDI 24 }
    • SCOT 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) (c)CDAC(Formerly NCST) JNDI 25 javax.rmi.PortableRemoteObject.na
    • SCOT 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) JNDI 26
    • SCOT 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) JNDI 27