The server needs to be started with all the directories where it may be able to find classes needed for creating remote objects for its clients. The server can load the class and create an object of that class and return a handle to the client. The server also will be able to capture any exceptions that occur during the creation of the remote object and give to the client. Once the object is created, the client can invoke any public method of this object using reflection like syntax. This approach also allows us to invoke remote methods in the asynchronous mode.
Asynchronous calls can be with or without reply.
Using RRMI Reflective RMI consists of two basic components, a client and a server. The server waits on a socket for a client to request its services. The server then processes the request and sends the results back to the client. Multiple clients can be connected to the server at the same time. The server creates a separate thread for each client.