Undergraduate Course: Distributed Systems (Level 10) (INFR10012)
|School||School of Informatics
||College||College of Science and Engineering
||Availability||Available to all students
|Credit level (Normal year taken)||SCQF Level 10 (Year 4 Undergraduate)
|Home subject area||Informatics
||Other subject area||None
||Taught in Gaelic?||No
|Course description||A distributed system is broadly categorised as a collection or network of loosely coupled, autonomous computers that can communicate with each other and execute logically separate computations, though these may be related to concurrent computations on other nodes.
* The nodes are relatively loosely coupled.
* Each node is a self-contained autonomous computer with its own peripherals.
* The system can survive various categories of node and network failures.
* The nodes may execute logically separate computations, though these may be related to concurrent computations on other nodes.
* The system is asynchronous.
Distributed systems have become pervasive---many applications now require the cooperation of two or more computers--yet the design and implementation of such systems remain challenging and complex tasks. Difficulties arise from the concurrency of components, the lack of a global clock and the possibility of independent failure of components. Moreover designs must aim to provide inter-operability, transparency and autonomy.
The emphasis of this module is on gaining understanding of the principles and concepts that are used to design distributed systems and experience of software platforms which underpin their development. Throughout the course examples written in Java will be used.
Entry Requirements (not applicable to Visiting Students)
|Prohibited Combinations|| Students MUST NOT also be taking
Distributed Systems (Level 11) (INFR11022)
||Other requirements|| Successful completion of Year 3 of an Informatics Single or Combined Honours Degree, or equivalent by permission of the School. Familiarity with Java is essential.
|Additional Costs|| None
Information for Visiting Students
|Displayed in Visiting Students Prospectus?||Yes
Course Delivery Information
|Not being delivered|
Summary of Intended Learning Outcomes
|1 - have an understanding of the principles of distributed system and be able to demonstrate this by explaining them;
2 - be able to give an account of the trade-offs which must be made when designing a distributed system, and make such trade-offs in their own designs;
3 - have developed practical skills of implementation of distributed algorithms in software so that they will be able to take an algorithm description and realise it in software;
4 - have gained experience in programming within a distributed object system so that they can tackle a client, server or servant implementation based on a interface description, and be able to write interface descriptions in order to specify the objects of a distributed object system;
5 - be able to give an account of the theoretical models used to design distributed systems and to manipulate those models to reason about such systems.
6 - The course presents a large amount of material, some of it in case study form, so the students additionally develop skills of assimilation.
7 - This course will teach students the principles of distributed systems, in particular those aspects which make such systems difficult to design and develop.
|Written Examination 75|
Assessed Assignments 25
Oral Presentations 0
The assessment consists of weekly homework assignments and programming practicals.
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year.
2. Fundamental Concepts of Distributed Systems: Architecture models; network architectures: OSI, Internet and LANs; interprocess communication
3. Time and Global States: Clocks and concepts of time; Event ordering; Synchronization; Global states
4. Coordination: Distributed mutual exclusion; Multicast; Group communication, Byzantine problems (consensus)¿
5. Distribution and Operating Systems: Protection mechanisms; Processes and threads; Networked OS; Distributed and Network File Systems (NFSs)¿
6. Middleware: Middleware; Distributed object models; Remote invocation; CORBA; Name and directory services
7. Security: Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets
Relevant QAA Computing Curriculum Sections: Distributed Computer Systems
||* George Coulouris, Jean Dollimore and Tim Kindberg, Distributed Systems: Concepts and Design, 4th edition, Addison-Wesley, 2005. (Main textbook).
* Andrew S. Tanenbaum and Maarten Van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall, September 2001.
* Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996.
Timetabled Laboratories 0
Non-timetabled assessed assignments 40
Private Study/Other 40
|Course organiser||Dr Mary Cryan
Tel: (0131 6)50 5153
|Course secretary||Miss Kate Farrow
Tel: (0131 6)50 2706