IBM MQ

IBM MQは、IBMが1993年12月に発表したメッセージ指向ミドルウェア製品ファミリーです。当初はMQSeriesと呼ばれていましたが、 2002年にWebSphere製品スイートに加わるためWebSphere MQに改名されました。2014年4月にはIBM MQに改名されました。MQファミリーに含まれる製品は、IBM MQ、IBM MQ Advanced、IBM MQ Appliance、IBM MQ for z/OS、IBM MQ on IBM Cloudです。IBM MQには、コンテナ化されたデプロイメントオプションも用意されています。

MQ を使用すると、分散システム上の独立した、潜在的に非同時的なアプリケーションが、メッセージを使用して安全に相互通信できます。MQ は、z/OSメインフレーム)、IBM i 、トランザクション処理機能UNIXAIXHP-UXSolaris)、HP NonStopOpenVMSLinuxMicrosoft Windowsなど、多数のプラットフォーム( IBM および IBM 以外)で利用できます

MQコンポーネント

MQ のコアコンポーネントは次のとおりです。

  • メッセージ:メッセージは、参加プログラムにとって何らかの意味を持つバイナリまたは文字(例えばASCIIEBCDIC )データの集合です。他の通信プロトコルと同様に、保存、ルーティング、配信情報は送信前にメッセージに追加され、受信側アプリケーションに配信される前にメッセージから削除されます。
  • キュー:メッセージ キューは、アプリケーション内のメッセージを保存するオブジェクトです。
  • キューマネージャー:メッセージキューの論理コンテナを提供するシステムサービス。メッセージチャネルを介して他のキューマネージャーにデータを転送する役割を担います。メッセージ指向ミドルウェアでは必須ではありませんが、IBM MQの前提条件です。キューマネージャーは、ストレージ、タイミングの問題、トリガー、および実際のデータ移動に直接関係のないその他のすべての機能を処理します。

IBM MQ と統合されたプログラムは、すべてのプラットフォームにわたって一貫したアプリケーション プログラム インターフェース (API) を使用します。

メッセージングの種類

MQ は、ポイントツーポイントおよびパブリッシュ サブスクライブメッセージングをサポートします。

API

IBM が直接サポートする API には次のものがあります:

次のような追加の API (公式にはサポートされていません) もサードパーティ経由で利用できます。

特徴

ワンタイム配信:MQはワンタイム配信のみを使用します。このサービス品質により、通常、メッセージの損失や重複が防止されます。

非同期メッセージング:MQは、アプリケーション設計者に時間に依存しないアーキテクチャを実現するメカニズムを提供します。アプリケーションが同時に実行されているかどうかに関係なく、あるアプリケーションから別のアプリケーションにメッセージを送信できます。送信側がメッセージを送信した際に受信側アプリケーションが実行中でない場合、キューマネージャは受信側が要求するまでメッセージを保持します。すべてのメッセージの順序は保持され、デフォルトでは、メッセージの優先度内でローカルキューに受信されたFIFO順になります。

データ変換:例:ビッグエンディアンからリトルエンディアン、またはEBCDICからASCII 。これは、メッセージデータ出口を使用することで実現されます。出口は、キューマネージャーホスト上で実行されるコンパイル済みアプリケーションであり、データ変換が必要なときにIBM MQソフトウェアによって実行されます。

メッセージ駆動型アーキテクチャ フレームワーク: IBM MQ では、メッセージを受信して​​他のアプリケーションの実行を「トリガー」できます。

APIの幅広い範囲: Java Message Service (JMS)標準APIを実装するほか、JMSより数年前から存在するMessage Queuing Interface(MQI)と呼ばれる独自のAPIも備えています。バージョン8.0.0.4以降、MQはMQ Light APIもサポートしています。

クラスタリング: 複数の MQ 実装がメッセージの処理を共有し、負荷分散を実現します。

コミュニケーション

