Module Overview

Network Distributed Computing

The aim of this module is to provide an understanding of the fundamental software engineering and computer systems issues raised by programming for networked computers. The module will enable learners to develop applications for distributed systems and to understand the networked computer systems support that is desirable and necessary to allow such applications to be developed and implemented.

Module Code

COMP H3031

ECTS Credits


*Curricular information is subject to change


Definition of a distributed system; Making resources accessible; Distribution transparency; Openess; scalability; Pitfalls


Architectural sytles; System Architectures (Centralised, Decentralised,and Hybrid Architectures); Architectures Verus Middleware; Self-management in distributed systems


Threads in distributed systems; Architecture of virtual machines; The role of virtualization in distributed systems; Client-side software for distribution transparency; Managing server clusters


Names, Identifiers and addresses; Flat naming (Simple solutions, Home-based approaches, Distibuted Hash tables, Hierarchical Approcahes); Structured Naming (name spaces,name resolution, the implementation of a name space); Attribute-based naming (directory services, Hierarchical implementations:LDAP, Decentralised Implementations)


Clock synchronization; Logical clocks; Mutal exculsion; Election algorithms

Consistency and Replication

Reasons for replication; Replication as scaling techniquel; Data centric consistency models; client centric consistenmcy models; Replica management; Consistency Protocols


Security threats, policies, and mechanisms; Secure channels; Secure group communication; Access control; Secure mobile code, Security management

Distributed web-based systems

Architecture; Processes; Communication; Naming; Synchronization; Consistency and replication, Fault tolerance, Security.

Module Content & Assessment
Assessment Breakdown %
Other Assessment(s)50
Formal Examination50