I should have said 'many more clients than servers' before :-)
If you're using web services / JAX-RPC between your client and server for the forward call, it makes sense to use it also for your callback interface. This is easy with something like CORBA or RMI, because the ORB/RMI infrastructure for a client includes the server infrastructure as well.
The catch with web services is that you basically need to run an HTTP server on your client. So you'll end up with a more heavyweight client, since you'll effectively be running a web container / (i.e. a
servlet engine) on both your client and server.
The next version of JAX-RPC - v2.0 - will include asynchronous web services which will effectively let you call a service and either have the service call back the client, or allow the client to poll the server for the results. You'll have to wait for
J2EE 5 for this though (ie not this year).
If running a web container (ie HTTP server) on your clients is out, then maybe
you should look at either RMI or JMS as the transport rather than web services.
hope the above helps,
cheers,
Dave.