---
title: "Object adapter and CORBA invocation"
subject: "Distributed System"
chapter: 4
key: "semester_7/distributed_system:object-adapter-invocation"
source: https://www.bctengineer.com/q/semester_7/distributed_system/object-adapter-invocation
site: BCT Engineering
---

# Object adapter and CORBA invocation

Distributed System · Chapter 4: Distributed Heterogeneous Applications and CORBA

- Asked in: 2075 Asoj, 2+4 marks
- Video: [3.16 Object servers and adapter Distributed Object Based Systems](https://www.youtube.com/watch?v=gEV_i8tzVjE) — OU Education
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_7/distributed_system/object-adapter-invocation
- Whole chapter: https://www.bctengineer.com/md/semester_7/distributed_system/chapter-4

## Question

Define Object Adapter. Explain the invocation methods in CORBA.

## Short answer

An Object Adapter (POA) sits between the ORB and servant, hiding the ORB, creating references and dispatching requests. CORBA offers static invocation via IDL-generated stubs/skeletons (fast, compile-time known) and dynamic invocation (DII/DSI) that discovers operations at runtime. Modes: synchronous (block until reply), one-way (no reply) and deferred synchronous (poll later, DII only).

## Answer

#### Object Adapter
An Object Adapter is the CORBA component between the ORB core and the object implementation (servant). It hides the ORB from the implementation by creating object references, registering and activating objects on demand, and dispatching each incoming request to the right servant through its skeleton. The standard form is the Portable Object Adapter (POA); the older one is the Basic Object Adapter (BOA).

#### Invocation methods in CORBA
**1. Static invocation**
The IDL compiler generates a client stub and server skeleton. The client calls the stub as a local method; the stub marshals the arguments, the ORB delivers the request (using GIOP/IIOP) and the skeleton calls the servant. It is type-safe and fast, but the interface must be known at compile time.

**2. Dynamic invocation (DII)**
The client discovers an operation at run time from the Interface Repository, builds a Request object with operation name and parameters, and sends it through the Dynamic Invocation Interface. The server can accept it through the Dynamic Skeleton Interface (DSI). It is flexible but slower.

Calling modes (both methods):
- **Synchronous**: client blocks until the reply arrives.
- **One-way**: no reply, best effort.
- **Deferred synchronous** (DII only): client sends, continues work, and later polls or gets the reply.

```text
 Client -> stub/DII -> ORB -> Object Adapter -> skeleton/DSI -> Servant
```

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What does an Object Adapter do?
   A. Creates object references, activates objects on demand and dispatches requests
   B. Marshals arguments
   C. Stores IDL
   D. Provides security keys
   Answer: A. It sits between ORB and servant. (Key point: Object adapter def)

2. What is deferred synchronous invocation?
   A. Client blocks until reply
   B. No reply is expected
   C. Client sends, continues work, and later polls for the reply (DII only)
   D. Server delays execution
   Answer: C. Synchronous blocks; one-way has no reply. (Key point: Deferred synchronous)

3. What is a one-way call?
   A. Reply guaranteed
   B. No reply, best effort
   C. Always blocking
   D. Uses DSI only
   Answer: B. Best effort, no reply. (Key point: One-way)

## Related in Distributed System

- [CORBA services; object adapter functions](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Acorba-services-object-adapter) — Distributed System, chapter 4
- [CORBA invocation methods and services](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Acorba-invocation-services) — Distributed System, chapter 4, asked 3×
