IBM MQ
(WebSphere MQから転送)
IBM MQ(アイビーエム エムキュー)はIBMが開発・販売するメッセージングミドルウェアである。旧称はMQSeries、WebSphere MQなど。メッセージキュー方式の信頼性が高く非同期通信も可能なマルチプラットフォーム対応のメッセージ通信を提供する。システム連携などで使用される。
開発元 | IBM |
---|---|
最新版 |
V9.1 / 2018年7月 |
対応OS | クロスプラットフォーム |
種別 | メッセージングミドルウェア |
ライセンス | プロプライエタリ (IPLA) |
公式サイト | IBM MQ |
IBM MQ は各種プラットフォームでの時間を保証したメッセージ配信を行う。メッセージ交換の信頼性と堅牢性を強化し、メッセージを失わないことを保証する。
MQは時間に依存しないアーキテクチャを構成する機構も提供する。メッセージをあるアプリケーションから別のアプリケーションに送信するとき、相手のアプリケーションがその時点で動作していなくてもよい。受信側アプリケーションが動作していないときにメッセージが送られた場合、キューマネージャが受信側が問い合わせてくるまでそれを保持しておく。メッセージの順序性はFIFO順で保持される。これは IBM MQ のキューマネージャに限った機能ではない。
通信相手のアーキテクチャの違いを IBM MQ で変換することによって対応することができる。例えば、ビッグエンディアンからリトルエンディアンへの変換やEBCDICからASCIIへの変換である。これは、"Exits" と呼ばれるアプリケーションコードで実行される。Exits はキューマネージャ上で動作し、必要に応じてデータ変換を行う。
IBM MQ は他のアプリケーションを起動するためのメッセージを受け付けて起動を実施できる。これによりメッセージ駆動型アーキテクチャを実現できる。
詳細
編集コンポーネント
編集
IBM MQ の中核となるのは﹁キューマネージャ﹂(MQ Manager、MQM)である。キューマネージャは記憶装置を操作し、タイミング問題を扱い、アプリケーション起動を行い、その他のデータの転送には直接関係しない機能を持っている。
キューマネージャは、同じホスト上で動作するソフトウェアとは Bindings と呼ばれるコネクションを持ち、ネットワーク経由では他のホスト上のソフトウェアとの間で Client と呼ばれるコネクションを持つ。同じホスト上のソフトウェアと Client コネクションで繋げることもできる。Bindings の方が高速だが Client の方が堅牢であり、アプリケーションの設計を容易に変更可能である。
キューマネージャ間の通信は Channel と呼ばれる別のプログラムが担当する。Channel はキューマネージャと同じホスト上で動作し、ネットワーク経由のデータ送受信を受け持つ。TCP/IP のネットワークでは、Channel は特定のポートでデータの送受信を行う。
Client コネクションでアプリケーションとキューマネージャ間の通信を行うプログラムは Listener と呼ばれる。Listener はアプリケーションから見たキューマネージャのネットワークインタフェースとなっている。TCP/IP ネットワークでは、Listener は特定ポート上で "listen" する︵パケット受信を待ち受けること︶。
キューイング
編集
メッセージのキューイングは2つの部分からなる。
●メッセージとは、バイナリまたはASCIIのデータの集合体であり、関係するプログラムにとって意味のある内容である。通信プロトコルとしては、ルーティングなどの情報が転送前にメッセージに付与され、受信先アプリケーションに到達する前にそれら情報が捨てられ、メッセージだけが届けられる。
●メッセージキューとは、アプリケーション内でメッセージを格納するオブジェクトである。
﹁キューマネージャ﹂は MOM に必ずあるわけではないが、IBM MQ では必要不可欠であり、メッセージキューの論理的コンテナを提供するシステムサービスであると共に、﹁メッセージチャンネル﹂を経由してメッセージを他のキューに転送する役割を持つ。
この技術の利点は以下の通り。
●メッセージはTCP/IPのような純粋なパケット通信による転送に依存しない。このため、送受信を行うアプリケーション同士の結合度が弱く、非同期な運用も可能である。
●メッセージは一度しか送られない。ネットワーク上の問題は全てキューマネージャが対応する。
API
編集歴史
編集
●MQSeriesリリース前
●1964年 System/360がリリースされたとき、BTAM と QTAM︵Basic and Queued Telecommunication Access Methods︶が通信手法として提供された。
●1971年 TSO︵Time-Sharing Option︶と共に TCAM︵Telecommunication Access Method︶が登場。
●1971年12月 CICSとTCAMの連携が発表され、1972年12月にリリース。
●MQSeries時代
●1993年 MQSeries V1︵メッセージ・キューイング。TCAM の機能を IBM 以外のプラットフォームでも使えるよう拡張した︶
●1995年 MQSeries V2︵分散系プラットフォームへの拡張、トリガリング、コード変換、プライオリティ、Non-Persistentメッセージ︶
●1997年 MQSeries V5.0︵メッセージサイズ拡張、C++やJavaのサポート ︶
●1999年 MQSeries V5.1︵クラスタリング︵MQクラスター︶、GUI管理ツール︵MQエクスプローラ︶ ︶
●2001年 MQSeries V5.2︵パフォーマンス改善、Linuxのサポート︶
●WebSphereMQ時代
●2002年 WebSphere MQ V5.3︵MQSeries から名称変更、SSLサポート︶
●2004年 王立工学アカデミー[3]から MacRobert 賞[4]を授与された[5]。
●2005年 WebSphere MQ V6︵64ビット対応、Eclipseベースのユーザインタフェース︶
●2008年4月 WebSphere MQ V7.0︵パブリッシュ/サブスクライブ・メッセージングおよびJMSの拡張︶
●2014年3月 IBM MQ V8.0
●2016年6月 IBM MQ V9.0[1]