Distributed Systems

Academic year
Subject Area
Computer Science
Language of Instruction
Mode of Delivery
ECTS Credits
1st Cycle Studies

Recommended Prerequisites

Operating Systems, Object-Oriented Programming, Computer Networks.

Teaching Methods

This course will include theoretical lectures with detailed exposition, using visual aids, of concepts, principles and fundamental techniques of Distributed Systems, accompanied by practical exemples intended to increase students' interest in theoretical concepts and exemplify their application to real situations.

The course will also include practical classes in which students, with the guidance of the teacher, solve practical exercises that require the combination of different theoretical concepts and promote critical thinking with respect to more complex problems. The practical classes are also designed to support the practical project.

Learning Outcomes

The Distributed Systems course provides alumni with an encompassing approach on algorithms, protocols and fundaments of modern distributed systems. Students shall acquire competences on the development of distributed applications using several technologies, and shall be able to understand and integrate knowledge on fundamental techniques for the design of distributed applications at an industrial setting and for the Internet. The course intends to promote competence in analysis and synthesis, knowledge in computer science regarding the subject of study, problem-solving ability, autonomous learning competence, and competence in applying knowledge in practice.

Work Placement(s)



  1. Introduction to Distributed Systems
  2. Challenges in the development of distributed applications
  3. Overview of Middleware
  4. The Client/Server model
  5. Programming in TCP and UDP Sockets
  6. Multicast communication
  7. The RPC model and remote object invocation
  8. Fault treatment in the RPC model and RPC semantics
  9. Distributed programming using Java RMI
  10. Introduction to CORBA
  11. Message-Oriented Middleware and JMS API
  12. The HTTP protocol
  13. 2-tier, 3-tier and N-tier models
  14. Distributed applications for the Internet
  15. Web programming overview
  16. The technology of Web-Services: SOAP, XML, UDDI
  17. Security in Distributed Systems
  18. Naming Servers and Directory Services
  19. Distributed File Systems
  20. Clock synchronization in distributed systems
  21. Causal and total order in distributed applications
  22. Maintenance and upgrade of distributed applications
  23. Server replication and high-availability solutions
  24. Peer-to-peer systems.

Head Lecturer(s)

Raul André Brajczewski Barbosa

Assessment Methods

Practical component: 40.0%
Exam: 60.0%


Distributed Systems: Concepts and Design

4th Edition

George Coulouris, Jean Dollimore, Tim Kindberg

ISBN: 0-321-26354-5

Publisher: Addison-Wesley


Distributed Systems: Principles and Paradigms

Andrew S. Tanenbaum, Maarten van Steen

ISBN: 0130888931

Publisher: Prentice Hall