# 1. J2EE 의 표준 서비스들인 JNDI, JTA, JTS, JMS의 개요 ## 가. J2EE의 정의 - Enterprise Development 에 필요한 다양한 환경을 정의해 놓은 규약, API와 TOOL들을 일컬음 ## 나. J2EE의 3대 카테고리 ^ 구분 ^ 대상 ^ 설명 ^ | Componet | Servlet, JSP, EJB | 비지니스 로직 구현, 프리젠테이션 로직 담당, 주로 개발자가 개발하는 부분, GUI | | Service | JDBC, JNDI, JTA | 데이터 베이스, 네이밍 서비스, 트랜잭션, 이미 존재하는 서비스들, 예로 database나 naming service 나 Transaction 서비스와 같은 것들로 개발자는 이를 그냥 사용하기만 하면 됨 | | Communication | JMS, JAF, JAVA Mail,RMI-IIOP | 객체들간의 통신에 사용되는 것들로, 메일이나 메시지를 다루는 시스템 개발때 주로 사용 | # 2. JNDI, JTA, JTS, JMS의 개념 및 특징 ### 가. JNDI(Java Naming and Directory Interchage) * 네이밍 서비스와 자원에 속성까지 설정하는 디렉토리 서비스를 사용할 수 있게 하는 API * A서버 : 리소스, 서빗((서블릿???)) 객체등을 디렉토리에 등록 * B, C, D 원격지에선 A서버의 주소로 등록된 서비스, 객체를 이름으로 검색/사용 ### 나. JTA(Java Transaction API) * 트랜잭션 관리를 위한 API, ACID(원자성, 일관성, 독립성, 지속성) 지원 * JTA 트랜잭션을 사용하여 제어하기 위한 메소드들 javax.transaction.UserTransaction 인터페이스의 begin(), commit(), rollback() 메소드 사용 ### 다. JTS(Java Transaction Service) * J2EE 트랜잭션 메니저가 어떤 일을 해야 하는지를 규정한 스팩 * JTA를 지원하는 Transaction Manager의 구현을 지정하고 OTS 1.1 스펙의 자바 매핑을 정의 * JTS는 transactions using the internet inter-ORB Protocol(IIOP)를 사용하여 트랜잭션 전파 ### 라. JMS(Java Message Service) * 비동기식 메시징을 위한 표준 API, 자바 어플리케이션이 비동기식 통신 수단 제공 * 핵심개념 : Message Broker(메시지를 건네받는 역할, 우체국), 목적지(수신 주소) * 목적지 종류 : 큐(point-to-point모델), 토픽(publish-subscribe모델) * 장점 : 대기없음, 메시지 기반, 위치 독립성, 전달보증 # 참고자료 ## JAVA2 platform Sun에서 제사한 기본 어플리케이션에서 엔터프라즈 솔루션, 모바일 솔루션에 대한 개발 방법론과 다양한 API와 명세를 정의한 것 * J2SE(Java2 platform Standard Edition) : 자바 프로그램을 하는데 있어서 가장 기본적인 핵심부분 * J2EE(Java2 platform Enterprise Edition) : 엔터프라즈 솔루션을 개발하는데 있어 필요한 여러가지 서비스 부분과 API, 개발 방법론을 제시 * J2ME(Java2 paltform Micro Edition) : 다양한 모바일 솔루션을 개발하는데 있어서 기본적인 환경, 서비스에 대한 부분을 정의, API를 제공 ## J2EE * Enterprise Development에 필요한 다양한 환경을 정의해 놓은 규약 * 위 규약만 가지고 시스템이 움직이는 것은 아님, 예로 자바 프로그램이 구동되려며 JVM이 필요한 것처럼, J2EE는 이 API와 Tool들을 일컬음 * 그리고 이와 같은 API와 TOOL등을 포함하고 기타 서비스들을 탑재한 서버를 → J2EE server, Web Application Server, J2EE application server라 일컬음 ## J2EE Standard Service * Servlet, JSP, JDBC, JMS, JNDI, JTA, Java Mail, JAF, RMI-IIOP 등 * 위 기술로 JMS로 Messaging 서비스, JNDI로 Naming and Driectory 서비스, JTA로 Transaction 서비스를 생성 가능 # 참조 * http://unabated.tistory.com/entry/JNDI-JTA-JTS-JMS