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 |
[Coulouris 2011] “Distributed Systems:Concepts and Design”, 5th edition, George Coulouris, Jean Dollimore and Tim Kindgerg, Addison-Wesley, 2011.
[Tanenbaum 2007] “Distributed Systems Principles and Paradigms”, Andrew S. Tanenbaum, Maarten Van Steen, Pearson International Edition, 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.
|