MEng Software Engineering

Year of entry: 2020

Course unit details:
Distributed Computing

Unit code COMP28112
Credit rating 10
Unit level Level 2
Teaching period(s) Semester 2
Offered by Department of Computer Science
Available as a free choice unit? Yes

Overview

Many of the most important and visible uses of computer technology rely on distributed computing. Understanding distributed computing requires an understanding of the problems and the challenges stemming from the coordinated operation of different hardware and software. The course focuses on a set of common techniques required to address the key challenges of distributed computing.

Pre/co-requisites

Unit title Unit code Requirement type Description
Fundamentals of Distributed Systems COMP18112 Pre-Requisite Compulsory
Object Oriented Programming with Java 2 COMP16212 Pre-Requisite Compulsory
Operating Systems COMP25111 Pre-Requisite Optional
Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.

Aims

Many of the most important and visible uses of computer technology rely on distributed computing. This course unit aims to build on the course unit in the first year (COMP10052) which introduced students to the principles of distributed computing, and it focuses on techniques and methods in sufficient breadth and depth to provide a foundation for the exploration of specific topics in more advanced course units. The course unit assumes that students have already a solid understanding of the main principles of computing within a single machine, have a rudimentary understanding of the issues related to machine communication and networking, and have been introduced to the area of distributed computing.

Learning outcomes

  • Have knowledge and understanding of the main principles, techniques and methods involved when dealing with distributed systems.

  • Have detailed knowledge and understanding of major issues related to the design of a distributed system, such as: - how to communicate between distributed objects by means of remote invocation.

  • Have detailed knowledge and understanding of major issues related to the design of a distributed system, such as: - the absence of global physical time in distributed systems.

  • Have detailed knowledge and understanding of major issues related to the design of a distributed system, such as: - how processes can coordinate their actions in a distributed setting distributed transactions.

  • Have the ability to design and implement prototypical distributed computing applications using different technologies.

  • Be aware how the fundamental techniques above are applied in practical systems.

Syllabus

Introduction

Revision of the characteristics of distributed systems. Challenges. Architectural models.

Remote Invocation and Distributed Objects

Java RMI, CORBA, Web Services.

Message-Oriented middleware

Synchronous vs asynchronous messaging. Point-to-point messaging. Publish-subscribe.

Concurrency, co-ordination and distributed transactions

Ordering of events. Two-phase commit protocol. Consensus.

Caching and Replication

Security

Service-Oriented Architectures, REST and Web Services

Teaching and learning methods

Lectures

22 in total, 2 per week

Laboratories

10 hours in total, 5 2-hour sessions

Employability skills

Analytical skills
Innovation/creativity
Problem solving

Assessment methods

Method Weight
Written exam 80%
Practical skills assessment 20%

Feedback methods

Formative feedback based on assessment of different solutions to problems relevant to the module or area of weakness from previous years. Feedback is also provided by demonstrators in the laboratory.

Recommended reading

COMP28112 reading list can be found on the School of Computer Science website for current students.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 24
Practical classes & workshops 12
Independent study hours
Independent study 62

Teaching staff

Staff member Role
Rizos Sakellariou Unit coordinator

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Return to course details