---
title: "Middleware role; CORBA and services"
subject: "Distributed System"
chapter: 4
key: "semester_7/distributed_system:middleware-corba-services"
source: https://www.bctengineer.com/q/semester_7/distributed_system/middleware-corba-services
site: BCT Engineering
---

# Middleware role; CORBA and services

Distributed System · Chapter 4: Distributed Heterogeneous Applications and CORBA

- Asked in: 2072 Chaitra, 2+8 marks
- Video: [CORBA | Common Object Request Broker Architecture](https://www.youtube.com/watch?v=sHrZKJE6YQU) — Garvit Saxena
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_7/distributed_system/middleware-corba-services
- Whole chapter: https://www.bctengineer.com/md/semester_7/distributed_system/chapter-4

## Question

What is the role of middleware in DS? Explain about CORBA and its services.

## Short answer

Middleware in distributed systems masks hardware/OS/language differences, provides location and access transparency, and offers uniform RPC/RMI interfaces plus common services (naming, security, transactions). CORBA is an OMG middleware standard built on an Object Request Broker (ORB) with IDL-defined interfaces, generated stubs/skeletons, an Object Adapter (POA), and the IIOP protocol. Core services include Naming, Trading, Event, Transaction, Persistence, and Security.

## Answer

#### Role of middleware in a distributed system
Middleware is the software layer between applications and the local OS/network of each node. Its roles:
1. **Hides heterogeneity** of hardware, OS, language and network.
2. **Gives transparency** (location, access, replication, failure) and a single system view.
3. **Provides a uniform communication model** (RPC, RMI, messaging) so programmers avoid socket coding.
4. **Supplies common services**: naming, security, transactions, persistence, events.
5. **Enables interoperability, portability, scalability and openness** through standard interfaces.

#### CORBA
CORBA (Common Object Request Broker Architecture) is the OMG's object-oriented middleware standard. The **ORB** receives a client's request for an object, locates it and returns the result, regardless of language or platform. Interfaces are written in **IDL**; the compiler gives a client **stub** and server **skeleton**. The **Object Adapter** registers and activates servants and dispatches calls; the **Interface Repository** and **DII/DSI** support dynamic calls; **GIOP/IIOP** carry requests between ORBs of different vendors.

```text
 Client -> stub -> ORB ==IIOP== ORB -> Adapter -> skeleton -> Object
```

#### CORBA services
Standard object services defined in IDL:
- **Naming**: name to object reference. **Trading**: find objects by properties.
- **Event and Notification**: asynchronous, decoupled communication through channels.
- **Life cycle**: create, copy, move and delete objects.
- **Persistent state**: save and restore object state.
- **Transaction**: atomic operations with two-phase commit.
- **Concurrency control**: lock management.
- **Security**: authentication, authorisation, auditing, encryption.
- **Query, Relationship, Time, Licensing, Property, Collection**.

Hence middleware, here CORBA, is what turns separate machines into one programmable system.

## Check yourself

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

1. Where does middleware sit in a distributed system and what does it hide?
   A. Inside the OS kernel, hiding only memory management
   B. Above the application, hiding the user interface
   C. On the network wires, hiding only routing
   D. Between applications and the local OS/network, hiding heterogeneity of hardware, OS, language and network
   Answer: D. Middleware is the layer between applications and each node's OS/network that hides heterogeneity and gives transparency. (Key point: Role of middleware)

2. In CORBA, what does the ORB do for a client's request?
   A. Receives it, locates the object and returns the result regardless of language or platform
   B. Compiles the IDL into machine code
   C. Stores the object's persistent state on disk
   D. Authenticates the user only
   Answer: A. The ORB is the broker that finds the target object and relays the call and result. (Key point: CORBA ORB)

3. What is the purpose of GIOP/IIOP in CORBA?
   A. To define the interface of objects
   B. To carry requests between ORBs of different vendors
   C. To register servants in the adapter
   D. To store the interface repository
   Answer: B. GIOP/IIOP is the standard protocol enabling ORB-to-ORB interoperability. (Key point: GIOP/IIOP)

4. Which CORBA service gives asynchronous, decoupled communication through channels?
   A. Trading service
   B. Life cycle service
   C. Event and Notification service
   D. Concurrency control service
   Answer: C. Event/Notification uses channels so suppliers and consumers need not be directly connected. (Key point: Event service)

## Related in Distributed System

- [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×
- [JINI goals, CORBA services, OS support](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aos-support-jini-corba) — Distributed System, chapter 3
- [Short note: CORBA services](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Acorba-services-note) — Distributed System, chapter 4
- [CORBA services; object adapter functions](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Acorba-services-object-adapter) — Distributed System, chapter 4
- [IDL and CORBA RMI with services](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aidl-corba-rmi) — Distributed System, chapter 4
- [IDL, middleware and RMI approach](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aidl-middleware-rmi) — Distributed System, chapter 2
