AMQP 【Advanced Message Queuing Protocol】
概要
AMQP(Advanced Message Queuing Protocol)とは、多数の主体が非同期にメッセージを交換するメッセージキューイングを実現するための通信規約(プロトコル)の一つ。メーカーの垣根を超えてメッセージを交換するための規格で、業界団体のOASISが標準化している。メッセージ指向ミドルウェア(MOM:Message-Oriented Middleware)を介して多数の通信主体が1:1または1:Nで互いにメッセージを交換するための通信方式と、メッセージのデータ形式を定めている。アプリケーション層のプロトコルであり、標準ではIPネットワーク上でUDPまたはTCPの5672番ポートを使って通信する。
メッセージの保管と配信を行うブローカー(broker)を介して、多数のクライアントがメッセージを交換する方式を定めている。メッセージに利用できるデータ型やデータ構造、データをバイナリ形式のバイト列で表現する手法を厳密に定義しており、異なるメーカーのソフトウェア間でも正しくデータを交換できる。
メッセージは基本的にPub/Subモデル(出版/購読モデル)で配信され、配信先の指定(1:1か1:Nか、購読者の指定や制限の方法)やACL(アクセス制御リスト)に基づくアクセス制限が可能となっている。ブローカーがメッセージをストレージに保存(永続化)したり、購読者が受信時にトランザクション制御を行う仕様が盛り込まれており、高い信頼性を実現している。
2003年に世界的な大手金融機関のJPモルガン・チェース(JP Morgan Chase)が初期の仕様を策定し、他社に働きかけて業界団体(AMQPワーキンググループ)を設立。2011年に同団体がOASISに合流してOASIS標準の一つとして標準規格が発行された。2014年にはISO/IEC 19464として国際標準となった。高い信頼性や高機能を背景に金融機関のシステムなどで人気が高いが、IoT/M2Mでの導入も模索されている。
(2022.1.25更新)