Skip to main content

Client-server versus 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.

Compare client server and distributed object architecture.

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.

 Client-server              Distributed objects

 [C1] [C2] [C3]          [O1]   [O2]   [O3]   [O4]
   \   |   /               |      |      |      |
    network             +---------------------------+
   /       \            |   Object request broker   |
 [S1]     [S2]          |     (middleware bus)      |
                        +---------------------------+
                           |      |      |
                         [O5]   [O6]   [O7]
PointClient-serverDistributed object
RolesFixed: clients request, servers serveNo distinction; any object can use or provide services
Basic unitClient and server processesObjects with published interfaces
CommunicationRequest–reply protocols (e.g. HTTP, SQL over TCP/IP)Remote method calls through ORB middleware
Placement of servicesDecided at design time (which server does what)Can be decided late and changed at run time
Flexibility and scalabilityAdding servers is easy but layers are fixedVery flexible; objects added, moved or replicated as needed
OpennessDepends on server interfacesOpen system; objects in different languages can work together (IDL)
Design complexitySimple, well understoodMore complex to design and test
Typical exampleInternet banking, web applicationsData 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.

✓ Answer checked by Claude Sonnet 5.5

All Software Engineering chapter 3 questions →