Ask the Expert

Is it possible to implement Web services using message queues?

I like your comparison of Web services with message queues. However, isn't it possible to implement Web services using message queues? Couldn't SOAP messages be transported via MQSeries persistent queues to gain their guaranteed message delivery? Since I have not worked yet with any of these scenarios, my posting is mere theory. I'd be curious to hear what you think.
In terms of transactional support, I wouldn't say message queuing in and of itself provides transactionality. As you alluded, there needs to be a message server or broker involved. If SOAP messages are sent through a message queueing system, then the corresponding services can be orchestrated through a broker or process automation server as part of a transactional business process.

A. MQ Series works by having a queue manager on each system. The queue manager handles message delivery and things like data type translation. XML is a common format for the message because it is self-describing and can be written to a common DTD or schema. While you can send SOAP messages, I'm not sure what the specific advantages would be, since the queue managers handle all the cross-platform issues. Messages can also be sent synchronously or asynchronously. To do that with a Web service requires extra code (although .NET makes it relatively straightforward).

So then, why wouldn't you always use something like MQ Series?

    Requires Free Membership to View

1. It is non-trivial to implement. MQ has a lot of capability, but with that capability comes complexity. There are companies who do nothing but MQ implementations.

2. It is relatively expensive. In an enterprise environment, the cost of MQ Series can certainly be more than made up for through the benefits it offers. In a smaller application, that is not the case.

3. It provides much more than a simple way to connect two disparate systems. The fact that MQ connects systems is only a small part of the benefits it provides. It is overkill for many applications.

4. Typically, you must have an MQ client application on each system. That may not be possible or desirable.

Why use Web services?

1. They are relatively simple and straight forward to build and implement. The complexity level is fairly low.

2. It is inexpensive. There is nothing to buy. No extra software or hardware. Just code and go.

3. It uses standard protocols and transports. You do not need a special client application on each system. Just a simple proxy application which many development environments will create for you.


This was first published in May 2002

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: