This module addresses the issues involved when a computational task is distributed over a number of processes or machines.
Server design will be studied, including the use of heavy and lightweight processes, exploring the creation, management and synchronisation of these and relevant inter-process communication methods.
Data conversion between different low level representations and the automation of these techniques will be explored.
The module will also cover maintaining consistent data stores in the face of concurrent access or hardware faults and the location, movement and duplication of data objects and access to these via atomic transactions.
A study of the rapidly evolving area of web-based methods will also be included.
On successful completion of this module, the student will be able to
Assessment is by a three hour examination.
Computer Systems and either C++ Programming 2 or Java Programming 2 are pre-requisites for this module.