Distributed Systems COMP 212 Lecture 1 Othon Michail
Course Information Lecturer: Othon Michail Office 2.14 Holt Building http://csc.liv.ac.uk/~michailo/teaching/comp2 12 Structure 30 Lectures + 10 lab practicals Assessment 2 programming assignments and a class test (20% ) and final exam (80%) 2/22
Recommended Reading Main Book: Andrew S. Tanenbaum, Maarten van Steen. Distributed Systems: Principles and Paradigms, Pearson, 2nd edition, 2006 Java references Thinking in Java http://www.mindview.net/books/tij/ The Java Tutorials (Oracle) https://docs.oracle.com/javase/tutorial/ 3/22
Other Relevant Books George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. Distributed Systems: Concepts and Design, Pearson, 5th Edition, 2011 Boger. Java in Distributed Systems: Concurrency, Distribution and Persistence, John Wiley & Sons, 1st Edition, 2001 Nancy Lynch. Distributed Algorithms, Morgan Kaufmann Publishers, 1996. Hagit Attiya and Jennifer Welch, Distributed Computing Fundamentals, Simulations, and Advanced Topics, 2nd Edition, Wiley-Interscience, 2004. 4/22
Content of the Course 1. Introduction to Distributed Systems 2. Communication 3. Processes 4. Naming 5. Synchronisation 6. Consistency and Replication 7. Fault tolerance 8. Security 9. Object-based Systems 10.File Systems 11.Coordination-based Systems 5/22
Aims Provide an understanding of the technical issues involved in the design of modern distributed systems Present some of the major current paradigms 6/22
Learning Outcomes Appreciation of the main principles underlying distributed systems: processes, communication, naming, synchronisation, consistency, fault tolerance, and security Familiarity with some of the main paradigms in distributed systems: object-based systems, file systems, and coordination-based systems 7/22
Introduction
What is a Distributed System? A distributed system is: A collection of independent computers that appears to its users as a single coherent system 9/22
What is a Distributed System? 10/22
Examples of Distributed Systems University computer network The Internet Workflow information system, Distributed manufacturing system Hadoop (http://hadoop.apache.org/) computer clusters distributed file systems Banks (Cash machines) Ticket reservation systems 11/22
The Beginning of the Internet (ARPANET) 4 interconnected computers forming a simple packet switching network First to implement TCP/IP 12/22
The Internet Over 1 billion websites Over 3 billion users Check the rate of growth at: http://www.internetlivestats.com/ 13/22
Internet-enabled Devices 14/22
Nanorobotics and Self-Assembly 15/22
Why Distributed Systems? Pervade society Billions of computers and mobile devices Continuous advances in communication technology Most crucial modern information systems are distributed Turing Award 2013 was awarded to Leslie Lamport for his work on Distributed Systems 16/22
Goals of Distributed Systems Easily connect users/resources Transparency Openness Reliability Performance Scalability 17/22
Connecting Users and Resources Typical resources computers, computing power, data, printers Why sharing Economics Collaboration, Information Exchange (groupware) Problems with sharing Security 18/22
Transparency in a Distributed System Transparent distributed system: Appears to its users as if it were only a single computer system 19/22
Different Forms of Transparency Transparency Access Location Migration Relocation Replication Concurrency Failure Persistence Description Hide differences in data representation and how a resource is accessed Hide where a resource is located Hide that a resource may move to another location Hide that a resource may be moved to another location while in use Hide that a resource is replicated Hide that a resource may be shared by several competitive users Hide the failure and recovery of a resource Hide whether a (software) resource is in memory or on disk 20/22
Degree of Transparency Transparency is: Not always desirable Users located in different continents (context-aware) Not always possible Hiding failures You cannot always distinguish a slow computer from a failing one Trade-off between a high degree of transparency and the performance of the system 21/22
Summary Distributed systems are collections of independent computers that appear to users as a single coherent system They are commonly used all around the world May not immediately appear as computer systems Main goals: Easily connect users/resources Exhibit transparency Be open Be reliable Be efficient Be scalable 22/22