03.10.2012 Views

API Design Matters Stonebraker and Seltzer - RabbitMQ

API Design Matters Stonebraker and Seltzer - RabbitMQ

API Design Matters Stonebraker and Seltzer - RabbitMQ

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

from product B <strong>and</strong> send messages to a Ruby client in<br />

product C. Of course, in the real world there will be some<br />

teething difficulties, <strong>and</strong> the AMQP working group is<br />

starting to focus on how to create <strong>and</strong> manage a protocol<br />

compliance test suite to mitigate that risk.<br />

There are many middleware products, however, each<br />

with its internal architecture. The AMQP Working Group<br />

encourages middleware vendors to implement AMQP<br />

in their products, but it will be nontrivial to get a good<br />

semantic match, <strong>and</strong> some vendors may be reluctant to<br />

support interoperability for commercial reasons.<br />

In the meantime, there will be a need for bridging<br />

from the installed base of proprietary products. The<br />

easiest way to do this may be to use one of the many<br />

commercial or open source EAI (enterprise application<br />

integration) packages, but we expect several AMQP<br />

products to include native bridges to the most common<br />

proprietary middleware soon.<br />

AdOPTiNG AMQP<br />

The most natural way for an organization to adopt AMQP<br />

is to deploy it opportunistically or as part of a strategy to<br />

move to st<strong>and</strong>ards-based EMB. This approach can enable<br />

an organization to benefit from competitively priced or<br />

open source solutions <strong>and</strong> gain experience with the pro-<br />

tocol <strong>and</strong> products that support it. This is the approach<br />

we took: using AMQP in isolated systems <strong>and</strong> then<br />

branching into core EMB systems.<br />

Over the course of a few years, much of your mes-<br />

saging may become AMQP-enabled by following this<br />

approach. Your current middleware supplier may adopt<br />

AMQP <strong>and</strong> enable your move to a st<strong>and</strong>ards-based model<br />

in that way. It is likely that AMQP will eventually be<br />

provided as a core service by your network infrastructure,<br />

in hardware.<br />

On the other h<strong>and</strong>, if your company is embarking on<br />

SOA (or other bus-based architecture), we suggest that<br />

you seriously consider an en-masse deployment of AMQP<br />

as the backbone of SOA. Doing so may position you to<br />

benefit from competition among suppliers of AMQP-<br />

compatible middleware so you may achieve the levels of<br />

support <strong>and</strong> qualities of service you need from a suitable<br />

supplier. Deploying AMQP may also mitigate the worri-<br />

some issue of vendor lock-in or supplier failure for the<br />

critical bus component of an SOA, which is a long-term<br />

investment for your company. This same thinking applies<br />

where open protocols for e-business are being deployed<br />

between trading partners over the Internet or leased lines.<br />

Of course, whatever strategy you choose is yours alone<br />

<strong>and</strong> must be determined by your circumstances.<br />

more queue: www.acmqueue.com<br />

CONClUSiON<br />

After two decades of proprietary messaging middleware,<br />

a credible st<strong>and</strong>ards-based alternative exists at last. The<br />

AMQP Working Group is rapidly evolving the protocol<br />

<strong>and</strong> hopes to reach version 1.0 during 2008, but imple-<br />

mentations are available today that are both useful <strong>and</strong><br />

proven in real-world deployments.<br />

AMQP lets more applications be enterprise-grade<br />

without the costs associated with that label. It provides<br />

a capable messaging backbone that can be a springboard<br />

for new innovations <strong>and</strong> new kinds of applications. Q<br />

reFerenCeS<br />

1. O’Hara, R.J., Hintjens, P., Greig, R., Sim, G., et al.<br />

2006. AMQP Advanced Message Queuing Protocol<br />

Version 0.8; http://www.amqp.org/tikiwiki/tiki-index.<br />

php?page=Download.<br />

2. Bradner, S. 1996. IETF St<strong>and</strong>ards Process, RFC 2026.<br />

3. Postel, J., Klensin, J. 1982/2001. Simple Message Trans-<br />

fer Protocol, RFC 821 / 2821.<br />

4. Freed, N., Borenstein, N. 1996. Multipurpose Internet<br />

Mail Extensions (MIME), RFC 2045.<br />

5. Janssen, B. 1998. Binary Wire Protocol for HTTP-ng;<br />

http://www.w3.org/Protocols/HTTP-NG/.<br />

6. Shepler, S., Callaghan, B., Robinson, D., Thurlow, R.,<br />

Beame, C., Eisler, M., Noveck, D. 2003. Network File<br />

System (NFS) version 4 Protocol, RFC 3530.<br />

7. Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwar-<br />

zbauer. H., Taylor, T., Rytina, I., Kalla, M., Zhang, L.,<br />

Paxson, V. 2000. Stream Control Transmission Protocol,<br />

RFC 2960.<br />

8. Rose, M. 2001. The Blocks Extensible Exchange Proto-<br />

col Core, RFC 3080.<br />

9. Rose, M. 2002. “Introduction: Application Protocol<br />

<strong>Design</strong>.” BEEP: The Definitive Guide. O’Reilly.<br />

LOVE IT, HATE IT? LET US KNOW<br />

feedback@acmqueue.com or www.acmqueue.com/forums<br />

R. JOHN O’HARA is a senior architect <strong>and</strong> distinguished<br />

engineer at JPMorgan. he drove the creation of AMQP<br />

<strong>and</strong> was an early contributor to the FpML financial markets<br />

messaging st<strong>and</strong>ard. he is chairman of the AMQP Working<br />

group. his interests include data center virtualization,<br />

creative uses of open source for commercial data processing,<br />

event <strong>and</strong> data replication middleware, <strong>and</strong> making software<br />

architecture “simple <strong>and</strong> intuitive.” o’hara holds an honors<br />

degree in electronic engineering <strong>and</strong> computer science from<br />

Aston University, engl<strong>and</strong>.<br />

© 2007 ACM 1542-7730/07/0500 $5.00<br />

ACM QUEUE May/June 2007 55

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!