キュー マネージャーは、次のいずれかの方法で外部と通信します。

  • バインディング:直接的なソフトウェア接続。一般的に高速ですが、キューマネージャーと同じ物理ホスト上で実行されるプログラムに限定されます。
  • ネットワーク接続または「クライアント」接続:クライアント接続を使用するアプリケーションは、ネットワーク内の任意のホスト上のキューマネージャーに接続できます。キューマネージャーの物理的な場所は、ネットワーク経由でアクセスできる限り、関係ありません。

キューマネージャー間の通信

これはチャネルに依存します。各キューマネージャーは、1つ以上のチャネルを使用して他のキューマネージャーとデータを送受信します。チャネルは単方向であり、データを返すには別のチャネルが必要です。TCP/IPベースのネットワークでは、チャネルは特定のポートでデータを送受信します。

チャネルの種類:

  • 送信チャネル: 定義された宛先があり、特定の送信キュー (チャネル上で送信を待機するメッセージをキューに入れるメカニズム) に関連付けられています。
  • 受信チャネル: 同じ名前の送信チャネルを持つ他のキュー マネージャーからデータを受信します。

受信チャネルがメッセージを受信すると、そのメッセージがどのキューマネージャーとキューに宛てられているかが調べられます。通信障害が発生した場合、問題が解決されるとMQは自動的に接続を再確立します。

リスナー、キューマネージャへのアプリケーションのネットワークインターフェースです。リスナーは、受信チャネルからの接続を検出し、送信チャネルと受信チャネル間の接続を管理します。TCP/IPネットワークでは、リスナーは特定のポートで接続を「待機」します。

別のキューマネージャー上のキューにデータを送信する

キューの種類:

  • ローカル キュー: 処理を待機しているデータが格納される場所を表します。
  • リモートキュー: 別のキューマネージャー上のキューを表します。メッセージのルーティングメカニズムの要素の一つである宛先キューを定義します。
  • クラスター キュー: クラスター内の任意のキュー マネージャーを介してアクセスできるキューを表します。

メッセージはリモート キューに配置されます。メッセージは、チャネルに関連付けられた一時ストレージ伝送キューに送られます。メッセージがリモート キューに配置されると、メッセージはリモート チャネルを介して送信されます。送信が成功すると、メッセージは送信キューから削除されます。メッセージを受信すると、受信側キュー マネージャーはメッセージを調べて、そのメッセージが自分宛てのものか、または別のキュー マネージャーに送信する必要があるかを判断します。受信側キュー マネージャーの場合、必要なキューがチェックされ、存在する場合は、メッセージはこのキューに配置されます。存在しない場合は、メッセージはデッド レター キューに配置されます。MQ には、さまざまな通信メディア間での効率的なデータ送信を管理する機能があります。たとえば、キュ​​ーが特定の深さに達するまで、メッセージをまとめてバッチ処理することができます。

注文

キューはFIFOですが、送信者からのメッセージのコミットではなく、ローカルキューへの受信に基づいて順序付けされます。メッセージには優先順位を付けることができ、デフォルトではキューは到着順に優先順位付けされます。メッセージがローカルに追加された場合にのみ、キューは追加順に並びます。メッセージのグループ化は、一連のメッセージが特定の順序で並ぶようにするために使用できますが、順序が重要な場合は、アプリケーション側でメッセージに順序データを配置するか、リターンキューを介してハンドシェイク機構を実装する必要があります。実際には、単純な構成で順序付けは維持されます。

ログ

キューマネージャーのもう一つの要素はログです。メッセージがキューに配置されるか、設定が変更されると、そのデータもログに記録されます。障害が発生した場合、ログは破損したオブジェクトとメッセージを再作成するために使用されます。障害発生時には永続メッセージのみが再作成され、「非永続」メッセージは失われます。非永続メッセージは、高速モードに設定されたチャネルを介して送信できます。このモードでは、チャネル障害発生時に配信が保証されません。

MQ は循環ログと線形ログの両方をサポートします。

キューからのメッセージの取得

キューから情報を取得するには、適切な間隔でキューをポーリングして利用可能なデータを確認するか、または MQ がイベントをトリガーしてクライアント アプリケーションがメッセージの配信に応答できるようにします。

可用性

IBM MQ は、可用性に対応するためのさまざまなソリューションを提供します。

複製データ キュー マネージャー (RDQM /「Easy HA」 - 分散型のみの MQ Advanced):浮動 IP アドレスを共有する 3 台のサーバー間の同期レプリケーション。

キュー マネージャー クラスター: 1 台以上のコンピューター上の 2 つ以上のキュー マネージャーのグループがクラスターに定義され、自動相互接続が提供され、負荷分散と冗長性のためにキューをそれらの間で共有できるようになります。

キュー共有グループ(z/OSのみ):共有キュー環境では、アプリケーションはキュー共有グループ内の任意のキュー・マネージャーに接続できます。キュー共有グループ内のすべてのキュー・マネージャーが同じ共有キュー・セットにアクセスできるため、アプリケーションは特定のキュー・マネージャーの可用性に依存しません。これにより、あるキュー・マネージャーが停止しても、キュー共有グループ内の他のすべてのキュー・マネージャーがそのキューの処理を続行できるため、可用性が向上します。

マルチインスタンス・キューマネージャー(バージョン7.0.1以降で利用可能):同じキューマネージャーのインスタンスを2台以上のコンピュータ上に構成し、キューとメタデータを共有ストレージ上に配置します。複数のインスタンスを起動すると、1つのインスタンスがアクティブインスタンスになり、他のインスタンスはスタンバイインスタンスになります。アクティブインスタンスに障害が発生した場合、別のコンピュータで実行されているスタンバイインスタンスが自動的に処理を引き継ぎます。

歴史

バージョンリリース日

バージョン名発売日
IBM MQ 9.4 LTS2024年6月18日
IBM MQ 9.3 LTS2022年6月23日
IBM MQ 9.2 LTS2020年7月23日[6]
IBM MQ 9.1 LTS2018年7月23日[7]
IBM Cloud 上の IBM MQ2018年3月13日[8]
IBM MQ for HPE ノンストップ 8.02017年6月23日
IBM MQ 9.0 LTS2016年6月2日[9]
IBM MQ 8.02014年5月23日
WebSphere MQ 7.52012年6月15日
WebSphere MQ 7.12011年11月
WebSphere MQ 7.0 z/OS2008年6月
WebSphere MQ 7.0 (分散、iSeries)2008年5月
WebSphere MQ 6.0 z/OS2005年6月
WebSphere MQ 6.0 (分散、iSeries)2005年5月
WebSphere MQ 5.3 z/OS2002年6月
WebSphere MQ 5.3 (分散、iSeries)2002年6月、7月、10月、11月
MQSeries 5.2 (分散型)2000年12月
OS/390 用 MQSeries V5.22000年11月
AS/400 用 MQSeries V5.12000年7月~8月
OS/390 用 MQSeries V2.11999年2月
MQシリーズ 5.11999年4月(NT)、6月
AS/400 用 MQSeries V4.21998年2月
MQシリーズ 5.01997年10月
MVS/ESA 1.2 用 MQSeries1997年8月29日[10]
MVS 1.1.4 用 MQSeries、1996年6月
MQSeries 2.2 (Sun OS/Solaris、DC/OSx)1996年6月、7月
MQシリーズ 2.0 Windows NT1996年第2四半期
MQシリーズ 2.2 (HP、SCO)1995年第4四半期
MVS 1.1.3 用 MQSeries1995年5月
MQシリーズ 2.0 (OS/2、AIX)1995年2月(ezBridgeの終焉の始まり)
MQM/400 V31994年第4四半期
MQSeries 3.0 向け ezBridge Transact1994年7月
MVS 1.1.2 用 MQSeries1994年6月
MQM/400 V2.31994年2月/4月
MQSeries 向け ezBridge Transact1993年3月、9月、11月、12月(異なるプラットフォーム)
MVS 用 MQSeries V1.1.11993年12月31日

