解決方案
到了 2003 年,一家銀行運行著數十套彼此無法溝通的訊息系統,而每家中介軟體廠商的代理程式都說著各自的私有語言。摩根大通的 John O'Hara 發起了 AMQP,讓不同廠商的訊息軟體能在線路層互通。
初始設計於 2004 年至 2006 年間與 iMatix 共同完成,隨後開放給包括 Cisco、Red Hat 等在内的⼯作小組。AMQP 本身定義訊息格式與協定行為,這點不同於 API 層級的標準,後者讓代理程式無法交換訊息。
開放實作隨後出現——Apache Qpid 與 RabbitMQ——並於 2011 年將工作移交給 OASIS,OASIS 於 2012 年 10 月核准 AMQP 1.0 為標準;ISO/IEC 於 2014 年 4 月跟進。一套由銀行發起的標準,成為企業訊息傳遞的開放骨幹。
達成了什麼
一套不屬於任何廠商的線路協定,讓代理程式得以互通
為何奏效
線路層級的規格讓不同廠商的代理程式得以互通
由銀行推動標準,消除了廠商鎖定
RabbitMQ 等開放實作將其推廣至整個產業
OASIS 與 ISO 的地位讓企業得以安心採用
可借鏡之處
如果你因為某種協定而被鎖定在單一廠商,就自己寫出該協定並無償釋出——標準本身會成為競爭市場。
後續發展
AMQP 1.0 由 RabbitMQ、Apache Qpid、Microsoft 的 Azure Service Bus 及其他主要代理程式實作,至今仍是核心的企業訊息傳遞標準。MQTT 後來贏得輕量物聯網的利基市場,但 AMQP 保住了企業中介軟體市場。
追溯依據
參考來源
- Advanced Message Queuing Protocol Wikipedia · en.wikipedia.org
- About AMQP AMQP · amqp.org