용어해설

Destination

JMS 메시지를 주고받기 위한 가상 채널로 큐(Queue)와 토픽(Topic) 두 가지 타입이 있다. 일반적으로 서버에서 생성되어 관리되며 클라이언트에서는 JNDI Lookup을 통해 서버에 존재하는 객체에 해당 참조를 얻을 수 있다.

Durable Subscriber

Pub/Sub 메시징 방식에서 메시지 수신자가 토픽으로부터 메시지를 수신하는 시간적인 한계를 극복하기 위한 일종의 메시지 수신 예약 시스템이다. 클라이언트는 필요한 시점에 메시지 수신자를 생성하여 예약이 설정된 이후에 도착한 메시지들을 수신할 수 있다.

Filtering

어떤 조건에 맞는 특정한 메시지만을 선택하는 용어이다.

JMS

애플리케이션이 메시지를 생성하고, 보내고 받는 것을 제공하는 Java EE 서비스이다.

JMS Connection

JMS 서비스를 이용하기 위해 최초로 생성되는 객체이며 물리적인 Connection, Thread Pool 등의 리소스, 그리고 메시지를 주고받기 위한 기본적인 인터페이스를 정의하고 있다. 실제 JMS Session을 생성하는 Factory 역할을 한다.

JMS Connection Factory

JMS 클라이언트가 커넥션을 생성하기 위해서 사용되며 JMS 서버에서 관리되는 객체이다. Connection을 맺기 위한 정보 및 클라이언트의 기본 설정이 수록되어 있으며 일반적으로 JNDI를 통해서 얻어진다.

JMS Server

JMS 서비스 프로바이더에 의해 제공된 라이브러리와 그 서비스이다. 일반적으로 Message Broker라는 용어도 많이 사용한다. 서비스를 위한 Destination이나 Connection Factory와 같은 리소스를 관리하며 메시지를 저장하고 전달하는 등 모든 메시지 처리의 중심이 된다.

JMS Session

실제 메시지 송수신 작업이 이루어지는 단일 Thread Context를 제공하는 객체이다. 트랜잭션 작업을 구성하며 커넥션에 의해 생성된다.

Message

JMS를 이용하여 정보를 주고받기 위해 사용되는 일반적인 정보의 단위를 의미한다. 사용자의 데이터뿐만 아니라 메시징에 필요한 정보를 함께 갖고 있다.

Message Consumer

Destination으로부터 메시지를 수신하기 위한 JMS 객체로 JMS 세션을 통해 생성된다. 메시지는 동기적 또는 비동기적으로 수신할 수 있다. PTP(Peer-To-Peer) 방식에서는 Receiver, Pub/Sub(Publish/Subscribe) 방식에서는 Subscriber라는 용어를 사용한다.

Message Listener

메시지를 비동기적으로 수신하여 처리하려고 할 때 메시지 수신자에 등록한다. 메시지를 처리하는 callback 인터페이스를 구현하고 있으며 메시지 수신자를 생성한 JMS Session에 할당된 단일 스레드 컨텍스트에 의해 처리된다.

Message Producer

Destination으로 메시지를 보내기 위한 API를 정의하는 객체로 JMS 세션을 통해 생성된다. 메시지를 전달하는 여러 가지 옵션을 줄 수 있다. PTP(Peer-To-Peer) 방식에서는 Sender, Pub/Sub(Publish/Subscribe) 방식에서는 Publisher라는 용어를 사용한다.

Message Selector

메시지의 속성 테이블을 이용하여 원하는 속성의 메시지만을 골라내기 위한 문법을 정의하는 문자열이다.

Peer-To-Peer

하나의 클라이언트가 하나의 클라이언트에 대등한 관계로 통신을 하는 것을 의미하며 메시징 모델과는 직접적인 관계가 없다.

Queue

FIFO 형태의 메시지 채널이며 Queue에 전달된 메시지는 전달된 시점과 무관하게 Consumer의 필요에 따라 얻어갈 수 있다. 단, Queue에 전달된 메시지는 오직 하나의 Consumer만이 가져갈 수 있다.

Thread Pool

단기간 혹은 장기간에 걸쳐 동시 다발적으로 발생하는 작업을 효율적으로 수행하기 위하여 미리 설정된 정책에 따라서 일정 수의 Thread를 유지하는 방식을 의미한다. 일차적으로는 Thread를 생성하는 오버헤드를 줄여서 반응 속도를 줄일 수 있으며 더 나아가 시스템에 적정한 수준의 작업만을 처리하게 하여 전체의 안정성을 높일 수 있다.

Topic

실체가 없는 가상적인 메시지 채널이며 메시지가 도착하기 이전에 미리 요청된 Consumer에게 메시지를 전달한다. 상황에 따라 0 또는 다수의 Message Consumer에게 전달하며 그 직후 해당 메시지는 삭제된다.