* JNDI 란?

JNDI(Java Naming and Directory Interface)
- 서비스가 다른 서비스를 탐색할 때 유용하게 사용된다. (분산된 자원)
- 분산된 자원 끼리의 탐색을 원할하게 하기 위한 type casting 임. (DNS 도 이에 속함) 




* 구성요소들

- Naming service 는 이름을 사용해서 객체나 객체에 대한 레퍼런스를 발견할 수 있는 방법을 제공한다. 어플리케이션 개발자는 네이밍 서비스에 이름을 사용하여 객체를 binding 함으로써 객체에 이름을 부여하게 된다. 이후 코드에서는 글 이름을 사용하여 바인딩 된 객체를 참조할 수 있게 된다. 


- Binding 이란 이름을 객체와 mapping 시키는 것 ( ex : www.naver.com =(DNS) = 211.163.21.34)
(ex : /etc/passwd =(filesystem) = file contents ) 
binding 은 namimg service 를 설정하는 사람이 생성한다. 

Context 는 객체에 대한 이름의 binding 집합이다. ( ex : /home, 하위객체를 소유)
context 는 이름 규칙과 search 기능을 갖고 있다. 예를 들어, DMS 는 왼쪽에 가장 작은 단위를 나타내는 이름이 오고 오른쪽에 도메인이 오며, 각 단위는 점(.)으로 구분된다는 이름 규칙을 갖고 있다. 
context 는 또힌 객체에 대한 binding 과 unbinding 할 수 있는 방법과 객체의 내용을 목록으로 보여주는 방법을 제공한다.

naming service 에 있는 객체는 객체에 대한 reference 를 나타낸다. 


* JNDI 설명

JNDI 가 이름과 객체를 매핑 시켜주기는 하지만, JNDI 는 naming service 는 아니다. JNDI는 기존의 naming service 를 감싸는 interface 집합으로서, 표준 방법을 통해서 naming 서비스에 접근 할 수 있도록 해준다.

application - jndi -dns
-corba
-filesystem

application code 에서는 JNDI interface 의 method 를 호출하게 되는데, this method 를 구현한 object 는 JNDI interface 의 호출을 하부의 naming service 에 대한 호출로 매핑 시켜준다. 또한, JNDI는 integrated naming protocol 을 정의하고 있다. JNDI의 naming manager 는 JNDI 의 이름을 하부의 naming service 의 이름 규칙을 따르는 이름으로 mapping 시켜준다. 

=> javax.naming.Context - naming context 를 나타내며, 검색하거나 binding 과 하위 context를 관리하는데 사용된다.
=> javax.namning.Name - naming service 에 있는 이름을 나타낸다.
=> javax.naming.Binding - naming service 의 이름과 그 이름에 바인딩 되는 객체를 나타낸다.
=> javax.naming.Reference - 객체의 복사본을 구할 때 사용된다. 







'Development > Java' 카테고리의 다른 글

java - crontab에서 실행  (0) 2012.05.16
java - ORM  (0) 2012.05.15
java - thread example  (0) 2012.05.05
Log4J 를 이용한 대용량 Logging 방법  (0) 2012.05.04
printstacktrace와 log4j  (0) 2012.05.03
Posted by linuxism
,