Skip to main content

Trinity College Dublin, The University of Dublin

Menu Search

Module Descriptor School of Computer Science and Statistics

Module CodeCS7003
Module NameMiddleware for Distributed Systems
Module Short TitleN/a
Semester TaughtFirst semester
Contact HoursLecture hours: 3 hours per week

Total hours: 3 hours per week
Module PersonnelProfessor Vinny Cahill
Learning Outcomes

On successful completion of this module students should be able to:

  • Recognize the complexities of distributed algorithms and apply good problem-solving skills in the area;
  • Apply classic distributed algorithms in the implementation of a distributed application;
  • Select appropriate structuring mechanisms and data placement strategies for distributed applications;
  • Recognise the need for higher-level programming paradigms for the development of distributed applications;
  • Independently design and implement a distributed application.
Learning Aims

To expose students to the complexities involved in designing and building distributed applications and to develop students’ analytical skills. To gain in-depth understanding of the principle paradigms used in the area. To gain an appreciation of the open research issues in the area. The course covers the underlying theory of distributed computing. A significant feature of the course is the use of an interactive teaching style in which students are encouraged to discover the fundamental principles of distributed computing by considering challenge problems collectively or in small groups before being presented with the relevant course material.

Module Content

Specific topics that will be addressed in this course include:

  • Distributed algorithm design
  • Concurrency
  • Distributed coordination
  • Fault tolerance
  • Checkpointing
  • Logging
  • Process replication
  • Data replication
  • Consistency
  • Group communication
  • Reliable and ordered multicast
  • Process groups
  • Atomic transactions
  • Serializability
  • Deadlock and recovery
  • Distributed commit protocols
Recommended Reading List

See course website.

Module PrerequisitesGood programming ability including familiarity with multi-threaded programming; knowledge of data communications.
Assessment Details

% Exam: 100

Module Website
Academic Year of DataN/a