Explain RMI
Architecture?
RMI uses a layered architecture, each of the layers could be enhanced or
replaced without affecting the rest of the system. The details of layers can be
summarised as follows:
- Application Layer: The client and server program
- Stub & Skeleton Layer: Intercepts method calls made by
the client/redirects these calls to a remote RMIservice.
- Remote Reference Layer: Understands how to interpret and
manage references made from clients to the remoteservice objects.
- Transport layer: Based on TCP/IP connections
between machines in a network. It provides basic connectivity, as well as
some firewall penetration strategies.
What is the difference between RMI & Corba?
The most significant
difference between RMI and CORBA is that CORBA was made specifically
for interoperability across programming languages. That is CORBA fosters the notion that programs can be built to
interact in multiple languages. The server could be written in C++, the
business logic in Python, and the front-end written in COBOL in
theory. RMI, on the other hand is a total Java solution, the interfaces,
the implementations and the clients--all are written in Java.
RMI allows dynamic
loading of classes at runtime. In a multi-language CORBA environment, dynamic
class loading is not possible. The important advantage to dynamic class loading
is that it allows arguments to be passed in remoteinvocations
that are subtypes of the declared types. In CORBA, all types have to be known
in advance. RMI (as well as RMI/IIOP) provides support for
polymorphic parameter passing, whereas strict CORBA does not. CORBA does have
support for multiple languages which is good for some applications,
but RMI has the advantage of being dynamic, which is good for other
applications.
What are the services in RMI ?
An RMI "service"
could well be any Java method that can be invoked remotely. The
other service is the JRMP RMInaming service which
is a lookup service.
Does RMI-IIOP support code downloading for Java objects sent by value across an IIOP connection in the
same way as RMI does across a JRMP connection?
Yes. The JDK 1.2 support the dynamic class loading.
How many types of protocol implementations does RMI have?
RMI has at least three
protocol implementations: Java Remote Method Protocol(JRMP), Internet
Inter ORB Protocol(IIOP), and Jini
Extensible Remote Invocation(JERI). These are alternatives, not part
of the same thing, All three are indeed layer 6 protocols for those who are
still speaking OSI reference model.
Does RMI-IIOP support dynamic downloading of classes?
No, RMI-IIOP doesn't
support dynamic downloading of the classes as it is done with CORBA in DII
(Dynamic Interface Invocation).Actually RMI-IIOP combines the usability of
Java Remote Method Invocation (RMI) with the interoperability of the
Internet Inter-ORB Protocol (IIOP).So in order to attain this interoperability
between RMI and CORBA,some of the features
that are supported by RMI but not CORBA and vice versa are eliminated
from the RMI-IIOP specification.
No comments:
Post a Comment