Chapter 7 Fundamentals of distributed systems
Objectives
To introduce at an early stage how to reason about the nature of distributed systems. Each topic that is studied subsequently can then be generalised, to consider it in the context of a distributed system.
Points to emphasise
- The architectural variety of distributed systems. The fact that most systems we use today are networked so the software is distributed.
- An object model can be implemented in a distributed world, refer to section 2.7.
- Layers of abstraction help one reason about systems design. Refer to Section 3.9.
- The fundamental properties - Section 5.5.
- The non-deterministic nature of distributed systems.
Possible difficulties
Taking distributed systems early broadens the scope of study. It is feasible to cover Sections 5.1 through 5.5 first time through and return to time and naming at a later stage, perhaps with Chapter 22. It is important to cover enough to make the progression to distributed implementations natural for filing, IPC, transactions etc.
Teaching hints
- It’s easy to contemplate an object model where objects are distributed. One can then reason about what must be provided in order to support this abstraction - one invents the necessary architectural components such as name services for name to location binding, communications support, access control etc.
- Take familiar systems such as email or the web and investigate the names that are used and how communication is supported.
- The main thing is that students understand the fundamental differences between centralised and distributed systems.