If you can't modify A then B needs to be responsible for blocking until C produces a result, and returning that result synchronous as the result of the RMI method.
If you can't modify A, then B needs to be responsible for blocking until C produces a result, and returning that result synchronous as the result of the RMI method. So it seems the problem is more about how C can reply to B (or "Bs", since it sounds like you have a cluster of these) than how to respond to A. Normally, synchronous calls like this are simulated via JMS by creating a temporary queue, and specifying that as the reply address on the message.So, B would create a temporary queue, then block on that queue until it received the result back from C, then return the content of the reply to A.
I might not understand your circumstances fully, but it seems like any other approach would require modifications to the A–B interface.
Excellent idea! – Marcos Roriz Nov 20 '09 at 20:59.
Well I can't modify A, since it's a client and I can't modify the interface. Well I'm doing that because on my B code I'm doing balancing of servers. I'm treating a lot of things there for the "client" A.
– Marcos Roriz Nov 20 '09 at 20:15.
Sounds like Apache Camel is exactly what you need; its a framework for doing just this sort of Enterprise integration. The components page has examples of how to set up RMI and JMS (and myriad other) endpoints. You'll then write a route using its powerful DSL to forward messages from one endpoint to the other.
Definitely going to take a look at that :3 – Marcos Roriz Nov 20 '09 at 20:50.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.