Skip to main content

IDL and CORBA RMI with services

Short answer

IDL (Interface Definition Language) is a language-neutral notation that describes object interfaces (operations, parameters, types) without implementation. CORBA RMI uses IDL-generated stubs and skeletons: the client obtains an object reference (IOR), the stub marshals arguments in CDR format, the ORB sends a GIOP/IIOP request to the server, where the Object Adapter and skeleton invoke the servant. Key services include Naming, Trading, Event, Transaction, and Security.

What is IDL? Explain CORBA RMI with its services.

IDL

Interface Definition Language (IDL) is a language-neutral, purely declarative notation used by CORBA to define the interface of an object: its operations, parameters, data types, attributes and exceptions. It contains no implementation. An IDL compiler maps it to a language (C++, Java, etc.) and generates the client stub and server skeleton.

module Bank {
  exception Insufficient {};
  interface Account {
    float balance();
    void deposit(in float amt);
    void withdraw(in float amt) raises (Insufficient);
  };
};

CORBA RMI

CORBA RMI lets a client invoke a method on a remote object, possibly in another language, as if it were local. Steps:

  1. Define the interface in IDL and compile it to get stub and skeleton.
  2. The client obtains an object reference (IOR) from the Naming service.
  3. It calls the stub, which marshals the arguments in CDR format.
  4. The ORB sends a GIOP/IIOP request to the server ORB.
  5. The Object Adapter finds the servant and the skeleton unmarshals and invokes the method.
  6. The result or exception returns the same way.

Invocation is static (stub) or dynamic (DII/DSI), and can be synchronous, one-way or deferred.

Services

Naming (find references), Trading, Event/Notification, Life cycle, Persistence, Transaction, Concurrency control, Security and Query services support the RMI by locating objects, managing their state and securing the calls.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Distributed System chapter 4 questions →