Modern computer systems rely increasingly on distributed computing mechanisms, implemented often as clusters, web services, grids and clouds. Distributed computing systems can provide seamless (or web-like) access to a variety of networked resources, e.g. processing cores, large data stores and information repositories, expensive instruments, high-speed links, sensor networks, and multimedia services for a wide range of applications. This unit provides foundation knowledge and understanding of the basic mechanisms required to implement distributed computing systems, especially clouds, grids, web services and clusters. Topics covered include: Introduction to parallel and distributed computing mechanisms, concurrency and synchronisation, monitors, deadlocks, concurrent program analysis, computational and service-oriented grids, clusters and clouds. Distributed applications, and their performance and reliability in relation to processor and network performance constraints.
At the completion of this unit, students should be able to:
- analyse and evaluate interprocess communications in networks, and associated programming interfaces;
- analyse and evaluate remote procedure call and remote object request broker mechanisms in distributed systems;
- analyse and model basic problems in distributed computing, especially in relation to concurrency, parallelism, synchronisation, deadlocks, and safety properties;
- analyse and evaluate differences between various distributed computing models and widely used distributed computing schemes;
- analyse, evaluate and model basic functional and performance concepts in distributed systems and identify frequent causes of performance problems in distributed applications;
- analyse and model basic software and hardware reliability problems in distributed systems and identify frequent causes of reliability problems in distributed applications;
- analyse and evaluate some of the enabling technologies e.g. high-speed links, for building computer clusters, distributed storage systems, grids and clouds;
- analyse and evaluate the operating principles of the cloud computing, grid computing, clustering, and web services middleware used to implement large distributed systems, including basic security mechanisms;
- analyse and model in application scalability in distributed systems, and criteria for porting applications to distributed systems;
- implement programs using common distributed computing programming interfaces, including sockets, and some higher level APIs.
Examination (3 hours): 60%; In-semester assessment: 40%
Minimum total expected workload equals 12 hours per week comprising:
(a.) Contact hours for on-campus students:
- Two hours of lectures
- One 2-hour laboratory
- One 1-hour tutorial
(b.) Additional requirements (all students):
- A minimum of 7 hours independent study per week for completing lab and assignment work, private study and revision.
See also Unit timetable information
(FIT2069, FIT2070 and one of FIT3141, ECE2041 or ECE3141) or (FIT1005/FIT2008 and FIT2022) or (FIT2100 and FIT3165)