Sun Java 로고     이전      목차      색인      다음     

Sun 로고
Sun Java System Message Queue 3 2005Q1 기술 개요 

6장
Message Queue 및 J2EE

Java 2 Platform, Enterprise Edition(J2EE 플랫폼)은 다중 계층 및 서버의 시스템 기능에 의존하는 클라이언트 엔터프라이즈 응용 프로그램을 호스트하는 표준 서버 플랫폼의 사양입니다. J2EE 플랫폼의 요구 사항 중 하나는 분산 구성 요소가 안정적인 비동기식 메시지 교환을 통해 다른 구성 요소와 서로 상호 작용할 수 있어야 한다는 것입니다. 이러한 상호 작용은 JMS 공급자를 사용하면 가능합니다. 실제로 Message Queue는 J2EE 플랫폼의 참조 JMS 구현입니다.

이 장에서는 J2EE 플랫폼 환경에서 JMS 지원을 구현한 결과를 살펴보겠습니다. 이 절은 다음 내용으로 구성되어 있습니다.

이 장에서는 J2EE 구성 요소 프로그래밍 및 배포를 모두 다루기 때문에 응용 프로그램 개발자와 관리자 모두가 관심을 가질 내용입니다.


JMS/J2EE 프로그래밍: Message-Driven Bean

