| Code |
14352
|
| Year |
3
|
| Semester |
S2
|
| ECTS Credits |
6
|
| Workload |
PL(30H)/T(30H)
|
| Scientific area |
Informatics
|
|
Entry requirements |
--
|
|
Learning outcomes |
This course unit has as objectives the study of what a distributed system is and its characteristics, the study of the different models of distributed systems and studying the technologies that support the implementation of a distributed system. At the end of this unit, the student should be able to characterize a distributed system, to evaluate the viability of a distributed system implementation and be able to design and implement several types of distributed systems.
|
|
Syllabus |
1. Introduction to processes, concurrency and distributed systems (features and challenges). 2. Models of distributed programming (shared memory versus distributed memory). 3. Concurrency in shared memory (practice with threads in Java). 4. Message passing systems (practice with sockets TCP and UDP in Java). 5. Architectural models. 6. Models of interaction, failures and security. 7. Time and clock synchronization. 8. The RPC models and remote objects (practice with Java RMI). 9. Remote invocation in the Internet (web services in JavaEE)
|
|
Main Bibliography |
G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair, Distributed Systems: Concepts and Design, 5th ed. Harlow, U.K.: Addison-Wesley, 2011. A. S. Tanenbaum and M. van Steen, Distributed Systems: Principles and Paradigms, 2nd ed. Upper Saddle River, NJ, USA: Pearson Prentice Hall, 2007.
|
|
Teaching Methodologies and Assessment Criteria |
Theoretical classes: expositive and active methodologies. Practical classes: demonstrative and peer-learning methodologies. Self-learning: individual study and group projects with peer-learning.
|
|
Language |
Portuguese. Tutorial support is available in English.
|