バージョンのサポート終了日

以下の表はMQソフトウェアに適用されます。MQアプライアンスのファームウェアとハ​​ードウェアのライフサイクルは、表に記載されているものと異なります。[11]

バージョン名一般提供マーケティングの終了サポート終了
IBM MQ 9.42024年6月18日--
IBM MQ 9.32022年6月23日--
IBM MQ 9.22020年7月23日-2025年9月30日
IBM MQ 9.12018年7月23日2023年9月15日2023年9月30日
IBM MQ 9.02016年6月2日2021年9月17日2021年9月30日
IBM MQ 8.02014年6月13日2020年4月17日2020年4月30日
WebSphere MQ 7.52012年7月6日2016年12月16日2018年4月30日
WebSphere MQ 7.12011年11月25日2016年7月12日2017年4月30日

背景建築参考資料

コンピュータの出現により、IBM はメッセージ交換のニーズに新しいテクノロジーを適用する機会を見出しました。

1960 年代初頭、IBM は、プログラム可能なメッセージ交換システムである IBM 7740 通信制御システムと IBM 7750 プログラム伝送制御を販売しました。

IBM System/360 は 1964 年 4 月に発表され、BTAMQTAM (基本およびキュー型電気通信アクセス方式) などの通信アクセス方式が導入されました。1971 年には、電気通信アクセス方式であるTCAMにより、より高度な形式のメッセージ交換またはメッセージ ルーティングがユーザーに提供されました。TCAM は、特に金融業界や証券業界で広く受け入れられました。後の MQ と同様に、非同期メッセージングがサポートされていました。その後すぐに、TCAM 3.0 では、MQ と同様に、回復用に再利用可能なディスク メッセージ キューが追加されました。高水準 PL/I プログラムを使用して、TRANSIENT データ セット (動的メッセージ キュー) にアクセスできました。一時データ セットからメッセージを読み取ると、MQ による非ブラウズ READ と同様に、そのメッセージがキューから削除されました。

1970年代後半には、トランザクション管理システムが登場し、それぞれが業界におけるリーダーシップの地位を確立しようと試みました。IBMでは、トランザクション管理のニーズに応えるための戦略的製品として、 CICSIMSが選ばれました。CICSとIMSにはそれぞれ独自のメッセージ交換機能があり、IMSはフロントエンドのキューシステムであり、CICSはメッセージ交換の基盤として一時データ機能を備えていました。[要出典]

CICSは1968年から1971年にかけて、広く普及したトランザクション管理システムとしての地位を確立しました。メッセージ処理機能のためにTCAMを採用していたユーザーは、CICSとTCAMの併用を望むようになりました。1971年12月、IBMはCICS/OS標準製品の一部としてCICSによるTCAMのサポートを発表し、1972年12月に提供開始を予定していました。これにより、関心のある顧客はTCAMのメッセージ処理機能を活用し、TCAMに接続された端末やコンピュータをCICSオンラインアプリケーションと連携させることが可能になりました。[要出典]

1973年1月、TCAMはCICS/OS標準バージョン2.3で引き続きサポートされました。しかし、1973年2月に発表され1974年6月に提供されたCICS/VSの初期リリースでは、TCAMのサポートは省略されていました。言うまでもなく、多くのCICS-TCAM顧客は、この製品の方向性に満足していませんでした。

CICS-TCAMの顧客からの強い要望により、1974年9月、CICS/VS 1.1製品においてCICSのTCAMサポートが復活しました。このTCAMサポートの復活に伴い、CICSは従来のDCBサポートに加えて、VTAM経由のTCAMアクセス(ACBサポートとも呼ばれます)のサポートを開始しました。CICS TCAMのACBサポートは、1990年のCICS/ESAバージョン3製品をもって廃止されました。

