EJB: Enterprise JavaBeans, 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 어플리케이션의 업무 로직을 가지공 있는 서버 어플리케이션이다. EJB 사양은 Java EE의 자바 API중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.
EJB는 다음 3가지 종류가 있다.
- 세션 빈(Session Bean): DB연동이 필요 없음
- 엔티티 빈(Entity Bean):
- 데이터베이스의 데이터를 관리하는 객체
- Insert(삽입), Update(수정), Delete(삭제), Select(조회)
- DB관련 쿼리는 자동으로 만들어지고 개발자는 고급 업무 처리에 집중할 수 있음
- DB가 수정되면 코드 수정 없이 다시 배포(설정 문서 만들어서 복사)
- 메시지 구동 빈(Message-drive Bean): JMS로 빈을 날려줌
JTA: JAVA Transaction API, 플랫폼마다 상이한 트랜잭션 매니저들과 어플리케이션들이 상호작용할 수 있는 인터페이스를 정의하고 있다. JAVA에서 제공되는 대부분의 API와 마찬가지로, JTA는 실제 구현은 다르지만 어플리케이션이 공통적으로 사용할 수 있는 하나의 인터페이스를 제공한다. 이 말은 트랜잭션 처리가 필요한 어플리케이션이(API의 사용 방식 그대로만 사용한다면) 특정 벤더의 트랜잭션 매니저에 의존할 필요가 없음을 의미한다. Atomikos와 같이 JTA 구현체들을 오픈소스로 제공하는 벤더들도 있고, IBM 같이 JTA 구현체를 어플리케이션 서버의 한 부분으로 제공하는 벤더들도 있다.
JTA의 구현체를 사용할 때에는 주의를 기울여야 한다. 자세히 들여다 보면 뭔가 잘 못 되어 있는 것처럼 보이기 때문이다. 믿기 어렵겠지만 J2EE 호환됨'이라고 검증을 받은 어플리케이션 서버들도 트랜잭션 관리를 제대로 지원하지 않거나 가상적으로만 지원할 수도 있다.
XA: eXtended Architecture, 동일한 전역 트랜잭션(Global Transaction)내에서 몇 개의 백엔드 데이터 저장소에 접근하기 위한 X/Open 그룹 표준의 하나이다. XA표준 규격은 하나의 트랜잭션 매니저가 어떤 트랜잭션의 한 부분으로 어떤 작업이 수행되고 있는지를 데이터베이스에 통보하는 방식과, 각 트랜잭션이 완료될 때 2단계 커밋(2 Phase Commit)을 수행되는 방식을 관장한다. 또 데이터 저장소에서 지연되고 있는 트랜잭션을 회복시키는 방법도 포함하고 있다.
XA의 장점: XA 역시 하나의 표준이기 때문에, 모든 호환되는 데이터 저장소(혹은 드라이버)들이 전역(분산) 트랜잭션의 부분으로서의 트랜잭션 매니저와 연동할 수 있다. 다른 말로, 2단계 커밋이 고려되어야 하는 상황이라면 XA는 트랜잭션 매니저와 데이터 저장소를 연결해 주는 역할을 담당한다는 말이다. 이것이 Atomikos와 같은 솔루션들이 Oracle이나 Sysbase와 같은 데이터베이스와 연동하여 커밋과 롤백 등의 모든 작업을 수행할 수 있는 이유이다.
JMS: 자바 메시지 서비스(Java Message Service; JMS)는 자바 프로그램이 네트워크를 통해 데이터를 송수신하는 자바 API이다.
자바 메시지 서비스는 API는 두 개 혹은 그 이상의 클라이언트 간 메시지 통신을 위한 자바 메시지 기반 미들웨어 API( 자바 메시지 지향 미들웨어(MOM) API)이다. JMS는 자바 플랫폼, 엔터프라이즈 에디션에 포함되어 있으며, 자바커뮤니티 프로세스의 JSR 914로 개발된 명세서에 의해 정의된다. 자바 메시지 서비스는 자바 플랫폼, 엔터프라이즈 에디션에 기반을 둔 애플리케이션 컴포넌트들끼리 메시지를 생성, 송/수신, 읽기 기능을 제공하는 메시징 표준이다. 분산된 애플리케이션끼리 느슨하게 연결해주고 신뢰성을 보장하며, 비동기 처리가 가능하도록 해준다.
'Tech > Software' 카테고리의 다른 글
스위치 구분(L2, L3, L4, L7) (0) | 2019.09.03 |
---|---|
Google Cloud Essential Workshop (0) | 2019.09.03 |
java jvm core dump (1) | 2018.12.30 |
sorting algorithm (0) | 2018.12.13 |
HTTP Status Code List (0) | 2018.12.13 |