Distributed Systems

Computer Engineering
6 ECTS; 3º Ano, 1º Semestre, 28,0 T + 42,0 PL + 5,0 OT + 5,0 O

Lecturer
- António Manuel Rodrigues Manso
- Pedro Miguel Aparício Dias

Prerequisites
Basics of computer programming, data structures and networking.

Objectives
Students will be provided with theoretical and practical knowledge on distributed systems. They should have a good command of general techniques of design, implementation and operation of distributed systems and be able to program distributed applications.

Program
1 - Introduction to distributed systems
2 - Parallel and concurrent programming
- Parallelization Methods for algorithms
    - Programming with Threads
    - Concurrent access to resources
    - Computational Load Balancing
3 - Distributed Systems Programming
    - Programming with Sockets
    - Programming with remote objects
    - Security of distributed systems
4 - Distributed web programming
    - Web protocols
    - Web Architecture
    - Web Services
    - Mobile devices programming

Evaluation Methodology
Practical assignments and closed-book written test.

Bibliography
- Cardoso, J. (2010). Programação de Sistemas Distribuídos em Java. Lisboa: FCA
- Alves Marques, J. e Guedes, P. (1998). Tecnologia de Sistemas Distribuídos. (Vol. 1). Lisboa: FCA
- Coulouris, G. e Dollimore, J. (2011). Distributed Systems: Concepts and Design. (Vol. 1). USA: Addison Wesley
- Guedes, P. e Marques, J. (1998). Tecnologia de Sistemas Distribuídos. Lisboa: FCA - Editora de Informática

Method of interaction
Lectures and laboratory classes.

Software used in class