Prerequisite courses: Concurrent Systems and Applications (if available), Operating Systems, Digital Communication I, Introduction to Security
Aims
The aims of this course are to study the fundamental characteristics of
distributed systems and their implications on software design;
their models and architectures; the design of distributed algorithms and applications.
Lectures
Introduction.
Characteristics specific to distributed systems. Software
structure. Modelling, architecting and engineering distributed software.
Issues of scale and trust.
Algorithms and application protocols. Replication
management. Strong and weak consistency. Asynchronous and synchronous
algorithms. Atomic commitment. Process groups. Election. Mutual exclusion.
Communication. Overview of synchronous, asynchronous and
event-based middleware. Web services.
Naming.
Design of names, pure or hierarchical. Interpretation of names in
context. Binding. Long-term consistency.
Access control.
ACLs and capabilities in distributed systems. Role-based access control. Policy
expression and enforcement.
Storage.
Design issues for network-based storage services.
Applications.
Pervasive computing environments: active office, home and city. Events,
composite events, mobility and location-tracking. Electronic health, police
and transport services.
Objectives
At the end of the course students should
understand the fundamental properties of distributed systems and how
to design software to accommodate them
understand some basic distributed algorithms and the assumptions on
which they are based
for widely distributed and/or large scale systems, understand how
naming and access control can be designed
understand the tradeoffs involved in selecting various styles of
middleware
be aware of some emerging application areas, such as pervasive and
mobile computing.
Recommended reading
* Bacon, J. & Harris, T. (2003). Operating systems: distributed and
concurrent software design. Addison-Wesley.
Tanenbaum, A.S. & van Steen, M. (2002). Distributed systems.
Prentice-Hall.
Coulouris, G.F., Dollimore, J.B. & Kindberg, T. (2005, 2001). Distributed
systems, concepts and design. Addison-Wesley (4th, 3rd eds.).
Mullender, S. (ed.) (1993). Distributed systems. Addison-Wesley
(2nd ed.).