IBM MQ
IBM MQIBM MQ는 1993년 12월 IBM이 출시한 메시지 중심의 미들웨어 제품군이다.원래는 MQSeries라고 불렸으며, WebSphere 제품군에 가입하기 위해 2002년에 WebSphere MQ로 개칭되었다.2014년 4월 IBM MQ로 개칭하였으며, MQ 계열에 포함되는 제품은 IBM MQ, IBM MQ Advanced, IBM MQ Appliance, IBM Z/OS용 MQ, IBM Cloud 상의 IBM MQ 등이다.IBM MQ는 또한 컨테이너형 배치 옵션을 가지고 있다.
MQ는 분산 시스템의 독립적이고 잠재적으로 비동일적인 애플리케이션이 메시지를 사용하여 서로 안전하게 통신할 수 있도록 한다.MQ는 z/OS(메인프레임), IBM i, Transaction Processing Facility, UNIX(AIX, HP-UX, Solaris), HP NonStop, OpenVMS, Linux 및 Microsoft Windows를 포함한 다수의 플랫폼(IBM과 비 IBM 모두)에서 사용할 수 있다.
MQ 구성 요소
MQ의 핵심 구성 요소는 다음과 같다.
- 메시지:메시지는 참여 프로그램에 어떤 의미가 있는 이진 또는 문자(예: ASCII 또는 EBCDIC) 데이터 모음입니다.다른 통신 프로토콜과 마찬가지로, 저장, 라우팅, 전달 정보는 송신 전에 메시지에 추가되고 수신 어플리케이션에 전달되기 전에 메시지에서 제거된다.
- 대기열: 메시지 대기열은 응용프로그램에 메시지를 저장하는 개체.
- 대기열 관리자: 메시지 대기열에 대한 논리 컨테이너를 제공하는 시스템 서비스.메시지 채널을 통해 다른 대기열 관리자에게 데이터를 전송하는 책임을 진다.메시지 지향 미들웨어에는 엄격히 요구되지는 않지만, IBM MQ의 전제 조건이다.대기열 관리자는 저장, 타이밍 문제, 트리거링 및 데이터의 실제 이동과 직접 관련이 없는 기타 모든 기능을 처리한다.
IBM MQ와 통합된 프로그램은 모든 플랫폼에 걸쳐 일관된 API(응용프로그램 인터페이스)를 사용한다.
메시징 유형
MQ는 포인트 투 포인트 및 게시 구독 메시징을 지원한다.
API
IBM이 직접 지원하는 API:
- C, COBOL, PL/I, Java, Rxx,[1] RPG 및 C++용 IBM MQI(Message Queue Interface)
- JMS(Java Message Service)
- C/C++ 및 의 XMS네트[2]
- .NET
- 대표 상태 전송
- 비누
추가 API(공식적으로 지원되지 않음)도 제3자를 통해 이용할 수 있으며, 다음과 같다.
- Perl 인터페이스(Hildo Biersma가 개발 및 기여), CPAN에서 사용 가능.[3]
- Python (프로그래밍 언어) 인터페이스 PyMQI(원래 Les Smithson에 의해 개발됨), Python에서 사용 가능PI[4]
- Windows PowerShell[5]
특징들
일회성 배송: MQ는 한 번, 한 번 배송만 사용한다.이러한 서비스 품질은 일반적으로 메시지 손실이나 복제를 방지한다.
비동기 메시징: MQ는 애플리케이션 설계자에게 시간 의존성이 없는 아키텍처를 달성할 수 있는 메커니즘을 제공한다.메시지는 애플리케이션이 동시에 실행되는지 여부에 관계없이 한 애플리케이션에서 다른 애플리케이션으로 전송될 수 있다.발신인이 메시지를 보낼 때 메시지 수신기 응용 프로그램이 실행되지 않는 경우, 큐 관리자는 수신자가 메시지를 요청할 때까지 메시지를 보관한다.모든 메시지의 순서는 보존되며, 기본적으로 메시지 우선순위 내의 로컬 대기열에서 FIFO 수신 순서가 된다.
데이터 변환: 예: Big Endian에서 Little Endian으로 또는 EBCDIC에서 ASCII로 변환.이것은 메시지 데이터 출구를 사용하여 이루어진다.종료는 큐 관리자 호스트에서 실행되는 컴파일된 애플리케이션이며, 데이터 변환이 필요한 시점에 IBM MQ 소프트웨어에 의해 실행된다.
메시지 기반 아키텍처 프레임워크: IBM MQ는 다른 응용프로그램 실행을 "트리거"하기 위한 메시지 수신을 허용한다.
API의 범위: Java Message Service(JMS) 표준 API를 구현하며, JMS가 존재하기 몇 년 전부터 존재했던 MQI(Message Queuing Interface)로 알려진 독자적인 API를 가지고 있다.버전 8.0.0.4를 기준으로 MQ는 MQ Light API도 지원한다.
클러스터링:다중 MQ 구현은 메시지 처리를 공유하여 로드 밸런싱을 제공한다.
커뮤니케이션
대기열 관리자는 다음 작업을 통해 외부와 통신한다.
- 바인딩: 직접 소프트웨어 연결.일반적으로 더 빠르지만 대기열 관리자와 동일한 물리적 호스트에서 실행되는 프로그램으로 제한됨.
- 네트워크 또는 "클라이언트" 연결: 클라이언트 연결을 사용하는 애플리케이션은 네트워크의 다른 호스트에 있는 대기열 관리자에 연결할 수 있다.네트워크를 통해 도달할 수 있는 한 큐 관리자의 물리적 위치는 무관하다.
대기열 관리자 간 통신
이것은 채널에 의존한다.각 대기열 관리자는 하나 이상의 채널을 사용하여 데이터를 다른 대기열 관리자로 보내고 받는다.채널은 단방향이다. 데이터를 반환하려면 두 번째 채널이 필요하다.TCP/IP 기반 네트워크에서, 채널은 특정 포트에서 데이터를 송신하거나 수신한다.
채널 유형:
- 송신 채널: 정의된 목적지를 가지고 있으며 특정 송신 대기열(채널에서 전송 대기 중인 메시지 대기열)과 연관되어 있다.
- 수신 채널: 동일한 이름의 송신 채널로 다른 대기열 관리자로부터 데이터를 수신한다.
수신 채널이 메시지를 수신할 때, 어떤 대기열 관리자와 대기열을 대상으로 하는지 검사한다.통신 장애 시 MQ는 문제가 해결되면 자동으로 연결을 재설정할 수 있다.
수신기는 대기열 관리자에 대한 응용 프로그램의 네트워크 인터페이스다.수신기는 수신 채널로부터의 연결을 검출하고, 송신 채널과 수신 채널의 연결을 관리한다.TCP/IP 네트워크에서, 수신기는 특정 포트의 연결을 "듣기"할 것이다.
다른 대기열 관리자의 대기열로 데이터 전송
대기열 유형:
- 로컬 대기열: 처리 대기 중인 데이터가 저장되는 위치를 나타낸다.
- 원격 대기열: 다른 대기열 관리자의 대기열을 나타냄그들은 메시지 라우팅 메커니즘의 한 요소인 대상 큐를 정의한다.
- 클러스터 대기열: 클러스터에 있는 대기열 관리자를 통해 연결할 수 있는 대기열을 나타낸다.
메시지가 원격 대기열에 배치된다.메시지는 채널과 연결된 임시 저장소 전송 대기열로 이동한다.메시지를 원격 큐에 놓으면 메시지가 원격 채널을 통해 전송된다.전송이 성공하면 메시지는 전송 대기열에서 제거된다.메시지를 수신할 때, 수신 대기열 관리자는 메시지를 검사하여 메시지가 자신을 위한 것인지 아니면 다른 대기열 관리자로 가야 하는지 여부를 결정한다.수신 대기열 관리자가 있으면 필요한 대기열이 확인되고, 존재하는 경우 메시지가 이 대기열에 배치된다.그렇지 않으면 메시지가 배달되지 않은 편지 대기열에 배치된다.MQ는 다양한 통신 매체에 걸쳐 데이터의 효율적인 전송을 관리하는 기능을 가지고 있다.예를 들어, 대기열이 특정 깊이에 도달할 때까지 메시지를 일괄적으로 일괄 처리할 수 있다.
주문
대기열이 FIFO이기는 하지만, 발신인의 메시지 커밋이 아닌 로컬 대기열의 영수증에 근거하여 주문한다.메시지는 우선순위를 정할 수 있으며, 기본적으로 큐는 도착 순서대로 우선순위를 정한다.대기열은 메시지가 로컬로 추가된 경우에만 추가된다.메시지 그룹화는 메시지 집합이 특정한 순서로 되어 있는지 확인하는 데 사용될 수 있다. 그 외에도 시퀀스가 중요한 경우, 메시지에 시퀀스 데이터를 배치하거나 리턴 대기열을 통해 핸드셰이킹 메커니즘을 구현하는 것은 응용 프로그램의 책임이다.현실적으로 순서는 간단한 구성으로 유지된다.
통나무
대기열 관리자의 다른 요소는 로그다.메시지가 대기열에 배치되거나 구성이 변경되면 데이터도 기록된다.장애가 발생할 경우 로그는 손상된 개체를 재생성하고 메시지를 재생성하는 데 사용된다.오류가 발생할 때 영구 메시지만 재생성 - "비영구적" 메시지가 손실됨.비지속성 메시지는 채널이 고장 났을 때 전달이 보장되지 않는 고속 모드로 채널 세트를 통해 전송될 수 있다.
MQ는 원형 및 선형 로깅을 모두 지원한다.
대기열에서 메시지 검색 중
적절한 간격으로 사용 가능한 데이터를 확인하기 위해 대기열을 폴링하여 대기열에서 정보를 검색하거나, 또는 MQ가 이벤트를 트리거하여 클라이언트 응용 프로그램이 메시지 배달에 응답할 수 있도록 할 수 있다.
유용성
IBM MQ는 가용성을 충족하기 위한 다양한 솔루션을 제공한다.
복제된 데이터 대기열 관리자(RDQM/'Easy HA'- MQ Advanced only distributed):모두 부동 IP 주소를 공유하는 세 서버 간의 동기식 복제.
대기열 관리자 클러스터: 하나 이상의 컴퓨터에 있는 둘 이상의 대기열 관리자 그룹을 클러스터에 정의하여 자동 상호 연결을 제공하고 부하 분산 및 이중화를 위해 대기열을 이들 간에 공유할 수 있도록 한다.
대기열 공유 그룹(z/OS 전용):공유 대기열 환경에서 응용 프로그램은 대기열 공유 그룹 내의 대기열 관리자에 연결할 수 있다.대기열 공유 그룹의 모든 대기열 관리자는 동일한 공유 대기열 집합에 액세스할 수 있으므로, 응용 프로그램은 특정 대기열 관리자의 가용성에 의존하지 않는다.이렇게 하면 대기열 공유 그룹의 다른 모든 대기열 관리자가 대기열을 계속 처리할 수 있기 때문에 대기열 관리자가 중지하는 경우 더 큰 가용성을 제공할 수 있다.
다중 인스턴스 대기열 관리자(v7.0.1에서 사용 가능):동일한 대기열 관리자의 인스턴스는 해당 대기열 및 메타데이터가 공유 저장소에 있는 두 개 이상의 컴퓨터에서 구성된다.여러 인스턴스를 시작하면 한 인스턴스가 활성 인스턴스가 되고 다른 인스턴스는 스탠드비스가 된다.활성 인스턴스가 실패하면 다른 컴퓨터에서 실행 중인 대기 인스턴스가 자동으로 인계된다.
역사
버전 릴리스 날짜
버전명 | 출시일자 |
---|---|
IBM MQ 9.2 LTS | 2020년[6] 7월 23일 |
IBM MQ 9.1 LTS | 2018년[7] 7월 23일 |
IBM 클라우드 기반 IBM MQ | 2018년 3월 13일 |
HPE 논스톱 8.0용 IBM MQ | 2017년 6월 23일 |
IBM MQ 9.0 LTS | 2016년 6월 2일 |
IBM MQ 8.0 | 2014년 5월 23일 |
WebSphere MQ 7.5 | 2012년 6월 15일 |
WebSphere MQ 7.1 | 2011년 11월 |
WebSphere MQ 7.0 z/OS | 2008년 6월 |
WebSphere MQ 7.0(분산, iSeries) | 2008년 5월 |
WebSphere MQ 6.0 z/OS | 2005년 6월 |
WebSphere MQ 6.0(분산, iSeries) | 2005년 5월 |
WebSphere MQ 5.3 z/OS | 2002년 6월 |
WebSphere MQ 5.3(분산, iSeries) | 2002년 6월, 7월, 10월, 11월 |
MQSeries 5.2(분산) | 2000년 12월 |
OS/390 V5.2용 MQSeries | 2000년 11월 |
AS/400 V5.1용 MQSeries | 2000년 7월 8일 |
OS/390 V2.1용 MQSeries | 1999년 2월 |
MQSERIS 5.1 | 1999년 4월 (NT), 6월 |
AS/400 V4.2용 MQSeries | 1998년 2월 |
MQSERIS 5.0 | 1997년 10월 |
MVS/ESA 1.2용 MQSeries | 1997년 8월 29일 |
MVS 1.1.4에 대한 MQSeries, | 1996년 6월 |
MQSeries 2.2(Sun OS/Solaris, DC/OSX) | 1996년 6월 7월 |
MQSeries 2.0 Windows NT | 1996년 2분기 |
MQSeries 2.2(HP, SCO) | 1995년 4분기 |
MVS용 MQSeries 1.1.3 | 1995년 5월 |
MQSeries 2.0(OS/2, AIX) | 1995년 2월 (ezBridge 종말의 시작) |
MQM/400 V3 | 1994년 4분기 |
MQSeries 3.0용 ezBridge Transact | 1994년 7월 |
MVS용 MQSeries 1.1.2 | 1994년 6월 |
MQM/400 V2.3 | 1994년 2월 4일 |
이지브릿지 MQSeries용 거래 | 3월, 9월, 11월, DSA |
MVS V1.1.1용 MQSeries | 1993년 12월 31일 |
지원 날짜의 버전 종료
다음 표는 MQ 소프트웨어에 적용된다.MQ Appliance는 펌웨어와 하드웨어의 라이프사이클 날짜가 표와 다르다.[11]
버전명 | 일반 가용성 | 마케팅 종료 | 지원 종료 |
---|---|---|---|
IBM MQ 9.1 | 2018년 7월 23일 | - | - |
IBM MQ 9.0 | 2016년 6월 2일 | 2021년 9월 17일 | 2021년 9월 30일 |
IBM MQ 8.0 | 2014년 6월 13일 | 2020년 4월 17일 | 2020년 4월 30일 |
WebSphere MQ 7.5 | 2012년 7월 6일 | 2016년 12월 16일 | 2018년 4월 30일 |
WebSphere MQ 7.1 | 2011년 11월 25일 | 2016년 7월 12일 | 2017년 4월 30일 |
배경 건축 참고 자료
컴퓨터의 등장으로 IBM은 새로운 기술을 메시지 전환의 필요성에 적용할 수 있는 기회를 얻었다.
1960년대 초 IBM은 프로그래밍 가능한 메시지 전환 시스템인 IBM 7740 Communication Control System과 IBM 7750 Programmed Transmission Control을 출시하였다.
IBM System/360은 1964년 4월에 발표되었으며, BTAM과 QTAM(기본 및 대기 중 통신 액세스 방법)과 같은 통신 액세스 방법이 나왔다.1971년, TCAM, 전기통신접근법은 사용자들에게 보다 발전된 형태의 메시지 교환이나 메시지 라우팅 방식을 제공했다.TCAM은 특히 금융과 중개업에서 널리 받아들여졌다.그것은 비동기 메시징을 지원했는데, 이는 곧 복구하기 위해 재사용 가능한 디스크 메시지 큐에 추가된 MQ. TCAM 3.0과 마찬가지로, MQ와 마찬가지로. 높은 수준의 PL/I 프로그램을 사용하여 과도 데이터셋(동적 메시지 큐)에 액세스할 수 있다.MQ의 비브라우저 READ와 마찬가지로 과도 데이터 집합에서 메시지를 읽으면 해당 메시지가 대기열에서 제거된다.
1970년대 후반에는, 거래 관리 시스템이 생겨났고, 각각은 업계의 리더 자리를 차지하기 위해 노력했다.IBM 내에서는 CICS와 IMS가 거래관리의 필요성을 해소하는 전략제품으로 선택되었다.CICS와 IMS 내에서, 각각은 메시지 전환의 버전을 가지고 있었고, IMS는 프런트엔드 대기열 시스템이며, CICS는 메시지 전환의 가능한 기초로 Transient Data 기능을 가지고 있었다.[citation needed]
CICS는 1968-1971년 사이에 인기 있는 거래 관리 시스템으로 자리매김했다.메시지 처리 능력을 위해 TCAM을 채택한 사용자들은 이제 TCAM을 CICS와 결합하여 사용하기를 원했다.1971년 12월, IBM은 1972년 12월에 납품될 CICS/OS-Standard 제품의 일부로 TCAM에 대한 CICS 지원을 발표했다.관심 있는 고객에게는 메시지 처리 강도에 TCAM을 사용할 수 있었고, TCAM으로 연결된 단말기나 CICS 온라인 애플리케이션과의 컴퓨터 인터페이스를 가질 수 있었다.[citation needed]
1973년 1월, TCAM은 계속 CICS/OS-표준 버전 2.3에 의해 지원되었다.그러나, 1973년 2월에 발표되어 1974년 6월에 납품된 CICS/VS의 초기 출시에서는 TCAM 지원이 생략되었다.말할 필요도 없이, 많은 CICS-TCAM 고객들은 그러한 제품 방향에 만족하지 않았다.
CICS-TCAM 고객의 상당한 압박으로 TCAM의 CICS 지원은 1974년 9월 현재 CICS/VS 1.1 제품에서 복구되었다.이전의 DCB 지원 외에도, 이러한 TCAM 지원의 복원으로 CICS는 ACB 지원이라고도 하는 VTAM을 통한 TCAM 액세스를 지원하기 시작했다.CICS TCAM ACB 지원은 1990년 CICS/ESA 버전 3 제품으로 중단되었다.
1992년에 IBM은 MQSeries라는 새로운 제품을 발표했다.이 브랜드 이름은 이후 WebSphere 제품명과 제품을 지원하기 위해 2002년에 WebSphere MQ(WMQ로 단축되기도 한다)로 이름이 바뀌었다.2014년에 IBM MQ로 개칭되었다. MQ는 IBM 전용 시스템에서 다른 모든 플랫폼으로 TCAM 기능을 확장하는 것이 될 예정이었다.MQ는 이기종 시스템이 서로 통신할 수 있도록 하는 아키텍처(예: IBM, HP, Sun, Tandem 등)를 가지고 있다.MQ는 CICS 시스템과 함께 사용하여 다른 MQ 허용 시스템으로부터 데이터를 송수신할 수 있다.MQ를 사용하여 CICS 시스템에서 작업을 개시하거나 CICS 트랜잭션이 다른 CICS 또는 비 CICS 시스템에서 작업을 개시할 수 있다.
IBM MQ는 현재 80개의 다양한 환경을 지원하며 업계 최고의 메시지 보증 배달 전환/라우팅 제품이 되었다.[12]
MQ 및 웹 서비스
IBM MQ는 서비스 지향 아키텍처를 만드는 기반으로서 사용될 수 있다.MQ의 사용을 통해 레거시 프로그램을 기능적인 웹 서비스로 전환하는 데 도움이 되는 몇 가지 추가 제품 옵션이 존재한다. 더 크고 이기종인 기업들은 종종 사업, 기능 또는 거버넌스 분야에 기초하여 다소 자율적인 도메인의 연합으로 보인다.이러한 환경에서 일부 서비스는 단일 도메인 내에서만 공유되거나 재사용될 수 있는 반면, 다른 서비스는 전사적으로 공유되거나 재사용될 수 있다.IBM MQ는 LOB(Line of Business) 또는 다른 별도 비즈니스 영역 간에 통신이 존재하는 수단을 제공한다.
IBM MQ 제품군의 관련 제품인 IBM Integration Bus(이전의 WebSphere Message Broker)는 큐 기반 아키텍처에 대한 다양하고 강력한 확장을 가능하게 한다.사용자는 IBM Integration Bus를 사용하여 모든 대기열 기반 응용프로그램과 상호 작용할 수 있는 WSDL 파일 지원으로 완전한 WebServices 프런트엔드를 구현할 수 있다.
참고 항목
참조
- ^ "MA95: A REXX interface to WebSphere MQ". Retrieved 2014-10-09.
- ^ "Introducing XMS -- The IBM Message Service API". Retrieved 2007-12-06.
- ^ MQSeries - MQSeries 지원을 위한 Perl 확장 - search.cpan.org
- ^ "PyMQI Documentation". Archived from the original on 2013-01-17. Retrieved 2010-09-03.
- ^ "MO74: WebSphere MQ - Windows Powershell Library". Retrieved 2007-12-06.
- ^ "IBM announcement of IBM MQ 9.2". International Business Machines (IBM). Retrieved 22 October 2020.
- ^ "IBM announcement of IBM MQ 9.1". International Business Machines (IBM). Retrieved 6 August 2018.
- ^ "IBM announcement of IBM MQ on IBM Cloud". International Business Machines (IBM). Retrieved 6 August 2018.
- ^ "IBM announcement of IBM MQ 9.0". International Business Machines (IBM). Retrieved 17 June 2016.
- ^ "MQSeries for MVS/ESA Version 1.2". International Business Machines (IBM). Retrieved 10 Dec 2018.
- ^ "IBM Software Support Lifecycle".
- ^ "IBM WebSphere MQ V7.1 is enhanced with lower cost of ownership, improved time to value, and more configurable security". IBM United States Software Announcement 211-395. IBM. October 4, 2011.