The RemoteServer class is the common superclass to all server
implementations and provides the framework to support a wide range
of remote reference semantics. Specifically, the functions needed
to create and export remote objects (i.e. to make them remotely
available) are provided abstractly by RemoteServer and concretely
by its subclass(es).
The subclass selected identifies the semantics of the remote
reference, for example whether the server is a single object or is
a replicated object requiring communications with multiple
locations. At present only UnicastRemoteObject is supported.