BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

高级消息队列协议将使消息服务平价化

| 作者 Floyd Marinescu 关注 35 他的粉丝 ,译者 吴磊 关注 0 他的粉丝 发布于 2007年3月13日. 估计阅读时间: 6 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义
新组成的AMQP工作组于2006年1月20日发布了高级消息队列协议(AMQP规范0.8),该工作组由JP Morgan Chase、RedHat、Twist、IONA、Cisco以及其它单位组成。AMQP是一个基于消息队列的开放协议,设计时考虑了性能和可交互性;它为基于队列的消息机制定义了一个协议和模型。AMQP协议的目标是是普及消息中间件并跨越不同技术stack,在各种语言或者各种操作系统之间提供真正的可交互性。重载(over)了AMQ的JMS API能够很容易地与.Net客户端以及任何其它语言或其它借助AMQP通讯的平台进行交互。

AMQP在wire-level格式上分为两层;一个功能层和一个传输层。功能层定义了可用于支持事务存储的命令,发布/订阅模式以及批处理文件传输的消息风格。传输层覆盖了有线通讯(wire communication),“通道多路技术(channel multiplexing),framing,内容编码,heart-beating,数据表现以及错误处理”。传输层和功能层也是可插拔的,可以让协议将来容易进化。AMQP就像HTTP那样的消息中间件(AMQP is like the messaging middleware equivalent to HTTP),它比HTTP更适合处理异步的互操作消息。作为一个协议,AMQP不打算指定绑定某个特定技术的API,但是任一类似API(例如Java的JMS)能通过AMQP发送消息。JMS可以成为一个AMQP服务器,就像JavaMail可以作为一个SMTP服务器一样。

JPMorgan Chase的副总裁(VP),杰出工程师和高级架构师John O'Hara是AMQP之父。在最终向外部亮出这个想法之前,John已经为此花了将近一年的工作时间。AMQ现在有了投资银行(Investment Bank)的支持,并有一个实现目前运行在其生产环境中了。O'Hara告诉InfoQ,JPMC已经在一个分布在5个公司及数据中心、有着800名用户的全球商业系统中得到实际运用。“我们有许多公司的多个实现,有使用Java、C++、C#的,有运行在Windows、Linux和Solaris上的。”

至于AMQP的需求,O'Hara解释道:“无论何时,商业伙伴们聚在一块进行商业交易,他们知道他们打算使用的信息模型(例如标准化的FPML),但是他们没有一个传送器(transport)可用于彼此发送这些信息模型……如果有一个标准的传送器(transport)能提供高质量的服务并满足商业事务消息方面的语义要求,就能跨越互联网填补此鸿沟。AMQ没有提供一个工具包用于数据传输,它提供了一套可用于组织之间及内部的可靠的事件机制(eventing)、商业事务和文件传输协议。”AMQP还是一个互操作规范,它有助于集成相关的业务,“我们期望它能通过互联网为那些商业伙伴提供信息交流”。

InfoQ还与John Davies进行了对话,他是AMQ工作组的成员,现在是C24的CTO。

“只是为了在其内部发送消息,银行就为此花费了大笔金钱。”Davies说,“AMQ能让消息服务相关产业平价化,就像Apache使得Web服务器平民化那样。”消息服务中间件还没有平价化,根据Davies的估计,超过90%的份额由IBM和Tibco RV把持,一小部分由Sonic占有,剩下的份额由大约30家产品瓜分,多数是基于JMS的。就像现在没有谁试图销售web服务器一样,未来,AMQ将使得消息服务产业平价化。AMQ规范将使得任何人自由使用开源的、商业的甚至是协议由硬件实现的,这将有助于该规范的繁荣发展。RedHat当前已经在AMQ的一个实现上工作了,它将被集成到(build into)操作系统中,这使得AMQ能够像SendMail一样自由的使用和获得,它也能被其他API(例如JMS)访问。

2006年1月20日,一个包括了JPMC、RedHat、TWIST、IONA、Cisco及其它单位的工作组发布了AMQP。IBM、Sonic和Tibco已经意识到了它的存在,它们私下里审视了AMQP所做的工作。目前还没有人发布AMQP的实现,但是JMS,C/C++版的实现工作已经在进行中了。John Davies是C24的CTO,他还做过和SWIFT、FpML、TWIST、TRAX2和其它金融服务相关的基于AMQ传送器的工作,这些实现很快就会完成了。据说AMQP规范将在18个月内达到1.0版。在达到1.0之前工作组将用更多的时间进行反馈和测试工作。AMQP被分配了TCP和UDP的5672端口,UDP端口将来将作为多广播(multi-cast)的实现。

展望未来,Davies认为AMQP将很快占领消息中间件市场(messaging market):“JMS是在1998年发布的,在2003年的时候成气候,所以我期望AMQ能在2011年成为市场的王者”。

查看英文原文:Advanced Message Queue Protocol to Commoditize Messaging
译者简介:吴磊,多年软件开发经验,从1999年开始使用C++,2002年转入Java领域,具备J2ME和J2EE方面的开发经验。在多个项目开发过程中先后使用过Webwork、Spring、Hibernate等开源项目。目前正在进行基于Spring轻量级J2EE开发,对敏捷方法有一些尝试。另外对Erlang很有兴趣,正在学习中。与InfoQ中文站分享内容,请邮件至china-editorial@infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT