Skip to main content

What is RMI? Explain With its architecture. Differentiate it with CORBA.

 RMI (Remote Method Invocation) is a Java API that allows distributed applications to communicate and invoke methods on remote objects. It provides a mechanism for a client to invoke methods on a remote object running on a server, as if the object were running on the client's machine. RMI is based on the Java Remote Procedure Call (RPC) mechanism.

The architecture of RMI consists of the following components:

  1. Remote interface: This interface specifies the methods that can be invoked remotely by a client.
  2. Remote object: This object implements the remote interface and provides the methods that can be invoked remotely by a client.
  3. Stub: This object is responsible for marshalling the parameters of a remote method invocation and sending them to the server.
  4. Skeleton: This object is responsible for unmarshalling the parameters of a remote method invocation and invoking the method on the server.
  5. Registry: This is a service that allows clients to look up remote objects by name.
  6. Client: This is the application that invokes methods on a remote object.
  7. Server: This is the application that provides the remote object and responds to method invocations from clients.


RMI can be compared to CORBA (Common Object Request Broker Architecture), which is a platform-independent, language-independent middleware system that allows objects to communicate with each other in a distributed environment. While both RMI and CORBA provide mechanisms for distributed communication and method invocation, there are some differences between them:

  1. RMI is a Java-specific technology, while CORBA supports multiple programming languages.
  2. RMI uses Java object serialization to transfer data between client and server, while CORBA uses a standard data representation called the Common Data Representation (CDR).
  3. RMI is simpler to use and has better integration with Java, while CORBA is more complex but offers more flexibility and interoperability.
  4. RMI provides tighter integration with Java's security model, while CORBA provides a more general security model.

In general, RMI is a good choice for Java-based distributed applications, while CORBA is a better choice for more complex, heterogeneous environments that involve multiple programming languages and platforms.

Comments

Popular posts from this blog

Write a program using the algorithm count() to count how many elements in a container have a specified value.

 Here's an example program using the count() algorithm to count the number of occurrences of a specific value in a vector container: #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() {     vector<int> numbers = { 2, 5, 3, 7, 8, 5, 1, 5, 4 };          // count the number of occurrences of the value 5 in the vector     int count = count(numbers.begin(), numbers.end(), 5);          cout << "The number of occurrences of 5 in the vector is: " << count << endl;          return 0; } Output: The number of occurrences of 5 in the vector is: 3 Explanation: The program starts by creating a vector named numbers that contains several integer values. The count() algorithm is used to count the number of occurrences of the value 5 in the numbers vector. The function takes three arguments: the beginning and end iterators of...

What are Stub and Skeleton in Distributed Application? Explain its function with block diagram.

 Stub and Skeleton are two important components of distributed applications. A distributed application is a software system that runs on multiple computers connected through a network. It allows users to access resources and services on different computers as if they were on a local computer. In a distributed application, a client program on one computer sends a request to a server program on another computer. The server program processes the request and sends a response back to the client program. Stub and Skeleton help to facilitate this communication between the client and server programs. A Stub is a client-side proxy that represents the remote object on the client machine. It acts as a gateway for the client to communicate with the server. When a client invokes a method on the Stub, it marshals the arguments and sends them to the server over the network. The Stub then waits for the server to send a response. When the response is received, the Stub unmarshals the data and retur...

Explain the lifecycle of Servlet with block diagram.

 The lifecycle of a Servlet can be divided into several stages. Here's a block diagram that illustrates the different stages: Servlet API: The Servlet API provides a standard set of interfaces and classes for creating and interacting with Servlets. It is typically included in the web application's classpath as a JAR file. Servlet Container: The Servlet Container is a web server or application server that implements the Servlet API. It provides a runtime environment for executing Servlets and manages their lifecycle. Servlet Class: The Servlet Class is the Java class that implements the javax.servlet.Servlet interface. It contains the logic for processing HTTP requests and generating HTTP responses. init(): The init() method is called once when the Servlet is first loaded by the Servlet Container. It is used for initialization tasks, such as setting up database connections, loading configuration settings, or initializing other resources that will be used by the Servlet. service(...