Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서

JNDI(Java Naming and Directory Interface) 정보

이 절에서는 JNDI(Java Naming and Directory Interface)에 대해 설명합니다. JNDI는 다른 종류의 이름 지정 및 디렉토리 서비스에 액세스하는 데 필요한 API(Application Programming Interface)입니다. J2EE 구성 요소는 JNDI 조회 메소드를 호출하여 객체를 찾습니다.

이 절에서는 다음 항목에 대해 설명합니다.

JNDI 이름 및 자원

JNDI는 Java Naming and Directory Interface API의 머리글자입니다. 응용 프로그램은 이 API를 호출하여 자원과 다른 프로그램 객체를 찾습니다. 자원은 데이터베이스 서버나 메시징 시스템 같은 시스템과의 연결을 제공하는 프로그램 객체입니다. JDBC 자원을 데이터 소스라고도 합니다. 모든 자원 객체는 고유하고 사용자에게 친숙한 이름으로 식별되며 JNDI라는 이름으로 부릅니다. 자원 객체와 해당 JNDI 이름은 Application Server에 포함된 이름 지정 및 디렉토리 서비스에 의해 함께 바인딩됩니다. 자원을 새로 만들려면 새로운 이름 객체 바인딩을 JNDI에 입력합니다.

J2EE 이름 지정 서비스

JNDI 이름은 사람들에게 친숙한 객체 이름입니다. 이러한 이름은 J2EE 서버에서 제공하는 이름 지정 및 디렉토리 서비스에 의해 객체에 바인딩됩니다. J2EE 구성 요소가 JNDI API를 통해 이 서비스에 액세스하기 때문에 대개 객체는 해당 JNDI 이름을 사용합니다. 예를 들어, Pointbase 데이터베이스의 JNDI 이름은 jdbc/Pointbase입니다. Application Server는 시작할 때 구성 파일로부터 정보를 읽어 JNDI 데이터베이스 이름을 이름 공간에 자동으로 추가합니다.

J2EE 응용 프로그램 클라이언트, Enterprise Bean 및 웹 구성 요소에는 JNDI 이름 지정 환경에 대한 액세스 권한이 필요합니다.

응용 프로그램 구성 요소의 이름 지정 환경은 배포나 어셈블 중에 응용 프로그램 구성 요소 비즈니스 논리의 사용자 정의를 허용하는 메커니즘입니다. 응용 프로그램 구성 요소 환경을 사용하면 응용 프로그램 구성 요소의 소스 코드에 액세스하거나 변경할 필요 없이 응용 프로그램 구성 요소를 사용자 정의할 수 있습니다.

J2EE 컨테이너는 응용 프로그램 구성 요소의 환경을 구현하며 이러한 환경을 응용 프로그램 구성 요소 인스턴스에 JNDI 이름 지정 컨텍스트로 제공합니다. 응용 프로그램 구성 요소의 환경은 다음과 같이 사용됩니다.

각 응용 프로그램 구성 요소는 고유 환경 항목 집합을 정의합니다. 같은 컨테이너 내의 모든 응용 프로그램 구성 요소 인스턴스는 같은 환경 항목을 공유합니다. 응용 프로그램 구성 요소 인스턴스는 런타임 시 환경을 수정할 수 없습니다.

이름 지정 참조 및 바인딩 정보

자원 참조는 자원에 대한 구성 요소의 코드화된 이름을 식별하는 배포 설명자의 요소입니다. 즉, 코드화된 이름은 자원의 연결 팩토리를 참조합니다. 다음 절의 해당 예에서 자원 참조 이름은 jdbc/SavingsAccountDB입니다.

자원의 JNDI 이름과 자원 참조의 이름은 같지 않습니다. 이 방법으로 이름을 지정하려면 배포 전에 두 이름을 매핑해야 하지만 자원으로부터 구성 요소를 분리하기도 합니다. 이러한 분리 기능으로 인해 나중에 구성 요소가 다른 자원에 액세스해야 할 경우 이름을 변경할 필요가 없습니다. 또한 이러한 융통성으로 인해 기존의 구성 요소로부터 J2EE 응용 프로그램을 어셈블하기가 쉽습니다.

다음 표에서는 Application Server에서 사용하는 J2EE 자원에 대한 JNDI 조회 및 관련 참조를 나열합니다.

표 6–1 JNDI 조회 및 관련 참조

JNDI 조회 이름 

관련 참조 

java:comp/env

응용 프로그램 환경 항목 

java:comp/env/jdbc

JDBC 데이터 소스 자원 관리자 연결 팩토리 

java:comp/env/ejb

EJB 참조 

java:comp/UserTransaction

UserTransaction 참조 

java:comp/env/mail

JavaMail 세션 연결 팩토리 

java:comp/env/url

URL 연결 팩토리 

java:comp/env/jms

JMS 연결 팩토리 및 대상 

java:comp/ORB

응용 프로그램 구성 요소 간에 공유되는 ORB 인스턴스