Hi Ray,
A ConnectionFactory uses a Factory
pattern to issue each connecting client a unique connection. It should have a mehtod named getConnection or something similar which returns an implementation of your remote Data interface. It must itself implement Remote (thru an interface that contains the getConnection method and extends Remote) and should extend either UnicastRemoteObject or Activatable and should be bound to the RMI registry with a service name like "DBConnectionService". Your clients will connect to this service thru Naming and call getConnection to get your remote Data interface.
The remote implementations will not be bound to the RMI registry.
If you don't use a factory and just bind a remote Data implementation to the registry, you create a bottleneck since all clients will have to share the same object for database operations.
Hope this helps,
Michael Morris
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction. - Ernst F. Schumacher