CMT202: Distributed and Cloud Computing

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CMT202
External Subject Code I160
Number of Credits 20
Level L7
Language of Delivery English
Module Leader Dr Padraig Corcoran
Semester Spring Semester
Academic Year 2020/1

Outline Description of Module

The aim of this module is to familiarize you with issues and successful approaches in the design and implementation of distributed systems. Detailed case studies of widely used systems will be discussed in this module.

The course covers: the organisation of distributed systems, focusing on various architectural styles used to develop such systems; core technologies to implement distributed systems; various models and infrastructures to support Cloud computing – such as virtualisation; and emerging themes in distributed systems, such as fault tolerance and policy driven autonomic self-management.


On completion of the module a student should be able to

  1. Demonstrate and apply knowledge about the state-of-the-art in distributed-systems architectures.
  2. Critically evaluate the issues in distributing an application across a network.
  3. Appreciate the difference between various distributed computing middleware and their communication mechanisms.
  4. Demonstrate and apply knowledge of common security practices within distributed systems.
  5. Use Cloud computing environments.
  6. Critique current standards in distributed computing, and the impact of standardisation on application programs.



How the module will be delivered

Modules will be delivered through blended learning. You will be guided through learning activities appropriate to your module, which may include: • on-line resources that you work through at your own pace (e.g. videos, web resources, e-books, quizzes), • on-line interactive sessions to work with other students and staff (e.g. discussions, live streaming of presentations, live-coding, team meetings) • face to face small group sessions (e.g. help classes, feedback sessions)

Skills that will be practised and developed

A. Design a distributed systems architecture using middleware where appropriate.

B. Compare different designs and assess them using appropriate metrics.

C. Design and use services in a distributed environment.

D. Specify the deployment of Cloud computing applications.

E. Design wrappers and services which overcome heterogeneity and support interoperability of autonomous information resources

How the module will be assessed

A blend of assessment types which may include coursework and portfolio assessments, class tests, and/or formal examinations.

Assessment Breakdown

Type % Title Duration(hrs)
Class Test 50 Class Test N/A
Written Assessment 25 Implement A Distributed System N/A
Written Assessment 25 Implement Distributed Data Processing Algorithms N/A

Syllabus content

The following topics will be covered in this module:

Characterization of Distributed systems

System Models

Inter-process Communication

Remote Invocation

Indirect Communication

Distributed Object and Components

SOAP-based Web Services and Restful Web Services

Peer-to-Peer Systems


System security

Cloud and virtualisation security

Data security & privacy

Coordination and Agreement

Distributed transaction and Concurrency Control


Mobile and Ubiquitous Computing

Cloud Computing

Virtualisation (resource, network, operating system and container-based).

Data replication and availability in Cloud environments.

Dynamic provisioning (elastic computing) and scaling.

Examples: Amazon EC2/S3, Google App Engine and Microsoft Azure.

Relevant emerging technologies (e.g. edge computing, time-critical cloud applications).



Essential Reading and Resource List

Van Steen and Tanenbaum. Distributed Systems. CreateSpace Independent Publishing Platform. 2017.

Ghosh. Distributed Systems: An Algorithmic Approach (Second Edition). CRC press. 2014.

Background Reading and Resource List

Not applicable.


Copyright Cardiff University. Registered charity no. 1136855