Alternative to MessageQueues

M

Mufasa

We have a product that has 5 executibles that communicate via message
queueing. It works great. Problem is, when we install on customers PCs,
there are some where their IT department has limited the machine so we can't
do message queueing (the default user doesn't have rights to create/add the
queues.) So I'm looking for ways to send messages back and forth between the
programs without message queues.

As an absolute worst case, I could do files between the programs but I'd
rather find something else. But I do need something that would 'queue' up
the messages.

Anybody have any thoughts?

TIA - Jeff.
 
N

Nicholas Paldino [.NET/C# MVP]

Jeff,

You could use WCF and TCP/IP connections, or named pipes.

The problem with that is that the semantics are totally different. With
named pipes and sockets, you are depending on a connection. If the client
goes down, then you won't be able to send messages to them, whereas with
MSMQ, you can send messages to queues, and have them processed later.

If you can account for these differences, and they fit your processing
model, then great, otherwise, you will have to change how you process your
messages, and that might be more work than you are willing to take on.
 
M

Michael Nemtsev

Hello Mufasa,

Why not to emulate the MSMQ behaviour by your own? Keeping the message localy
and using 2-phase commit sending to the otner machine?

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

M> We have a product that has 5 executibles that communicate via message
M> queueing. It works great. Problem is, when we install on customers
M> PCs, there are some where their IT department has limited the machine
M> so we can't do message queueing (the default user doesn't have rights
M> to create/add the queues.) So I'm looking for ways to send messages
M> back and forth between the programs without message queues.
M>
M> As an absolute worst case, I could do files between the programs but
M> I'd rather find something else. But I do need something that would
M> 'queue' up the messages.
M>
M> Anybody have any thoughts?
M>
M> TIA - Jeff.
M>
 
B

bobbychopra

Hohpe & Woolf in "Enterprise Integration Patterns" describe different
mechanisms which can be used to communicate between different
processes. It is a good read.

However, here are some options discussed:
1. File Dumps -
Copy and upload using batch scripts and then process them at a central
place if needed.
2. Shared Database -
You could have the processes write to the same shared database and
then appropriately process your message.
3. .NET Remoting or Web Services -
If ports are blocked, then you could use web services.

Messaging architectures like MSMQ are great for reliable distributed
application. However, each approach has its advantages and
disadvantages. I just wanted to list some of them for you.

Sincerely,
Bobby
 
W

Willy Denoyette [MVP]

Mufasa said:
We have a product that has 5 executibles that communicate via message
queueing. It works great. Problem is, when we install on customers PCs,
there are some where their IT department has limited the machine so we
can't do message queueing (the default user doesn't have rights to
create/add the queues.) So I'm looking for ways to send messages back and
forth between the programs without message queues.

As an absolute worst case, I could do files between the programs but I'd
rather find something else. But I do need something that would 'queue' up
the messages.

Anybody have any thoughts?

I would say talk to the IT department, why and how did they remove or
restricted the MSMQ capabilities of their users? Anything else you are
trying to invent can get banned or restricted too.

Willy.
 
P

Paul Hadfield

Hi Hufasa,

Approaching the problem from a completely different angle, modify your
installation program (or create one if you don't currently have one) so that
it (the installation program) is reponsible for creating the message queues;
and also applying relevant security to those message queues that allows the
users to post / read messages. That obviously requires that only an
admininstrator can install your application, but from the sounds of it, that
may already be the case. Then your application can run with the reduced
rights of the end user, but still utilise all the benefits of message
queues.

Regards,

- Paul.
 
M

Mufasa

Paul,
Thanks but the real problem is our customers don't have an administrator
around. It will be some low level Joe who doesn't have admin privileges to
the machine they are installing it on. Once it is installed then it works
fine. It's the installing that's the issue. And when they talk to their IT
department (who has really locked the machine down) the IT people call us
and we have to explain what Message Queueing is and that it's part of
windows and it's safe, yada yada yada...... It makes a 10 minute install by
the customer become a 2 hour phone conversation with us.

I'm probably going to go with files.

But thanks anyway.

Jeff/Mufasa.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top