I have a RemoteData object which implents my RemoteDataInterface and extends UnicastRemoteObject (It also has a reference to the db and a reference to my LockManager). Right now, in my server, I am just making one of these available via RMI to the clients. Does anyone have an opinion of which would be better... the way I currently have it, or make a factory that is put in the rmi registry, and then make that factory give out new RemoteData objects to clients? Also, when I just put the one RemoteData in the rmi registry, does that mean that all clients are going through that one object? I am wondering if this will mess up my locking since my LockManager uses a ref to the RemoteData as the client id in my locking hashtable. Thanks in advance for any advice here.