---
title: "Access transparency and modern RPC"
subject: "Distributed System"
chapter: 2
key: "semester_7/distributed_system:modern-rpc-access-transparency"
source: https://www.bctengineer.com/q/semester_7/distributed_system/modern-rpc-access-transparency
site: BCT Engineering
---

# Access transparency and modern RPC

Distributed System · Chapter 2: Distributed Objects and File System

- Asked in: Model question
- Video: [Remote Procedure Call in Distributed Computing in Hindi](https://www.youtube.com/watch?v=z0S6o7cGXuE) — Perfect Computer Engineer
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_7/distributed_system/modern-rpc-access-transparency
- Whole chapter: https://www.bctengineer.com/md/semester_7/distributed_system/chapter-2

## Question

Define transparency in distributed system. Give the reason for "access transparency is not maintained by conventional RPC". How can it be solved? Explain in detail the modern RPC procedure.

## Short answer

Access transparency means local and remote resources are accessed identically. Conventional RPC breaks it due to different call syntax, value-only parameters, new failure modes, and heterogeneous data. Modern RPC restores it by using IDL-generated stubs with standard data representation, dynamic binding, deep copy of parameters, and mapping failures to exceptions.

## Answer

#### Transparency
**Transparency** is the hiding of the separation of components of a distributed system so that it looks like a single system. **Access transparency** means that local and remote resources are accessed using identical operations.

#### Why conventional RPC does not maintain access transparency
- The remote call syntax is different: the programmer must call special RPC library routines, define interfaces and manually bind to the server.
- Parameters are only passed by value; **pointers, references and global variables** cannot be used since address spaces differ.
- The programmer must deal with new failures (server crash, lost messages, timeouts) which do not exist in local calls.
- Different data representation on heterogeneous machines must be handled by the programmer in some cases.
- Latency and call semantics (at-least-once) differ from the exactly-once of a local call.

#### How it is solved: modern RPC
Modern RPC (DCE RPC, ONC+, and RPC in Java/CORBA) makes the remote call look like a local one.

1. An **IDL** describes the interface, and an **IDL compiler** automatically generates the stubs, which hide marshalling and communication.
2. **Standard data representation** (NDR/XDR) removes differences between machines.
3. **Dynamic binding** through a directory service gives location transparency.
4. **Complex parameters and pointers** are passed by copying the data referenced (deep copy) or by remote references.
5. **Exception handling** and at-most-once semantics map failures to errors in the language.
6. **Threads, asynchronous RPC and security** services.

#### Modern RPC procedure
```text
 Client app -> client stub -> RPC runtime ==network==>
 RPC runtime -> server stub -> server procedure
```
1. At development time, the IDL file is compiled to the client stub, server stub and header.
2. At start, the server registers its interface and endpoint with the directory service/binder.
3. The client stub locates the server through the binder (dynamic binding).
4. The client calls the procedure; the stub marshals the parameters into a message in standard format.
5. The runtime sends the call with a call id, with timeouts and retransmission.
6. The server runtime filters duplicates, passes it to the server stub, which unmarshals and calls the procedure (in a server thread).
7. The result is marshalled and returned; the client stub unmarshals and returns it, or raises an exception.

## Check yourself

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

1. What is access transparency?
   A. Users know where each resource is
   B. Copies of resources are hidden
   C. Local and remote resources are accessed using identical operations
   D. Resources can move without notice
   Answer: C. It means the caller does not distinguish local from remote access. (Key point: Access transparency)

2. Why can conventional RPC not use pointers and global variables?
   A. Pointers are too slow
   B. Parameters are passed by value and address spaces differ
   C. IDL forbids integers
   D. The network cannot carry numbers
   Answer: B. Separate address spaces make references meaningless remotely. (Key point: Conventional RPC problem)

3. How does modern RPC handle complex parameters and pointers?
   A. By copying the referenced data (deep copy) or using remote references
   B. By sharing the client's memory
   C. By refusing the call
   D. By sending raw memory addresses
   Answer: A. Deep copy lets linked structures be passed. (Key point: Solution for pointers)

4. In the modern RPC procedure, how does the client stub find the server?
   A. By broadcasting to all hosts
   B. By asking the user
   C. By hard-coded address in the stub only
   D. Through the binder/directory service where the server registered its interface and endpoint
   Answer: D. Dynamic binding gives location transparency. (Key point: Modern RPC steps)

## Related in Distributed System

- [RPC vs RMI; modern RPC transparency](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Adifferentiate-rpc-modern-rpc) — Distributed System, chapter 2
- [Distributed object, IDL; RPC vs RMI](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aobject-idl-rpc-rmi) — Distributed System, chapter 2
- [RPC and its communication semantics](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Arpc-semantics) — Distributed System, chapter 2, asked 3×

## Related in other subjects

- [Reason: 1-phase IM not self-starting](https://www.bctengineer.com/question.md?key=semester_4%2Felectrical_machine%3Areason-single-phase-im-not-self-starting) — Electrical Machine, chapter 7
- [Reason: single phase motor not self-starting](https://www.bctengineer.com/question.md?key=semester_4%2Felectrical_machines%3Aspim-not-self-starting-reason) — Electrical Machines, chapter 7
- [Signaling system and reason for SS7](https://www.bctengineer.com/question.md?key=semester_8%2Ftelecommunications%3Asignaling-system-ss7-reason) — Telecommunications, chapter 5
- [LTI system and closed loop in modern systems](https://www.bctengineer.com/question.md?key=semester_3%2Fcontrol_systems%3Alti-define-cl-pronounced) — Control Systems, chapter 1
