81. What is the role of Remote Interface in RMI ?
The
Remote interface serves to identify interfaces whose methods may be invoked
from a non-local virtual machine. Any object that is a remote object must
directly or indirectly implement this interface. A class that implements a
remote interface should declare the remote interfaces being implemented, define
the constructor for each remote object and provide an implementation for each
remote method in all remote interfaces.
82. What is the role of the java.rmi.Naming Class ? The
java.rmi.Naming class provides methods for storing and obtaining references to
remote objects in the remote object registry. Each method of the Naming class
takes as one of its arguments a name that is a String in URL format.
83. What is meant by binding in RMI ? Binding
is the process of associating or registering a name for a remote object, which
can be used at a later time, in order to look up that remote object. A remote
object can be associated with a name using the bind or rebind methods of the
Naming class.
84. What is the difference between using bind() and rebind()
methods of Naming Class ? The bind method bind is
responsible for binding the specified name to a remote object, while the rebind
method is responsible for rebinding the specified name to a new remote object.
In case a binding exists for that name, the binding is replaced.
85. What are the steps involved to make work a RMI program ? The
following steps must be involved in order for a RMI program to work properly:
·
Compilation of all source files.
·
Generatation of the stubs using
rmic.
·
Start the rmiregistry.
·
Start the RMIServer.
·
Run the client program.
86. What is the role of stub in RMI ? A
stub for a remote object acts as a client’s local representative or proxy for
the remote object. The caller invokes a method on the local stub, which is
responsible for executing the method on the remote object. When a stub’s method
is invoked, it undergoes the following steps:
·
It initiates a connection to the
remote JVM containing the remote object.
·
It marshals the parameters to the
remote JVM.
·
It waits for the result of the
method invocation and execution.
·
It unmarshals the return value or an
exception if the method has not been successfully executed.
·
It returns the value to the caller.
87. What is DGC ? And how does it work ? DGC
stands for Distributed Garbage Collection.
Remote Method Invocation (RMI) uses
DGC for automatic garbage collection. Since RMI involves remote object
references across JVM’s, garbage collection can be quite difficult. DGC uses a
reference counting algorithm to provide automatic memory management for remote
objects.
88. What is the purpose of using RMISecurityManager in RMI ? RMISecurityManager
provides a security manager that can be used by RMI applications, which use
downloaded code. The class loader of RMI will not download any classes from
remote locations, if the security manager has not been set.
89. Explain Marshalling and demarshalling. When
an application wants to pass its memory objects across a network to another
host or persist it to storage, the in-memory representation must be converted
to a suitable format. This process is called marshalling and the revert
operation is called demarshalling.
90. Explain Serialization and Deserialization. Java
provides a mechanism, called object serialization where an object can be
represented as a sequence of bytes and includes the object’s data, as well as
information about the object’s type, and the types of data stored in the
object. Thus, serialization can be seen as a way of flattening objects, in
order to be stored on disk, and later, read back and reconstituted.
Deserialisation is the reverse process of converting an object from its
flattened state to a live object.
No comments:
Post a Comment