JNDI 이름은 사람들에게 친숙한 객체 이름입니다. 이러한 이름은 J2EE 서버에서 제공하는 이름 지정 및 디렉토리 서비스에 의해 객체에 바인딩됩니다. J2EE 구성 요소가 JNDI API를 통해 이 서비스에 액세스하기 때문에 대개 객체는 해당 JNDI 이름을 사용합니다. 예를 들어, Pointbase 데이터베이스의 JNDI 이름은 jdbc/Pointbase입니다. Application Server는 시작할 때 구성 파일로부터 정보를 읽어 JNDI 데이터베이스 이름을 이름 공간에 자동으로 추가합니다.
J2EE 응용 프로그램 클라이언트, Enterprise Bean 및 웹 구성 요소에는 JNDI 이름 지정 환경에 대한 액세스 권한이 필요합니다.
응용 프로그램 구성 요소의 이름 지정 환경은 배포나 어셈블 중에 응용 프로그램 구성 요소 비즈니스 논리의 사용자 정의를 허용하는 메커니즘입니다. 응용 프로그램 구성 요소 환경을 사용하면 응용 프로그램 구성 요소의 소스 코드에 액세스하거나 변경할 필요 없이 응용 프로그램 구성 요소를 사용자 정의할 수 있습니다.
J2EE 컨테이너는 응용 프로그램 구성 요소의 환경을 구현하며 이러한 환경을 응용 프로그램 구성 요소 인스턴스에 JNDI 이름 지정 컨텍스트로 제공합니다. 응용 프로그램 구성 요소의 환경은 다음과 같이 사용됩니다.
응용 프로그램 구성 요소의 비즈니스 메소드는 JNDI 인터페이스를 사용하여 환경에 액세스합니다. 응용 프로그램 구성 요소 공급자는 해당 응용 프로그램 구성 요소가 런타임에 자체 환경 내에서 필요로 하는 모든 환경 항목을 배포 설명자에 선언합니다.
컨테이너는 응용 프로그램 구성 요소 환경을 저장하는 JNDI 이름 지정 컨텍스트 구현을 제공합니다. 컨테이너는 배포자가 각 응용 프로그램 구성 요소의 환경을 만들고 관리할 수 있게 해주는 도구도 제공합니다.
배포자는 컨테이너에서 제공하는 도구를 사용하여 응용 프로그램 구성 요소 배포 설명자에 선언되어 있는 환경 항목을 초기화합니다. 배포자가 환경 항목의 값을 설정 및 수정합니다.
컨테이너는 런타임 시 환경 이름 지정 컨텍스트를 응용 프로그램 구성 요소 인스턴스에서 사용할 수 있게 합니다. 응용 프로그램 구성 요소의 인스턴스는 JNDI 인터페이스를 사용하여 환경 항목의 값을 가져옵니다.
각 응용 프로그램 구성 요소는 고유 환경 항목 집합을 정의합니다. 같은 컨테이너 내의 모든 응용 프로그램 구성 요소 인스턴스는 같은 환경 항목을 공유합니다. 응용 프로그램 구성 요소 인스턴스는 런타임 시 환경을 수정할 수 없습니다.