JMS 프로그래밍 모델에서 소개한 일반적인 JMS 클라이언트 프로그래밍 모델 외에도 J2EE 플랫폼 응용 프로그램 컨텍스트에서 사용하는, 보다 특수화된 JMS 버전이 있습니다. 이 특수화된 JMS 클라이언트를 Message-Driven Bean이라고 부르며, EJB 2.0 사양(http://java.sun.com/products/ejb/docs.html)에 지정된 EJB(Enterprise JavaBeans) 구성 요소 계열 중 하나입니다.

Message-Driven Bean이 필요한 이유는 다른 EJB 구성 요소(Session Bean과 Entity Bean)들이 동기식 호출만 가능하기 때문입니다. 이 EJB 구성 요소들은 표준 EJB 인터페이스를 통해서만 액세스할 수 있으므로 비동기식으로 메시지를 수신할 메커니즘이 없습니다.

그러나 비동기식 메시징은 많은 엔터프라이즈 응용 프로그램에서 필요합니다. 그러한 응용 프로그램 중 대부분에서는 서버측 구성 요소가 서버 자원을 독점하지 않으면서 상호 통신하고 응답할 수 있어야 합니다. 즉 메시지 생성자와 밀접하게 연결되지 않으면서 메시지 수신 및 사용이 가능한 EJB 구성 요소가 필요합니다. 이 기능은 서버측 구성 요소가 응용 프로그램 이벤트에 응답해야 하는 모든 응용 프로그램에서 필요합니다. 또한 엔터프라이즈 응용 프로그램에서도 로드 증가에 따라 이 기능이 확장되어야 합니다.

MDB(Message-Driven Bean)는 특정 EJB 컨테이너(지원하는 구성 요소에 대해 분산 서비스를 제공하는 소프트웨어 환경)가 지원하는 특정 EJB 구성 요소입니다.

Message-Driven Bean     MDB는 JMS MessageListener 인터페이스를 구현하는 JMS 메시지 사용자입니다. onMessage 메소드(MDB 개발자가 작성)는 MDB 컨테이너가 메시지를 수신할 때 호출됩니다. 이 onMessage() 메소드는 표준 MessageListener 객체의 onMessage() 메소드처럼 메시지를 사용합니다. 다른 EJB 구성 요소에서처럼 MDB에 대해 메소드를 원격 호출하지 않으므로 MDB와 관련된 홈 또는 원격 인터페이스는 없습니다. MDB는 단일 대상으로부터의 메시지를 사용할 수 있습니다. 그림 6-1에서 확인할 수 있듯이 독립형 JMS 응용 프로그램, JMS 구성 요소, EJB 구성 요소 또는 웹 구성 요소에서 메시지를 생성할 수 있습니다.

그림 6-1 MDB와의 메시지

J2EE 환경에서 JMS 메시지 생성자가 메시지를 사용할 MDB 인스턴스에게 메시지를 보내는 다이어그램

MDB 컨테이너     MDB 인스턴스를 생성하고 비동기식으로 메시지를 사용하도록 설정하는 역할을 하는 특수화된 EJB 컨테이너가 MDB를 지원합니다. 여기에는 메시지 서비스와의 연결 설정(인증 포함), 지정된 대상과의 세션 풀 생성, 세션 풀 및 관련 MDB 인스턴스 사이에서의 수신 메시지 배포 관리가 포함됩니다. 이 컨테이너는 MDB 인스턴스의 라이프사이클을 제어하므로 MDB 인스턴스 풀이 받는 메시지 로드를 수용할 수 있도록 관리합니다.

MDB와 관련 있는 배포 설명자는 컨테이너가 메시지 사용 설정 시 사용하는 관리 대상 객체, 즉 연결 팩토리와 대상의 JNDI 조회 이름을 지정합니다. 또한 배포 설명자는 배포 도구가 컨테이너 구성 시 필요한 다른 정보를 포함할 수 있습니다. 이 컨테이너 각각은 단일 MDB로만 이루어진 인스턴스를 지원합니다.


J2EE Application Server 지원

J2EE 구조((http://java.sun.com/j2ee/download.html#platformspec)의 J2EE 플랫폼 사양 참조)에서 EJB 컨테이너는 J2EE Application Server가 호스팅합니다. Application Server는 트랜잭션 관리자, 지속성 관리자, 이름 서비스, JMS 공급자(메시징 및 MDB의 경우) 등과 같은 다양한 컨테이너가 필요로 하는 자원을 제공합니다.

Sun Java System Application Server에서 JMS 메시징 자원은 Sun Java™ System Message Queue가 제공합니다.

JMS 자원 어댑터

자원 어댑터는 J2EE 1.4를 준수하는 Application Server에 추가 기능을 플러그 인하는 표준화된 방법입니다. 표준은 J2EE Connector Architecture(J2EECA) 1.5 사양에 의해 정의됩니다. 이 구조를 통해 J2EE 1.4를 준수하는 Application Server는 표준 방식으로 외부 시스템과 상호 작용할 수 있습니다. 외부 시스템은 다양한 EIS(Enterprise Information System)를 비롯하여 JMS 공급자와 같은 다양한 메시징 시스템을 포함할 수 있습니다. Message Queue는 Application Server가 Message Queue를 JMS 공급자로 사용할 수 있도록 하는 JMS 자원 어댑터를 포함합니다.

J2EECA 1.5를 통해 가능하게 된 표준화된 상호 작용으로는 다양한 종류의 Message-Driven Bean 컨테이너에 대한 지원을 비롯하여 연결 풀링, 스레드 풀링, 트랜잭션 및 보안 컨텍스트 전파를 들 수 있습니다. 또한 이 사양은 연결 팩토리 및 기타 관리 객체를 만드는 표준화된 방식도 포함하고 있습니다.

JMS 자원 어댑터를 Application Server에 플러그 인하면 Application Server에서 배포되어 실행 중인 J2EE 구성 요소가 JMS 메시지를 교환할 수 있습니다. 이러한 구성 요소에 필요한 JMS 연결 팩토리 및 대상 관리 객체는 J2EE Application Server 관리 도구를 사용하여 만들고 구성할 수 있습니다.

그러나 메시지 서버 및 물리적 대상 관리와 같은 다른 관리 작업은 J2EECA 사양에 포함되어 있지 않으므로 공급자 고유의 도구를 통해서만 수행할 수 있습니다.

Message Queue 자원 어댑터는 Sun J2EE 1.4 Application Server에 통합되어 있습니다. 그러나, 아직 다른 J2EE 1.4 Application Server에서는 인증되지 않았습니다.

Message Queue 자원 어댑터는 단일 파일(imqjmsra.rar)이며, 이 파일이 있는 디렉토리는 운영 체제에 따라 다릅니다(Message Queue 관리 설명서 참조). imqjmsra.rar 파일은 자원 어댑터 배포 설명자(ra.xml)를 비롯하여 어댑터를 사용하기 위해 Application Server에서 필요한 JAR 파일도 포함합니다.

모든 J2EE -1.4 호환 Application Server에서 해당 Application Server와 함께 제공되는 자원 어댑터 배포 및 구성 지침에 따라 Message Queue 자원 어댑터를 사용할 수 있습니다. 상용 J2EE 1.4 Application Server가 출시되고 Message Queue 자원 어댑터가 이러한 Application Server에서 인증되면 Message Queue 문서에서 관련 배포 및 구성 절차에 대한 구체적인 정보를 제공할 것입니다.



이전      목차      색인      다음     


부품 번호: 819-2222.   Copyright 2005 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.