To expand on the MQ vs. HTTP question -- what are the pros/cons of using SMTP/POP3 vs. MQ? E-Mail and MQ (Message...
Queueing) are similar in that information to be exchanged is encapsulated in self-contained messages, which carry a header, a body, and addressing information. Both systems rely on store-and-forward communications for decoupling senders and receivers of messages.
E-mail was designed mainly for human-to-human interactions. The "API" is a Mail User Agent such as Eudora, Netscape Messenger, MS Outlook, etc. E-mail is typically reliable, but cannot offer the delivery guarantees required by mission critical applications. Mission critical applications often require guaranteed delivery of messages, transactional messages, and low latency. In e-mail, messages can still be lost when a mail folder has exhausted its disk quota, when a mail server is down, or when a mail server has exhausted the available disk space. In this case, the sender will receive a "failure report", and the original message is discarded by the mail system.
Still there are situations where it makes lots of sense to let applications communicate via e-mail:
- Since the applications run at two different companies, and e-mail is the only communications protocol supported between these two companies
- Since lose-coupling is required
- Since guaranteed delivery is not required
On the other hand, MQ software (such as IBM MQSeries, TIBCO, SonicMQ, or Softwired iBus) was designed for application-to-application (as opposed to human-to-human) messaging with:
- Low latency
- High throughput
- End-to-end flow control
- And guaranteed delivery
MQ products provide an appropriate API, allowing messaging applications to be written quickly and easily.