JMS란?

2013. 1. 7. 01:45Language/Java

반응형

JMS??
Java Message Service~!!


엔터프라이즈 기술에 대한 자바의 개념은 대폭 확대되어~~~
1) JNDI(Java Naming and Directory Interface) : 디렉토리 서비스
2) JMX(Java Management Extensions) : 네트워크 컴퓨터 장치에 접근
3) JMS(Java Message Service) :  각기 다른 메시지 기반 미들웨어(Message Oriented Middleware) 제품에 접근하기 위함
등이 있으며 그 중 JMS에 대해서 알아보겠다.

자바 메시지 서비스는 엔터프라이즈 메시징 벤더가 유연하고 보편적이면서 세련된 프로그래밍 모델을 자바 애플리케이션에 제공할 수 있도록 지원하기 위해 마련 된 자바 api 이다.

엔터프라이즈 메시징 시스템은
 - 소프트웨어 애플리케이션들 간에 데이터를 전송하거나 이벤트를 통지하는 데 사용 한다.
   이 말이 정말 핵심적인 말 인 것 같다.

JMS API에서 지원하고 있는 두 가지 프로그래밍 모델은??
1) 발행/구독 모델(publish-and-subscribe)
2) 지점간 연결(point-to-point)

출처) 아래의 그림은 네이버에서 검색하여 가져 옴을 알려드립니다.^-^



어딜가나 용어가 어렵다 ㅋㅋㅋ

■ 엔터프라이즈 메시징 시스템 또는 메시지 기반 미들웨어(MOM)
    : 둘 이상의 애플리케이션 사이에서 메시지 형태로 정보를 교환한다.
      목적지라 불리는 가상채널을 통해 메시지를 교환한다. 메시지를 보내면 메시지는
      목적지를 주소로 갖게 된다.(특정 애플리케이션을 주소로 갖지는 않음)
      그 목적지에 관심이 있어서 구독하거나 등록한 모든 애플리케이션은 그 메시지를
      받을 수 있다.
■ JMS는 다른 많은 MOM 벤더에서 사용 할 수 있으면서 벤더에 독립적인 자바 API이다.
    애플리케이션 개발자가 다른 많은 시세틈에 접근 할 때 같은 API를 재사용 한다는 점에서
    JDBC와 비슷하다.

※ 엔터프라이즈 메시징 시스템이 어떻게 돌아가는가???  매우 중요한 포인트이다^-^

■ 엔터프라이즈 메시징의 중요 개념
    메시지가 한 시스템에서 다른 시스템으로 네트워크를 타고 비동기식(asynchronously) 전달 된다는 것!
    비동기식??? 메시지를 보내는 측과 받는 측이 데이터를 받거나 처리 할 때 기다릴 필요가 없다는 것.
    다시 말해 메시지를 보내놓고 다른 작업을 자유롭게 할 수 있다는 말이다.

애플리케이션 A                                                           애플리케이션B
메시징 API             ------    메시지 기반 미들웨어 ----> 메시징 API
메시징 클라이언트   <-----                                  ----- 메시징 클라이언트              

■ 발행/구독 (publish-and-subscribe)  /  지점간 연결(point-to-point) 모델에 대해 알아보자!
  1) 발행/구독(1:多)
     위의 그림을 다시 가져와서 보면..


토픽이라는 것이 보인다.
발행/구독에서 발행자는 토픽이라 불리는 가상 채널을 통해 많은 구독자에게 메시지를 전달한다.
메시지를 받는 구독자는 토픽을 구독 할 수있다.
발행/구독 메시징 모델은 구독자가 새로운 메시지를 받으려고 토픽에게 요청하거나 토픽에서
메시지를 가져오지 않아도 구독자에게 메시지를 자동적으로 브로드캐스트 해주는 큰 규모의
푸시 기반 모델(push-based model)이다.

  2) 지점간 연결(1 -> 1)
   JMS 클라이언트가 큐(queue)라고 알려진 가상 채널을 통해 동기적(synchrononusly) 또는
   비동기적(asynchrononusly)으로 메시지를 주고 받을 수 있도록 해준다.
   이 모델은 전통적으로 클라이언트에게 메시지를 자동으로 주는 대신, 큐를 통한 풀 또는 폴링 기반 모델
   (pull or polling-based model)이다.
   하지만 JMS는 지점간 연결 클라이언트가 발행/구독과 유사한 푸시 기반 모델을 사용 할 수 있는
   옵션도 제공하고 있다.
   주어진 큐 하나를 통해 받을 수 있는 수신자는 여럿 이지만, 메시지 하나는 한 수신자에게만 허락 된다!


이제껏 메시징 시스템이 2가지 모델을 가지고 있으며 어떻게 돌아가는지 알아보았다.

  -끝-
   
     
     











반응형