DISTRIBUTED SYSTEMS Instructor name Dr. Dmitriy E. Skopin E-mail address: m825453@yahoo.com COURSE DESCRIPTION Many of today's computing systems are designed and constructed for execution on many different hosts connected via standard networks and protocols. This course examines the fundamental principles that are vital to the construction of such systems: models of distributed systems, synchronization, mutual exclusion, naming, group communication, transactions, cryptography, security and distributed algorithms. We will then examine higher level abstractions such as distributed file systems, process scheduling and peer-to-peer overlay networks. The subject accessible to students who have a basic knowledge of object-oriented programming, operating systems and elementary computer architecture. The course includes coverage of those aspects of computer networks relevant to distributed systems, including the underlying technologies for the Internet and for wide area, local area and wireless networks. Algorithms and interfaces are presented throughout the book in Java or, in a few cases, ANSI C. For brevity and clarity of presentation, a form of pseudo-code derived from Java/C is also used. Course Objectives 1. To introduce the students to basics of distributed systems, upon completion they will be able to design real distributed systems based on centralized and decentralized system models. 2. The theoretical basis for this subject presented together with discussions of a range of common algorithms and their implementations and uses. 3. To give basics knowledge in the field of modern theory of distributed systems to involve students to project-designing process. 4. To introduce a students to practical using of knowledge given by this course in such field as development of distributed systems, data management, middleware design, interprocess communications, distributed computing, system design. 5. Apply object-oriented techniques to the problem of extending a larger software system to implement distributed system technologies Course Contents Subject Topic 1: Introduction to distributed systems (DS), features of DS, concurrency, global clock, failures, prime motivations Topic 2: Trends of modern distributed systems: pervasive networking and modern internet, mobile computing, distributed multimedia systems, cloud computing Topic 3: System models of distributed systems, client server, peer to peer DS, centralized and decentralized models Topic 4: Peer to Peer architecture of distributed systems. Architectures with centralized (Napster, Bit torrent) and decentralized (Gnutella) P2P network Topic 5. Hash function and Hash values, application in data transmission and error detection. Data management model of P2P networks based on distributed Hash functions Topic 6. The Chord P2P distributed network, finger tables, look up procedure, chord routing, joining and leaving the network. Lectures/ Week 1/1 2/1 3/2 3/3 3/4 3/5 Note Topic 7: Non-modulus hash function, secure hash functions, EHA algorithm, industrial standards MD5 and SHA-1, data security in distributed systems based on secure hash functions. Topic 8: Networking and internetworking in distributed systems. parameters of the networks, types of networks, layers of tcp/ip protocols, routing and addressing Topic 9: Interprocess communications, the API for internet protocols, external data representation and marhalling Topic 10: Basics of distributed computing, the MPI interface, communication operations, barrier synchronization, group communications, data management, gathering and scattering of data during distributed computing Topic 11: Remote invocation: introduction, request-reply protocol, remote procedure call, remote method invocation Topic 12: Programming of distributed systems using JAVA RMI Topic 13: Operating systems support: Layers, protection, threads and processes, communication and invocation, virtualization and operating system level. Topic 14: Coordination and agreement: Introduction, Distributed mutual exclusion, Elections, Coordination and agreement in group communication, Consensus and related problems Topic 15: TRANSACTIONS AND CONCURRENCY CONTROL: Introduction, Transactions, Nested transactions, Locks, Optimistic concurrency control, Timestamp ordering, Comparison of methods for concurrency control, Distributed transactions Topic 16. DESIGNING DISTRIBUTED SYSTEMS: INTERNET SEARCH SYSTEM. Introduction, Overall architecture and design philosophy, Underlying communication paradigms, Data storage and coordination services, Distributed computation services Topic 17. DISTRIBUTED MULTIMEDIA SYSTEMS: Characteristics of multimedia data, Quality of service management, Resource management, Stream adaptation, Case studies: Tiger, BitTorrent and End System Multicast 3/6 3/7 3/8 3/9 3/10 3/11 3/12 3/12 3/13 3/14 3/15 TextBook: 1. George Coulouris, Jean Dollimore,Tim Kindberg. DISTRIBUTED SYSTEMS, Concepts and Design; Fifth Edition, Addison Wisley, 2012, ISBN 10: 0-13-214301-1, ISBN 13: 978-0-13214301-1 Grading policy Exams First exam Second exam Final exam Project 20% 20% 50% 10%