Title Distributed Systems
Lesson Code 321-7950
Semester 6
ECTS 5
Hours (Theory) 3
Hours (Lab) 2
Faculty Goumopoulos Christos

Syllabus

Basic concepts and principles of Distributed Systems, Middleware and resources, Client-Server Model, 3-tier Model, Models of communication and programming models (distributed transaction, remote procedure call, remote method invocation, message queue), Name Services (Domain Name System, directory services), Synchronization (logical clocks, distributed mutual exclusion, leader election, global states), Consistency and replication, Fault Tolerance.

Learning Outcomes

The student that will complete successfully the course is expected that will be in position to:
 

  • Cite well established definitions of Distributed Systems (DSs) and their characteristics.
  • Recognize basic requirements that are related to the development of DSs. Recognize special kinds of problems that are related to the development of DSs.
  • Categorize DSs using criteria that are related with the organization of their hardware.
  • Explain the role of software in the operation of DSs.
  • Categorize the software operating systems of DSs in three categories. Describe three DS architectures from the software perspective.
  • Cite contemporary trends that affect the development of DSs. Describe eight forms of transparency that are related to the design of DSs. Describe the redundancy technique for enhancing the reliability of DSs.
  • Define the concepts of flexibility and scalability.
  • Describe basic requirements for designing a secure DS.
  • Describe the client-server model.
  • Describe five variations of the client-server architecture.
  • Explain the need of clock synchronization in DSs.
  • Describe at least two approaches of clock synchronization in DSs.
  • Define the concepts of partial and total event ordering.
  • Describe at least two algorithms of physical clock sysnchronization in DSs.
  • Define the concept of mutual exclusion.
  • Describe at least two algorithms that provide mutual exclusion
  • Comprehend the role of DSs and middleware software in the development of modern applications.
  • Recognize special issues of DS modeling and operation (system models, interprocess communication, operating systems, distributed file systems, peer-to systems, web services) Describe the general characteristics of interprocess communication.
  • Describe the basic elements of the remote procedure call (RPC) model
  • Describe the basic elements of the remote method invocation (RMI) model
  • Use the Java RMI system for the development of distributed applications following a sequence of predefined steps.
  • Explain the difference between processes and threads. Explain the need for thread synchronization and the concept of race condition Analyze problems and case studies of DSs and select the most suitable technologies for their implementation.
  • Identify, assess and evaluate relative information via the proposed bibliographic sources and the use of Internet.

 

Prerequisite Courses

Not required.

Basic Textbooks

1. Andrew S. Tanenbaum, Maarten Van Steen. Κατανεμημένα Συστήματα: Αρχές και Υποδείγματα. Έκδοση: 1η/2006, Εκδόσεις ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ, ISBN: 960-209-924-0 2. Ι.Κ. ΚΑΒΟΥΡΑΣ, Ι. Ζ. ΜΗΛΗΣ, Γ. Β. ΞΥΛΩΜΕΝΟΣ, Α. Α. ΡΟΥΚΟΥΝΑΚΗ. ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΜΕ JAVA. Έκδοση: 3η/2011, ΕΚΔΟΣΕΙΣ ΚΛΕΙΔΑΡΙΘΜΟΣ, ISBN: 960-461-463-9 3. Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. (2011). Distributed Systems: Concepts and Design. Addison-Wesley, 5th edition, Pearson Education, NJ. ISBN 0132143011. 4. Kshemkalyani, A.D., and Singhal, M. (2008). Distributed Computing Principles, Algorithms, and Systems. Cambridge University Press, NY. ISBN 978-0-521-87634-6. 5. Kai Hwang, Jack Dongarra, Geoffrey C. Fox, Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, O'Reilly Media, 2011. ISBN 0123858801

Additional References

IEEE Transactions on Parallel and Distributed Systems IEEE Pervasive Computing Distributed Computing

Teaching and Learning Methods

Lectures, resolving exercises, Laboratory Exercises.

Activity Semester workload
Lectures 39 hours
Laboratory Exercises 26 hours
Personal study 54 hours
Laboratory Exams
3 hours
Final exams 3 hours
Course total 125 hours (5 ECTS)

 

Student Performance Evaluation

Final examination and lab exercises (theoretical and programming). The mark of laboratory should be ≥ 5 for attendance in the final examinations. The mark of final examination should be ≥ 5 for successful course completion. The final mark is computed as follows: 0.4 * (Mark of Exercises) + 0.1 * (Mark of Mid Term evaluation)+ 0.5 * (Mark of Final Examination). For each examination/exercises subject clearly specified evaluation criteria are given. The students can see their exam paper after the final examination and inspect their faults. The overall distribution of marks is announced on eClass, so that students can evaluate their performance.

Language of Instruction and Examinations

Greek, English (for Erasmus students)

Delivery Mode

Face-to-face.