As far as I understand RMI, when you bind the object on the server side, there is only one object. When a client does a Naming.lookup(), they get a reference to that one object.
My server only has one Data object. That is in a wrapper class, and an instance of this is the object that I bind.
In answer to your question :
In network mode, do two separate clients use the same remote object
or the same objects of different threads (effectively different objects) ?
I would say that the two separate clients DO use the same object on different threads. BUT although there are two threads, there is only one object.
Does each request generate a separate thread (e.g. java servelet does so)?
Uuuh, not sure. I would expect it to. But I would like to hear from someone else on the subject.