System and Architectural Models
Architectural models describe how the components of a distributed system are organized and how responsibility for computation and data is partitioned among them.
Definition
An architectural model of a distributed system specifies the types of components (processes), the roles they play, and the patterns of communication and dependency among them, abstracting away from the physical machines on which they run.
Scope
This topic covers the principal architectural styles of distributed systems: client-server, multitier (n-tier), peer-to-peer, and hybrid organizations, along with structural patterns such as layered, object-based, resource-centered (REST), and event-based architectures. It also covers the placement of processes and the trade-offs in partitioning, replication, and caching of components across machines.
Core questions
- How should responsibility for computation and data be divided among components?
- When is a peer-to-peer organization preferable to client-server?
- What architectural style best supports scalability and evolvability for a given workload?
Key theories
- Client-server and multitier organization
- Components are split into requesting clients and responding servers, and application logic is layered across presentation, processing, and data tiers that can be distributed independently to balance load and scale.
- Peer-to-peer and decentralized organization
- All nodes are functionally equivalent and act as both clients and servers, enabling self-organizing overlays without a central point of control or failure, at the cost of more complex lookup and consistency mechanisms.
- Resource-oriented architecture (REST)
- Representational State Transfer structures a system around addressable resources manipulated through a uniform, stateless interface, an architectural style derived to explain and guide the scalability of the web.
Clinical relevance
Architectural style is the highest-leverage early decision in system design: it governs scalability, fault isolation, and how independently teams can evolve components, and it underlies the choice between monolithic, microservice, and peer-to-peer deployments.
History
Distributed architectures evolved from centralized mainframes to client-server computing in the 1980s, to multitier enterprise systems and large-scale peer-to-peer overlays in the 1990s and 2000s, and to resource-oriented web architectures whose principles were articulated by Fielding's REST dissertation in 2000.
Key figures
- Roy Fielding
- Andrew S. Tanenbaum
- Maarten van Steen
Related topics
Seminal works
- tanenbaum2017
- fielding2000
Frequently asked questions
- What is the difference between an architectural model and a physical deployment?
- The architectural model describes logical components and their interaction patterns, while a physical deployment maps those components onto actual machines and networks. One architectural model can be deployed in many physical configurations.