Distributed Systems

Course Code: Ν2-6060Α
Weekly Duty: 4 (2Th + 2L)
ECTS: 5
Typical Semester: 6ο
Course Category: Specialty Course
Prerequisites:  

Learning Outcomes

The course aims to present the basic concepts of distributed processing and the principles and components of distributed systems so that students understand the technologies that govern them, and the services that they offer. Upon successful completion of this course the student:

  • will be able to describe the basic functions of a distributed system;
  • will understand the basic concepts and the synchronization and communication mechanisms used in modern distributed systems;
  • will be familiar with the resource/data/work allocation techniques in distributed systems and the necessary synchronization mechanisms and communication control;
  • will have an adequate theoretical and practicabacjground so that she can meet the requirements of the current trends in the design, development and support of distributed systems and applications.

Course Content
  • Basic Concepts of Distributed Systems, Distributed Processing, Middleware, Middleware Services.
  • Organization of Distributed Systems. Client-Server vs. Peer to Peer systems (P2P Systems)
  • Communication in Distributed Systems, Remote Procedure Call (RPC), Remote Objects, Remote Method Invocation (Java RMI), Message-Oriented Communication, Stream-Oriented Communication
  • Synchronization. Logical Clocks. Leader Election Algorithms, Algorithms. Mutual Exclusion Algorithms. Distributed Transactions
  • Fault Tolerance. Failure Models. Failure Masking and Replication. Agreement in Faulty Systems. Distributed Commit (Two-phase Commit, Three-phase Commit). Recovery.
  • Distributed File Systems. Naming and Directory Services.

Literature
  1. Tanenbaum A.S., Van Steen M., Κατανεμημένα Συστήματα: Αρχές και Παραδείγματα, Εκδόσεις Κλειδάριθμος, 2005.
  2. Κάβουρας Ι.Κ., Μήλης Ι.Ζ., Ξυλωμένος Γ.Β., Ρουκουνάκη Α.Α., Κατανεμημένα Συστήματα με Java, 2η έκδοση, Εκδόσεις Κλειδάριθμος, 2005.
  3. Coulouris G., Dollimore J., Kindberg T., Distributed Systems, Concepts and Design, 4th ed., Addison-Wesley, 2005.
  4. Lynch N.A., Distributed Algorithms, Morgan Kaufmann, 1997.
  5. Tel G., Introduction to Distributed Algorithms, 2nd ed.,CambridgeUniversity Press, 2001.
  6. Attiya H., Welch J., Distributed Computing Fundamentals, Simulations, and Advanced Topics, 2nd ed., McGraw-Hill, 2004.
  7. Henning M.,Vinoski S., Advanced CORBA Programming with C++, Addison-Wesley, 2000.
  8. Brose G., Java Programming with CORBA: Advanced Techniques for Building Distributed Applications, Wiley, 2001.
  9. Sotomayor B., Childers L., GLOBUS Toolkit 4: Programming Java Services, The Elsevier Series in Grid Computing, Morgan Kaufmann, 2005.

Internationalisation I18n