SlideShare una empresa de Scribd logo
1 de 27
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

Más contenido relacionado

La actualidad más candente

Reflection in java
Reflection in javaReflection in java
Reflection in java
upen.rockin
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
guest11106b
 

La actualidad más candente (20)

Reflection in java
Reflection in javaReflection in java
Reflection in java
 
Java J2EE
Java J2EEJava J2EE
Java J2EE
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Servlets
ServletsServlets
Servlets
 
What's new in Java 11
What's new in Java 11What's new in Java 11
What's new in Java 11
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architecture
 
Spring & hibernate
Spring & hibernateSpring & hibernate
Spring & hibernate
 
Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019
 
Java Course 8: I/O, Files and Streams
Java Course 8: I/O, Files and StreamsJava Course 8: I/O, Files and Streams
Java Course 8: I/O, Files and Streams
 
Tomcat
TomcatTomcat
Tomcat
 
Chapter2 j2ee
Chapter2 j2eeChapter2 j2ee
Chapter2 j2ee
 
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
 
Design pattern-presentation
Design pattern-presentationDesign pattern-presentation
Design pattern-presentation
 
An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
Java web application development
Java web application developmentJava web application development
Java web application development
 

Similar a Jndi

Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtugVk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
ketan_patel25
 

Similar a Jndi (20)

Jdbc
JdbcJdbc
Jdbc
 
2001: JNDI Its all in the Context
2001:  JNDI Its all in the Context2001:  JNDI Its all in the Context
2001: JNDI Its all in the Context
 
Java Future S Ritter
Java Future S RitterJava Future S Ritter
Java Future S Ritter
 
Memory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual MachineMemory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual Machine
 
Java Web Programming Using Cloud Platform: Module 3
Java Web Programming Using Cloud Platform: Module 3Java Web Programming Using Cloud Platform: Module 3
Java Web Programming Using Cloud Platform: Module 3
 
Jump Start with Apache Spark 2.0 on Databricks
Jump Start with Apache Spark 2.0 on DatabricksJump Start with Apache Spark 2.0 on Databricks
Jump Start with Apache Spark 2.0 on Databricks
 
Intro to Apache Spark
Intro to Apache SparkIntro to Apache Spark
Intro to Apache Spark
 
Intro to Apache Spark
Intro to Apache SparkIntro to Apache Spark
Intro to Apache Spark
 
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet AdvancedJava Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet Advanced
 
Cassandra Java APIs Old and New – A Comparison
Cassandra Java APIs Old and New – A ComparisonCassandra Java APIs Old and New – A Comparison
Cassandra Java APIs Old and New – A Comparison
 
Oracle RAC and Docker: The Why and How
Oracle RAC and Docker: The Why and HowOracle RAC and Docker: The Why and How
Oracle RAC and Docker: The Why and How
 
20170126 big data processing
20170126 big data processing20170126 big data processing
20170126 big data processing
 
Data Types/Structures in DivConq
Data Types/Structures in DivConqData Types/Structures in DivConq
Data Types/Structures in DivConq
 
.NET Cloud-Native Bootcamp Minneapolis
.NET Cloud-Native Bootcamp Minneapolis.NET Cloud-Native Bootcamp Minneapolis
.NET Cloud-Native Bootcamp Minneapolis
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 Presentation
 
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtugVk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache Cassandra
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Vijfhart thema-avond-oracle-12c-new-features
Vijfhart thema-avond-oracle-12c-new-featuresVijfhart thema-avond-oracle-12c-new-features
Vijfhart thema-avond-oracle-12c-new-features
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
 

Último

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Último (20)

Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 

Jndi

  • 1. SCOT Java Naming and Directory Interface (JNDI) Vijay Bhatt NCST Juhu, Mumbai (c)CDAC(Formerly NCST) JNDI 1
  • 2. 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
  • 3. 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
  • 4. SCOT • Context ctx = new InitialContext(); • DataSource ds = (DataSource)ctx.lookup(“myname”); • Connection con = ds.getConnection(“abc”,”***”); (c)CDAC(Formerly NCST) JNDI 4
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. SCOT InitialContext • Starting point for exploring a namespace. • Starting point for performing all naming and directory operations. (c)CDAC(Formerly NCST) JNDI 13
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. SCOT (c)CDAC(Formerly NCST) JNDI 17
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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 }
  • 25. 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
  • 26. 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
  • 27. 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