Krishna your design is very nice. Here is where I would point you to add to it, and instead of your RemoteDataAdapter extending Unicast and being bound into RMI, I would bind a ConnectionFactory, and get a connection object which is your RemoteDataAdapter, This will guarantee each user to get their own version of this Adapter, and hence more control on locking, which is the "Client ID"
Mark
Look for posts in this forum on Connections, you will find many of them, which will fill in the rest of the details for ya.
