Message Queue 메시징은 HTTP/HTTPS 연결 위에서 실행할 수 있습니다. HTTP/HTTPS 연결은 보통 방화벽을 통해서도 허용되기 때문에 이렇게 하면 방화벽으로 클라이언트 응용 프로그램과 브로커를 분리할 수 있습니다.
그림 C–1에서는 HTTP/HTTPS 지원과 관련된 주요 구성 요소를 보여줍니다.
클라이언트쪽에서는 HTTP 또는 HTTPS 전송 드라이버가 Message Queue 메시지를 HTTP 요청으로 캡슐화하고 요청이 정확한 순서로 웹 서버/응용 프로그램 서버에 전송되는지 확인합니다.
클라이언트는 필요한 경우 HTTP 프록시 서버를 사용해서 브로커와 통신할 수 있습니다. 프록시의 주소는 클라이언트를 시작할 때 명령줄 옵션을 사용하여 지정합니다. 자세한 내용은 HTTP 프록시 사용을 참조하십시오.
HTTP 또는 HTTPS 터널 서블릿(모두 Message Queue와 함께 제공)이 웹 서버/응용 프로그램 서버에 로드되고 페이로드 메시지를 브로커로 전달하기 전에 클라이언트 HTTP 요청으로부터 추출하는 데 사용됩니다. HTTP/HTTPS 터널 서블릿은 클라이언트에서 이루어진 HTTP 요청에 대한 응답으로 브로커 메시지를 클라이언트에 다시 보내는 작업도 수행합니다.한 HTTP/HTTPS 터널 서블릿을 사용하여 여러 브로커에 액세스할 수 있습니다.
브로커 측에서는 httpjms 또는 httpsjms 연결 서비스가 해당 터널 서블릿에서 들어오는 메시지를 분해하고 다중화를 해제합니다.
웹 서버/응용 프로그램 서버가 오류로 다시 시작되면 모든 연결이 복원되며 클라이언트에는 아무 영향도 주지 않습니다. 브로커가 오류로 다시 시작되면 예외가 발생하며 클라이언트는 연결을 다시 설정해야 합니다. 드물기는 하지만, 웹 서버/응용 프로그램 서버와 브로커에 모두 오류가 발생하고 브로커가 다시 시작되지 않은 경우에는 웹 서버/응용 프로그램 서버가 클라이언트 연결을 복원한 후 클라이언트에 알리지 않고 브로커 연결을 계속 기다릴 수 있습니다. 이런 상황을 방지하려면 항상 브로커를 다시 시작해야 합니다.
그림 C–1에서 알 수 있듯이, HTTP와 HTTPS가 지원하는 구조는 서로 매우 비슷합니다. 가장 큰 차이는 HTTPS(httpsjms 연결 서비스)의 경우 터널 서블릿이 클라이언트 응용 프로그램과 브로커 모두에 대해 보안 연결을 갖는다는 점입니다.
브로커에 대한 보안 연결은 Message Queue의 HTTPS 터널 서블릿에 해당하는 SSL 사용 터널 서블릿을 통해 제공되며 연결을 요청하는 브로커에 자체 서명된 인증서를 전달합니다. 인증서는 브로커가 HTTPS 터널 서블릿에 대해 암호화된 연결을 설정할 때 사용합니다. 이 연결이 설정되고 나면 클라이언트 응용 프로그램과 웹 서버/응용 프로그램 서버에서 클라이언트 응용 프로그램과 터널 서블릿 사이의 보안 연결을 처리할 수 있습니다.