1992年、IBMはMQSeriesという新製品を発表しました。このブランド名は、WebSphereファミリー名と製品をサポートするために、2002年にWebSphere MQに改名されました(ただし、公式の短縮名はMQのままです)。2014年にはIBM MQに改名されました。MQは、IBM専用システムから他のすべてのプラットフォームへのTCAM機能の拡張となるはずでした。MQは、異機種システム(IBM、HP、Sun、Tandemなど)が相互に通信できるようにするアーキテクチャを備えています。MQをCICSシステムと併用することで、他のMQ対応システムとの間でデータを送受信できます。MQを使用してCICSシステムで作業を開始したり、CICSトランザクションを使用して別のCICSシステムまたは非CICSシステムで作業を開始したりできます。

IBM MQは現在80種類の異なる環境をサポートしており、業界をリードするメッセージ保証配信スイッチング/ルーティング製品となっています。[12]

MQとWebサービス

IBM MQは、サービス指向アーキテクチャー(SOA)を構築するための基盤として使用できます。MQを使用することで、レガシープログラムを機能的なWebサービスに変換するための追加製品オプションもいくつか用意されています。大規模で異機種混在の企業は、多くの場合、事業分野、機能、またはガバナンス領域に基づいて、ある程度自律的なドメインの連合体として形成されます。このような環境では、一部のサービスは単一のドメイン内でのみ共有または再利用される一方、他のサービスは企業全体で共有または再利用されることがあります。IBM MQは、事業分野間、あるいは別個のビジネスドメイン間で通信を行う手段を提供します。

IBM MQ 製品ファミリーの関連製品であるIBM App Connect Enterprise (旧称 IBM Integration Bus / WebSphere Message Broker)は、キューベースのアーキテクチャーに多様かつ堅牢な拡張機能を提供します。IBM Integration Bus を使用することで、ユーザーはWSDLファイルのサポートを備えた Web サービス フロントエンドを実装し、あらゆるキューベースのアプリケーションと連携できます。

参照

参考文献

  1. ^ 「MA95: WebSphere MQへのRexxインターフェース、バージョン1.0.2」(PDF) . IBM. 2010年. 2024年11月24日閲覧
  2. ^ 「IBM MQ 9.4 - XMS .NETアプリケーションの開発」IBM、2024年7月2日。
  3. ^ 「MQSeries - MQSeries サポート用の Perl 拡張」。metacpan.org
  4. ^ 「PyMQIドキュメント」。2013年1月17日時点のオリジナルよりアーカイブ2010年9月3日閲覧。
  5. ^ 「MO74: WebSphere MQ - Windows Powershell ライブラリ」。IBM。
  6. ^ 「IBMによるIBM MQ 9.2の発表」International Business Machines (IBM) 2020年7月21日. 2020年10月22日閲覧
  7. ^ 「IBMによるIBM MQ 9.1の発表」International Business Machines (IBM) 2018年7月3日. 2018年8月6日閲覧
  8. ^ 「IBM、IBM Cloud上のIBM MQを発表」International Business Machines (IBM) . 2018年8月6日閲覧
  9. ^ 「IBMによるIBM MQ 9.0の発表」International Business Machines (IBM) 2016年4月19日. 2016年6月17日閲覧
  10. ^ 「MQSeries for MVS/ESA バージョン 1.2」。International Business Machines (IBM)。1997年7月8日。 2018年12月10日閲覧
  11. ^ 「IBM サポート - 製品ライフサイクル - 概要」。IBM。
  12. ^ 「IBM WebSphere MQ V7.1は、所有コストの削減、価値実現までの時間の短縮、そしてより柔軟なセキュリティ設定機能など、機能強化が図られています。」IBM米国ソフトウェア発表211-395。IBM。2011年10月4日。
この記事を聞く22
音声ウィキペディアアイコン
この音声ファイルは、2011 年 10 月 29 日付の記事の改訂版から作成されたもので、その後の編集は反映されていません。 (2011年10月29日
  • IBM MQ 製品ページ
「https://en.wikipedia.org/w/index.php?title=IBM_MQ&oldid=1309354893」から取得