b'\n_START_ARTICLE_\nJava Naming and Directory Interface\n_START_PARAGRAPH_\nLa Java Naming and Directory Interface (JNDI) que significa Interf\xc3\xadcie d\'Anomenament i Directori de Java, \xc3\xa9s una API per proveir un servei de directori que permeti la descoberta i el lookup d\'objectes a partir d\'un nom. Com totes les APIs de Java que accedeixen a altres sistemes a trav\xc3\xa9s d\'una interf\xc3\xadcie, JNDI \xc3\xa9s independent de la implementaci\xc3\xb3 sobre la que corre. A m\xc3\xa9s, especifica una Interf\xc3\xadcie Prove\xc3\xafdora de Servei (SPI) que permet que les implementacions de serveis de directori siguin endollades a l\'entorn. Les implementacions poden fer \xc3\xbas del servidor, un fitxer pla o una base de dades; la tria la fa el venedor.\n_START_SECTION_\nLookup b\xc3\xa0sic\n_START_PARAGRAPH_\nJNDI organitza els seus noms en una jerarquia. Un nom pot ser qualsevol string com ara "com.domini.ejb.ElBean". Un nom tamb\xc3\xa9 pot ser un objecte que suporta la interf\xc3\xadcie Name, malgrat que un string \xc3\xa9s la forma m\xc3\xa9s comuna d\'anomenar un objecte. Un nom est\xc3\xa0 enlla\xc3\xa7at a un objecte del directori emmagatzemant o l\'objecte o una refer\xc3\xa8ncia a l\'objecte al servei de directoi identificada pel seu nom._NEWLINE_L\'API JNDI defineix un context que especifica on fer el lookup d\'un objecte. El context inicial \xc3\xa9s usat t\xc3\xadpicament com un punt de partida._NEWLINE_En el cas m\xc3\xa9s simple, un context inicial ha de ser creat usant la implemntaci\xc3\xb3 espec\xc3\xadfica i els par\xc3\xa0metres exrra requerits per la implementaci\xc3\xb3. El context inicial ser\xc3\xa0 usat per fer el lookup d\'un nom. El context inicial \xc3\xa9s an\xc3\xa0leg al de l\'arrel o el cap d\'amunt d\'un arbre de directoris d\'un sistema de fitxers. El de sota \xc3\xa9s un exemple de creaci\xc3\xb3 d\'un context inicial:_NEWLINE_Hashtable args = new Hashtable();//Primer cal especificar el context factory.//Aix\xc3\xad \xc3\xa9s com es tria entre implementaci\xc3\xb3 JBoss // o una implementaci\xc3\xb3 de Sun o altres fabricants.args.put( Context.INITIAL_CONTEXT_FACTORY, "com.jndiprovider.UnContextFactory" );//L\'argument seg\xc3\xbcent \xc3\xa9s la URL que especifica on \xc3\xa9s emmagatzemada la dada:args.put( Context.PROVIDER_URL, "jndiprovider-database" );//Tamb\xc3\xa9 caldr\xc3\xa0 indicar les credencials de seguretat//en acabat es crea el context inicialContext contextActual = new InitialContext( args );_NEWLINE_Un context \xc3\xa9s usat llavors per fer lookup de noms pr\xc3\xa8viament enlla\xc3\xa7ats al context. Per exemple:_NEWLINE_Object referencia = contextActual\xc2\xb7lookup( "com.domini.ElBean" );//aquest pas cal per beans EJB ElBean unBean = (ElBean) PortableRemoteObject.narrow( referencia, ElBean.class );\n_START_SECTION_\nCerca\n_START_PARAGRAPH_\nEls atributs poden ser adjuntats per entrades especials anomenades directoris. Els directoris calen per poder habilitar cerques d\'objectes pels seus atributs associats. Els directoris s\xc3\xb3n un tipus de context, restringeixen l\'espai de noms prou semblant a com ho fa una estructura de directori sobre un sistema de fitxers.'