After reading through several chapters on RMI, it seems that most implementations use a Factory
Pattern to delegate connection chores. However, after looking at the
SCJD requirements, we only ever connect to one server in one given way (if you are local mode you would NOT need to instantiate a Factory object). To create a Factory, it needs to extend UnicastRemoteObject and you have to call it from the client using Naming.lookup(). To me it would seem, in the SCJD case, that you are creating a Factory for the sake of creating a factory (you write the client code to point towards a Factory, which points toward the DataServer, when you could write could to directly point from the client to the server).
I understand that creating a Factory allows the developer flexibility in the future, because he/she can easy switch or create new connections. Are there other benefits? Is my understanding of Factory architecture accurate/correct? Will I be docked points if I don't implement a Factory pattern?
I realize that the Factory pattern has significant values in production level code, but how relevent is it to SCJD?
Also, to implement a Factory server, would this be started in conjunction with the Data server? And would the Factory server utilize the same rmiregistry and security policy? Would it even have to?
Okay, I realize I just asked about 6 questions, but I really appreciate your help. Thoughts and suggestions are welcome and encouraged. Thanks!