| To do this in CORBA, both "client" and "server" need to implement an
interface. So, both sides act as both server and client. You'll also
need to use DII to avoid deadlocks.
I've just finished implementing a system that does exactly this. Generally,
this is what needs to happen:
- "Client" creates an object ref for the interface/implementation it supports.
- Client gets an objref for something implemented by the "server".
- Client invokes (using DII) an operation on the server's objref.
- Server, using the objref that the client passed as an argument to its
method, invokes an operation back on the "client". Depending on the
design and constraints, this may need to be DII also.
You need to take a look at the design and constraints to properly design the
interfaces. For example, it may be that one (or both) of the methods may
need to return from the method invoke before what was requested can be
done (say, if you need to use X windows stuff to respond to the request).
In this case, the operation can't really use "out" arguments or a return
value, but invoke another operation on the original requester to give
results back.
I am out the door today (this is my last day on this contract). If you find
that you or the customer needs more help than the above, feel free to call
me (508-384-5708) or email me ([email protected]) and talk about it.
Good luck,
-Steve Huston
|
| Calling back ocures on a event, i.e. something has finished, is done,
yet ready, burning, or diverting abnormaly ....
May you have a look at the COSS Event Service, and then implement it.
An Event Service provides a Push/Pull Consumer/Provider Model via an
Event Channel.
There are excat IDL specifications available from OMG for all this COSS
Services and the full COSS Services Specification is available as .PDF
and .PS on the OMG WWW (world wide waiting) Page
Sepp,
|