Course Overview Distributed Systems IT332 2 Course Description The course introduces the main principles underlying distributed systems: processes, communication, naming, synchronization, consistency, fault tolerance, and security. Students will be familiar with some of the main paradigms in distributed systems: object-based systems, file systems, webbased and coordination-based systems. On the completion of the unit, students will understand the fundamentals of distributed computing and be able to design and develop distributed systems and applications. 3 Target Audience and Prerequisites Prerequisites: IT224 Computer Network IT311 Web Applications Students should have a basic knowledge of computer systems and object-oriented programming. Target Audience: Seniors 4 Text Books The primary textbooks for this course are: Andrew S. Tannenbaum and Maarten Van Steen, Distributed Systems: Principles and Paradigms, 2nd E, Pearson, 2007. Reference Book: Tom white, Hadoop: The Definitive Guide, 2nd E, O’Reilly Media, 2011 5 Blog It332ksu.wordpress.com 6 Why Distributed Systems? Many systems that we use on a daily basis are distributed World wide web, Google Amazon.com Peer-to-peer file sharing systems Useful to understand how such real-world systems work Course covers basic principles for designing distributed systems 7 Definition of Distributed Systems A distributed system: Multiple connected CPUs working together A collection of independent computers that appears to its users as a single coherent system 8 Requirements This requires: A way for processes on different machines to exchange information (Process and Communication). A way for process to access other entities (Naming). A way for processes to cooperate, synchronize with one another and agree on shared values (Synchronization). A way to enhance reliability and improve performance (Consistency and Replication). A way to recover from partial failures (Fault Tolerance). 9 Syllabus Introduction Synchronization Consistency and Replication •Outlining the characteristics of distributed systems and the challenges that must be addressed in their design. •Describe and analyze how multiple machines and services should cooperate and synchronize to correctly solve a problem. •Identify how replication of resources improve performance in distributed systems, and explain algorithms to maintain consistent copies of replicas. Architecture Naming Fault Tolerance •Tells how the various software components are to be organized and how they should interact •Identify why entities and resources in distributed systems should be named, and examine the naming conventions and name-resolution mechanisms •Explain how a distributed system can be made fault tolerant. Process Communication Distributed File Systems •Identify how processes are internally organized, configure clients and servers and what is meant by code migration •Explain and contrast the communication mechanisms between processes and systems. •Explain distributed file systems as a paradigm for general-purpose distributed systems, analyze its various aspects and architectures, and contrast against parallel file systems. 10 CLOs: Course Learning Outcomes Explain what a distributed system is, and what the desired properties of such systems are. Apply the basic theoretical concepts of distributed systems. Design and implement simple distributed system. Examine how modern distributed systems meet the demands of contemporary distributed applications. 11 Teaching Team Mashael Al-Duwais • Office #6T73 • Email: malduwais@KSU.EDU.SA Asma Almutairy • Office #6S6 • Email: asmaalmutairi@KSU.EDU.SA 12 Assessment Activity Weight Final Exam 40 Midterm Exams (2) 30 Lecture Quiz 6 Lab: 24 Lab Quiz 6 Tutorial & Lab evaluation 3 Case study 5 Programing assignments 10 13 Exam Dates Exam Date Mid 1 Wednesday 11/5/1435 Mid 2 Wednesday 23/6/1435 Final Exams Wednesday 22/7/1435 14 Policy Attendance Making up Exams and Assignments Attendance at all lectures and labs is required. You should attend with your original section If you miss a lecture or lab, it is your responsibility to catch up on the topics that you missed but you can’t be evaluated for the lab session. If you miss an exam, you should IMMEDIATELY contact the makeup exam committee no later than 7 days after the exam Academic Integrity Each assignment must be the sole work of the student turning it in. Assignment will be closely monitored, and students may be asked to explain any suspicious similarities with any piece of code available. If a case observed both students will got a Zero 15 Next Lecture We will discuss the trends, goals, and different types of distributed systems Questions? Thanks!