Skip to content

MQの基礎

IBM MQ は、堅牢で信頼性が高く、安全なメッセージング・ソリューションです。IBM MQ は、複数のプラットフォームにまたがるさまざまなアプリケーションの統合を簡素化および高速化し、幅広い API と言語をサポートしています。

IBM MQは、アプリケーションが信頼性と拡張性のある方法でデータを通信・交換することを可能にし、アプリケーションを別のアプリケーションから切り離します。このようにして、MQは、異なるフレームワーク、言語、プラットフォーム、クラウド、場所で実行されるアプリケーションの統合を支援します。MQが問題を解決してアプリケーションを統合してくれるので、好きなようにアプリケーションを書くことができます。

IBM MQにより、サーバーインフラはデータセンター、メインフレーム、クラウドのフレームワークにまたがることができます。ソフトウェアとハードウェアの両方で実装されたIBM MQは、独立したアプリケーション間のエンタープライズ強度の通信を提供します。さらに、それらのアプリケーションを開発する際の複雑さを軽減します。

IBM MQ はどのようにしてアプリケーション間の通信を簡素化するのですか?

Max Kahan氏が、IBM MQを使用してアプリケーション間の通信を簡素化することの利点を説明します。

2つ以上のアプリケーションの間にメッセージングインフラを配置するということは、アプリケーション同士が直接通信しているわけではありません。実際には、ミドルウェアを介してやりとりされます。

通信しているアプリケーションの図

具体的には、一方のアプリケーションが他方のアプリケーションのために情報をメッセージに入れ、それをメッセージキューに入れます。

通信しているアプリのグラフィック、メッセージキュー

このように、メッセージングでは、キューが利用可能性を提供するため、アプリケーションが同時に利用可能である必要はありません。このモデルは、非同期メッセージングとして知られています。

非同期メッセージングの図

片方のアプリケーションがなくなっても、もう片方のアプリケーションより遅くなっても、メッセージキューイングは双方の不安定さを処理することで「ショックアブソーバー」を提供します。

メッセージキューイングの図

IBM MQの基礎知識

IBM MQを理解するための重要なコンセプトをいくつか見てみましょう。 もしよろしければ、以下を読む前に、Max Kahanが概念を説明している様子をご覧ください。

メッセージ、キュー、チャンネル

メッセージは、アプリケーションで生成・消費されるデータのパッケージです。

キューは、メッセージを配送し、消費されるまで確実に保管するためのアドレス可能な場所です。

キューマネージャは、キューをホストするMQサーバです。

チャンネルは、キューマネージャが相互に、またアプリケーションと通信するための手段です。

メッセージ、キュー、キューマネージャー、チャンネルの図

MQネットワーク

MQネットワークは、相互に接続されたキューイングマネージャの緩やかな集合体であり、すべてのキューイングマネージャが連携して、アプリケーションや場所の間でメッセージを配信します。

MQネットワークの図

MQ クラスタ

MQクラスターは、キューマネジャを緊密に結合したもので、より高いレベルでの拡張性と可用性を実現します。

MQネットワークの図

IBM MQ メッセージングスタイル

IBM MQ は以下のメッセージングスタイルをサポートしています。

  • ポイント・ツー・ポイント・メッセージング
  • パブリッシュ/サブスクライブ・メッセージング

これらのメッセージング・パターンについては、Max Kahan氏による説明をご覧ください。

Point-to-point messaging

このスタイルのメッセージングは、メッセージキューの概念に基づいて構築されており、1つのコンシューマーがメッセージを処理することができます。

ポイントツーポイントでは、メッセージの生成者を送信者、メッセージの消費者を受信者と呼びます。送信者はメッセージをキューに送信し、受信者はキューからのメッセージを非同期的に消費します。

ポイント・ツー・ポイント・メッセージングのメッセージ・プロデューサー、コンシューマー、およびメッセージ・キューを示すグラフィック・イメージ

ポイント・ツー・ポイントが機能するためには、接続されているアプリケーションは、相互作用するキューの名前を知る必要があります。

この場合、各メッセージは1つのレシーバーによってのみ消費され、ワークロードがすべてのレシーバーに分散されます。

パブリッシュ/サブスクライブ・メッセージング

このスタイルのメッセージングでは、メッセージのコピーが、関心のある消費者アプリケーションすべてに配信されます。

メッセージを生成する側をパブリッシャー、メッセージを消費する側をサブスクライバーと呼びます。インフラストラクチャ内の発行側と購読側のアプリケーションは、トピックの名前に同意します。コンシューマーは、そのトピックに関するメッセージを受信したいことを通知するために、そのトピックに対するサブスクリプションを作成します。

メッセージ・プロデューサー、コンシューマー、およびパブリッシュ/サブスクライブ・メッセージング用のトピックを示すグラフィック・イメージ

トピックにパブリッシュされたメッセージは、すべてのサブスクリプションに配信されるので、すべてのサブスクライバーがコピーを取得します。各トピックには多数のパブリッシャーと多数のサブスクライバーが存在する可能性がありますが、MQはそれらすべての間でメッセージの配信を処理します。

IBM MQ の言語サポートと機能

開発したい言語やランタイムが何であれ、MQはそれをサポートしています。サポートされている言語とランタイムは以下の通りです。

MQは数多くのAPIをサポートしています。

また、MQは数多くのメッセージングプロトコルをサポートしています。

また、MQは数多くの動作環境に対応しています。

__

まとめ

では、IBM MQについて覚えておくべきことは何でしょうか? この3つの重要な利点です。

  • *MQはデータの確実な配信を提供します。* 情報の紛失や重複は重大な問題を引き起こす可能性があります。銀行振り込みや取引を考えてみてください。これらの場合、メッセージを正確に一度だけ配信したいものです。MQは、必要のないデータの紛失や重複を確実に防止する世界的なリーダーです。これは、MQシステムの実証された信頼性と、これらの重要なメッセージをトランザクション交換に統合する能力によって保証されています。

  • MQは水平方向への拡張性があります。単一のキュー・マネージャーの作業量が増加した場合、キュー・マネージャーを追加してタスクを共有し、メッセージを分散させることができます。MQクラスターは、メッセージを必要な場所にインテリジェントにルーティングすることもできます。世界には、1日に何十億ものメッセージを処理する水平スケールのMQシステムが溢れています。

  • メッセージデータは重要なものであり、MQはそのデータをシステム間で複製したり、メッセージをホストするキュー・マネージャーを他の場所で自動的に再起動する方法を提供することで、常に高い可用性を確保します。これに、同じキューやトピックを提供するキューマネージャーの緊密なクラスター化を組み合わせることで、継続的に利用可能なシステムが実現します。