With the rapid development of the Internet, network supported distributed systems are becoming the mainstream of computer systems for message exchanging, data and information sharing, and business transaction processing on a worldwide scale. This course covers a range of essential topics related to distributed computing systems. Yet these modules are not isolated; each one takes its place in the field in relation to others. The emphasis in the course is to build the connections between topics, enabling software engineers to achieve co-operation between distinct autonomous systems under constraints of cost and performance requirements.
Computer Networks, which aims to advance knowledge on computer networks. Topics to be covered in this module include OSI reference model, Physical and Data Link Layer Protocols, TCP/IP Networking, IPv6, Routing Protocols, Asynchronous Transfer Mode (ATM) Networks, Packet Delay and Queuing Analysis, IP Quality of Services (Integrated Service Model and Differentiated Service Model), Resource Reservation Protocol (RSVP), Multi-Protocol Label Switching (MPLS), IP Multicasting, Network Application Layer Protocols such as HTTP, DNS, SNMP.
Network Computing, which focuses on principles and techniques for network computing. Topics to be covered in this module include Object-Oriented Software Engineering, Object-Oriented Programming with Java, Network Computing Models such as Client/Server Model and Peer-to-Peer Model, Socket Programming, Remote Procedure Call (RPC), Java Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA), Web Computing Technologies (Java Servlet, Java Server Pages), Message Exchanging with XML, Service Oriented Architecture (SOA), XML based Web Services (WSDL, SOAP, UDDI).
Network Security and Encryption, which introduces the fundamental theory that enables what is achievable through the use of Security Engineering to be determined, and presents the practical techniques and algorithms that are currently important for the efficient and secure use of distributed /Grid computing systems. Topics to be covered in this module include Introduction to Security Engineering, Classical Cryptography (Monoalphabetic and Polyalphabetic Ciphers, Transposition, Substitution, Linear Transformation), Computational Fundamentals of Cryptosystems (Computational Complexity and Intractability, Modular Arithmetic and Elementary Number Theory), Modern Symmetric Key Cryptography (Feistel Ciphers, DES, Triple-DES and AES),Public Key Cryptography (The Diffie-Hellman Key Exchange Algorithm, Public Key Infrastructures, X.509 Certificates, PK Systems such as RSA and Elliptic Curves), Multilevel Security (the Bell-LaPadula Security Policy Model, the Biba Model, the NRL Pump), Multilateral Security (Compartmentation and the Lattice Model, the Chinese Wall, the BMA Model), Protecting e-Commerce Systems.
Distributed Systems Architecture, which presents a comprehensive evaluation of the design philosophies, fundamental constructs, performance issues and operational principles of distributed systems architectures, covering applications, algorithms and software architecture, engineering issues and implementation technology. Topics to be covered in this module include System Architecture (Bus Systems, High Performance I/O, Memory Hierarchies, Memory Coherence and File Coherence), Distributed Database, Processor Architecture, File Services, Inter-Process Communication, Naming Services, Resource Allocation and Scheduling, Distributed System Case Studies.
Grid Middleware Technologies, which introduces the principle, concepts and practice of Grid middleware technologies, and provides a practical knowledge on developing Grid applications. Topics to be covered in this module include Parallel Computing Paradigms, Parallel Programming with MPI/PVM, Cluster Computing Principles (Condor, Sun Grid Engine), Grid Computing Middleware Components (Job Submission, Resource Management and Job Scheduling, Information Service, Grid Portal, Grid Security Infrastructure), Grid Standards (OGSA/WSRF), Grid Middleware Case Study with Globus.
Grid System Analysis and Design, which aims to analyse representative production Grid systems and gain knowledge on how to design and optimise large-scale Grid systems. Topics to be covered in this module include System Analysis Methodologies with UML, Model Construction (Process Modelling, Static Class Modelling, Dynamic Modelling, Interface Modelling), Management of Large-Scale Grid System (Portal, Concurrent Version System (CVS)/Wiki), Grid System Analysis Case Study (GridPP, LCG/EGEE), Grid System Design (Performance Consideration, Open Standards, Design Patterns, Usability Analysis), Grid System Programming Models, Testing (Unit Testing, Integration Testing, Regression Testing), Debugging, Risk Analysis, System Maintenance.
Project Management, which introduces a range of formal methods and skills necessary to equip the student to function effectively at the higher levels of project management. Covers the need for the development of project management skills in achieving practical business objectives.
Workshop involves practical work, which is an important component of the course and gives students experience with relevant techniques and tools. Assignments are of practical nature and involve laboratory work with relevant equipment, hardware and software systems, conducted in a hands-on workshop environment. Typical assignments are:
* TCP/IP Network Layered Protocol Analysis
* Object-Oriented Programming, Java Socket Programming
* Network Security and Encryption
* Java RMI Programming for Distributed Systems
* Grid Programming with Globus Toolkit 4 (GT4)
* Grid System Analysis/Simulation
Dissertation, which is a stimulating and challenging part of the MSc programme. It provides the opportunity to apply the knowledge learnt in the taught part of the programme and to specialise in one aspect, developing students’ deep understanding and expertise in Distributed Systems related area of their choice. Students may carry out their projects wholly within the University, but industrial based projects are encouraged.
Students graduated from the programme are in high demand from both industry and academia undertaking
* Computer Networks Analysis, Design and Optimisation with quality-of-service support
* Service oriented Computing Systems (XML based Web services)
* Large Scale Distributed Systems (Grid Computing Systems)