---
title: "Client-server versus distributed object architecture"
subject: "Software Engineering"
chapter: 3
key: "semester_5/software_engineering:client-server-vs-distributed-object"
source: https://www.bctengineer.com/q/semester_5/software_engineering/client-server-vs-distributed-object
site: BCT Engineering
---

# Client-server versus distributed object architecture

Software Engineering · Chapter 3: Architectural design

- Asked in: year not given, 5 marks
- Video: [Architectural Model | Client Server | Distributed Systems | Lec-08 | Bhanu Priya](https://www.youtube.com/watch?v=SKtR7NVxYFA) — Education 4u
- Answer checked by Claude Sonnet 5.5 on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/software_engineering/client-server-vs-distributed-object
- Whole chapter: https://www.bctengineer.com/md/semester_5/software_engineering/chapter-3

## Question

Compare client server and distributed object architecture.

## Short answer

Client-server has fixed roles: clients request services, servers provide them, communicating by request-reply. Distributed object architecture treats every component as an object with an interface, and objects interact through middleware (Object Request Broker) such as CORBA, so services can be relocated and the system is more flexible but harder to design.

## Answer

In a **client-server architecture** the system is a set of servers that provide services and clients that request them over a network; the roles are fixed. In a **distributed object architecture** there is no difference between clients and servers: the system is a set of objects, each providing services through an interface, and objects call each other through **middleware** called an **Object Request Broker (ORB)**, e.g. CORBA, Java RMI or DCOM.

```text
 Client-server              Distributed objects

 [C1] [C2] [C3]          [O1]   [O2]   [O3]   [O4]
   \   |   /               |      |      |      |
    network             +---------------------------+
   /       \            |   Object request broker   |
 [S1]     [S2]          |     (middleware bus)      |
                        +---------------------------+
                           |      |      |
                         [O5]   [O6]   [O7]
```

| Point | Client-server | Distributed object |
|---|---|---|
| Roles | Fixed: clients request, servers serve | No distinction; any object can use or provide services |
| Basic unit | Client and server processes | Objects with published interfaces |
| Communication | Request–reply protocols (e.g. HTTP, SQL over TCP/IP) | Remote method calls through ORB middleware |
| Placement of services | Decided at design time (which server does what) | Can be decided late and changed at run time |
| Flexibility and scalability | Adding servers is easy but layers are fixed | Very flexible; objects added, moved or replicated as needed |
| Openness | Depends on server interfaces | Open system; objects in different languages can work together (IDL) |
| Design complexity | Simple, well understood | More complex to design and test |
| Typical example | Internet banking, web applications | Data mining system, distributed enterprise systems |

**Advantages of distributed objects over client-server:** designers can delay decisions about where services are provided, the system is open and can be extended easily, and it can be reconfigured dynamically. **Disadvantage:** it is harder to design than client-server, and middleware adds overhead. Client-server is preferred when the services and their locations are clear and stable.

## Check yourself

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

1. How do roles differ between the two architectures?
   A. Client-server: fixed client and server roles; distributed object: no distinction, any object can use or provide services
   B. Both have fixed roles
   C. Client-server has no roles; distributed object has fixed roles
   D. Both have no roles
   Answer: A. Client-server fixes who requests and who serves, while distributed objects are equal service providers and users. (Key point: Roles)

2. What is the Object Request Broker (ORB)?
   A. A database server
   B. A firewall
   C. Middleware through which distributed objects call each other, e.g. CORBA
   D. A type of client
   Answer: C. The ORB is middleware that handles remote calls between objects. (Key point: Middleware)

3. When can service locations be decided in each architecture?
   A. Distributed object: at design time only; client-server: at run time
   B. Both at run time
   C. Both at coding time
   D. Client-server: at design time; distributed object: can be decided late and changed at run time
   Answer: D. Distributed objects can be moved or reconfigured dynamically; client-server placement is fixed at design time. (Key point: Placement of services)

4. When is client-server preferred over distributed objects?
   A. When services and their locations are clear and stable
   B. When objects must move at run time
   C. When middleware is essential
   D. When the system must be extremely open
   Answer: A. It is simpler and well understood, so it fits when services and locations are stable; distributed objects add complexity and overhead. (Key point: When to prefer client-server)

## Related in Software Engineering

- [Multiprocessor versus client-server architecture](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Amultiprocessor-vs-client-server) — Software Engineering, chapter 3
- [Distributed object versus multiprocessor architecture](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Adistributed-object-vs-multiprocessor) — Software Engineering, chapter 3
- [Architecture before specification; client-server](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Aarchitecture-before-specification) — Software Engineering, chapter 3

## Related in other subjects

- [Client/server architecture and FTP operation](https://www.bctengineer.com/question.md?key=semester_8%2Finternet_and_intranet%3Aclient-server-ftp) — Internet and Intranet, chapter 3
- [Features of client/server architecture](https://www.bctengineer.com/question.md?key=semester_7%2Fcomputer_networks_and_security%3Aclient-server-features) — Computer Networks and Security, chapter 1
- [Client-side versus server-side scripting](https://www.bctengineer.com/question.md?key=semester_7%2Fweb_technology%3Aclient-vs-server-side-scripting) — Web Technology, chapter 3, asked 3×
- [Short note: Client-Server and Master-Slave](https://www.bctengineer.com/question.md?key=semester_8%2Fbig_data_technologies%3Ashort-note-client-server-master-slave) — Big Data Technologies, chapter 1
