Code: | CC435 | Acronym: | CC435 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Web Page: | http://www.dcc.fc.up.pt/~ines/aulas/1314/SDM/SDM.html |
Responsible unit: | Department of Computer Science |
Course/CS Responsible: | Master's Degree in Network and Information Systems Engineering |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
M:CC | 9 | PE do Mestrado em Ciência de Computadores | 1 | - | 7,5 | 67 | 202,5 |
2 | |||||||
MI:ERS | 18 | Plano de Estudos a partir de 2007 | 4 | - | 7,5 | 67 | 202,5 |
We aim to provide students with a deeper understanding of distributed systems, focusing on the principles, techniques and practices relevant to the design and implementation of these systems.
On completing this course, students must be able to:
* Explain what is a distributed system, why should an application be built as a distributed system, and what are the desirable properties of such systems;
* Describe the principles guiding the construction of distributed systems, the main problems and associated challenges, and perceive the efficiency and limitations of proposed solutions;
* Build systems that use basic OS mechanisms, as well as higher level middleware and programming languages;
- knowledge of the architecture of a distributed system
- Understanding the functioning of a distributed system
- Capability to implement parts of a distributed system
- Understanding of the capabilities and limitations of a distributed system
Introduction to distributed systems and mobility.
Fundamental concepts of distributed systems: architectural models; interprocess communication; distributed algorithms; resource and computational mobility.
Processes and communication: descriptors and streams; processes and threads; virtualization; clients and servers; code migration; remote procedure call; communication by message-passing, by streams and multicast. Sockets TCP and UDP, streams.
Coordination and synchronization: time and global states; clocks and time; event ordering; synchronization; models for mutual exclusion - centralized, decentralized, distributed and token ring; algorithms for leader election.
Middleware: remote procedure call; object request brokers (ORBs); remote method invocation; distributed object models; CORBA and Java RMI; name and directory services.
Name systems: names, identifiers and addresses; home-based, distributed hash tables and hierarchical approaches; name spaces; name resolution and implementation of name spaeces; DNS and LDAP.
Consistency and replication: data-centric consistency models; client-centric consistency models; replicas management; consistency protocols.
Fault tolerance: faults models, byzantine problems, failure masking by redundancy; process resilience; reliable client-server communication; reliable group communication; distributed commit; recovery.
Mobility of resources and computations; the mobile agent paradigm.
Presentation and practical classes.
designation | Weight (%) |
---|---|
Exame | 60,00 |
Participação presencial | 0,00 |
Trabalho laboratorial | 40,00 |
Total: | 100,00 |
Students are required to obtain a mark of at least 50% in the practical assignments to be eligible to qualify in this course.
Students are approved if they simultaneously satisfy the following conditions:
1. Have a minimum mark in the practical component of 50% of (P1+P2).
3. Have a final mark equal or higher to 9.5 out of 20 calculated as follows:
FinalMark = T1 + T2 + P1 + P2
or
FinalMark = T + P1 + P2
The assessment in this course takes in to account two components:
1. PRATICALs with two elements being assessed:
P1. Practical assignment: 4 points
P2. Practical assignment: 4 points
2. THEORY with two/one elements being assessed:
T1. Written mid-term exam: 6 points
T2. Written end-term exam: 6 points
or
T. Written final exam: 12 points
Please contact the teacher.