메시지 지향 미들웨어

메시지 지향 미들웨어()는 응용 소프트웨어 간의 데이터 통신을 위한 소프트웨어이며, 일반적으로 비동기 메시지 전달에 기초한 것을 가리킨다. 많은 메시지 지향 미들웨어는 메시지 큐 시스템을 기반으로 하지만, 그 밖에도 브로드캐스트 형식 메시지 시스템과 멀티 캐스트 형식의 메시지 시스템적인 내용도 있다.

 기원 
미들웨어라는 개념이 등장한 것은 비교적 늦다. 1980년대 이전 시스템과 새로운 응용 프로그램을 어떻게 연결하는가 하는 문제에 대한 해결책으로서 등장했다. 또한 분산 컴퓨팅을 장려하게 되었다. 즉, 컴퓨터 네트워크에서 여러 응용 프로그램을 연결하여 전체적으로 큰 응용 프로그램을 형성하게 된 것이다.

400px|center

 장점 
메시지 기반 통신 프로토콜의 장점은 메시지를 전달하는 과정에서 보관하거나 라우팅 및 변환 할 수 있다는 점이다.
 저장 
많은 메시지 지향 미들웨어는 전송되는 메시지의 백업을 유지함으로써 지속성을 제공한다. 즉, 송신 측과 수신 측 동시에 네트워크에 연결되어 있을 필요는 없다. 이는 네트워크의 품질이 낮거나 사용자가 임의로 전화 거는 경우나, 연결 시간에 제한이 있는 경우, 연결이 간헐적인 경우에 특히 유용하다. 또한 수신 측에서 문제가 발생하여 응용 프로그램이 중지되어 버려도 송신 측은 이에 영향을 받지 않고 전송을 계속할 수 있으며, 메시지를 저장해놓고 나중에 수신 응용 프로그램이 재개될 때 처리가 이루어진다.
 라우팅 
메시지 지향 미들웨어의 중요한 장점은 미들웨어 계층 자신이 직접 메시지 라우팅이 가능하다는 점을 들 수 있다. 이것을 이용하면 미들웨어에서 하나의 메시지를 여러 수신자에게 배포할 수도 있다(멀티캐스트).
 변환 
메시지 지향 미들웨어는 수신자가 수신 메시지는 보낸 사람이 보낸 메시지 그 자체일 필요는 없다. 지능형 시스템에서는 송신 측과 수신 측의 요구에 따라 메시지의 변환이 가능하다. 라우팅 및 브로드캐스트/멀티캐스트와 함께 사용하면 응용 프로그램이 메시지를 자신의 형식으로 발송하고 여러 개의 수신 응용 프로그램 고유의 형식으로 변환된 메시지를 받을 수 있다. 최근 메시지 지향 미들웨어는 정교한 메시지 변환 도구를 가지고 있으며, 프로그래머가 GUI를 사용하여 드래그 앤 드롭 방식으로 변환 규칙을 지정할 수 있도록 되어 있다.

 단점 
메시지 지향 미들웨어의 주요 단점은 아키텍처에 외부 구성 요소인 메시지 전송 에이전트를 필요로 한다는 점이다. 일반적으로 새로운 요소를 추가하면 시스템 성능이 저하되고, 신뢰성도 떨어진다. 또한 시스템 전체로 볼 때 관리가 어렵고 비용도 더 들어가게 된다. 게다가 애플리케이션 간의 통신은 본질적으로 동기이며, 전송 처리를 계속하기 전에 응답을 기다리도록 되어 있는 것이 보통이다. 메시지 기반 통신은 본질적으로 비동기이며, 불일치가 발생한다. 따라서 많은 메시지 지향 미들웨어는 요청을 그룹화하여 하나의 의사 동기 트랜잭션으로 응답하는 기능을 가지고 있다.

 표준의 부족 
메시지 지향 미들웨어는 표준이라고 부를 규격이 존재하지 않기 때문에 문제가 발생한다. 주요 업체들은 자체적으로 구현하고 있으며, 자체 API와 관리 도구를 가지고 있다.
Java EE 프로그래밍 환경에서 JMS (Java Message Service)라는 표준 API를 제공하고 있으며, 많은 업체들이 채택하고 있다. 마이크로소프트 MSMQ는 JMS를 지원하지 않지만, 타사가 그러한 제품을 제공하고 있다.

 같이 보기 
 엔터프라이즈 서비스 버스
 이벤트 기반 아키텍처
 참고 자료 
 Service-Oriented Architecture ( A Field Guide to Integrating XML and Web Services ) Author : Thomas Erl
 Sun 메시지 지향 미들웨어