A sala de cinema Fernando Lopes já reabriu. Veja a programação completa aqui

filmeu

Class Distributed Computing

  • Presentation

    Presentation

    The Distributed Computing course focuses on the study and development of modern distributed applications, combining theoretical foundations with a strong practical component. The main characteristics of these systems are analyzed, such as scalability, consistency, fault tolerance, resilience, and security, as well as the architectural and implementation challenges involved. In practice, students use Java and Spring Boot to build microservices that communicate through REST APIs and Apache Kafka, with persistence in relational databases (PostgreSQL) and document-oriented databases (MongoDB). Concepts of containerization and deployment with Docker, testing in distributed systems, and advanced coordination patterns such as SAGAs and eventual consistency are also explored. The course culminates in a capstone project, where students develop a complete system, applying the knowledge acquired and consolidating the technical and transversal skills essential for the professional market.
  • Code

    Code

    ULHT260-7348
  • Syllabus

    Syllabus

    1. Introduction. Characterization of Distributed Systems: requirements, architecture and functionalities 2. Architectures and Distributed Communication Models. Systems architectures. Software Levels 3. Communication between Distributed Processes (IPC). Characteristics of interprocess communication. Invocation, parameters and heterogeneity of data 4. Remote Invocation and Distributed Objects. RPC: Execution Model. Interface definition language (IDL) and parameter passing. Execution platforms: Sun RPC, Java RMI 5. Naming and Directory Services. Types of Names. Naming Spaces. Directory Services (Web, X.500, LDAP) 6. Web Services (WS). Web Services Execution Model (WS). The SOAP protocol. Service Definition Languages (WSDL) 7.  Security. Security Model. Authentication. Access control 8. Distributed File Systems. Distributed FS architectures. Implementations: NFS and AFS 9. Transactions. Transactional model. Transaction ACID properties. Distributed Transactions. 2-phase-commit protocol    
  • Objectives

    Objectives

    By the end of the course, students are expected to understand the fundamental concepts and main challenges of distributed computing, with a particular focus on performance, reliability, resilience, and security. They should be able to apply design techniques and best practices to model distributed solutions suited to different contexts, develop microservices with synchronous and asynchronous communication, and integrate data persistence with coordination mechanisms across services. In addition, students will gain hands-on experience with methodologies and tools that support the lifecycle of distributed systems, including containerization, monitoring, and testing strategies. The course also aims to ensure that students demonstrate transversal skills such as teamwork, technical communication, and problem-solving in complex environments, consolidating solid preparation for real-world challenges in distributed software development and architecture.
  • Teaching methodologies and assessment

    Teaching methodologies and assessment

    The course combines theoretical and practical methodologies in an integrated way. On the theoretical side, regular mini-tests are conducted to ensure continuous progress, complemented by a final exam for knowledge consolidation. On the practical side, a learning-by-doing approach is adopted, with the progressive development of microservices, weekly checkpoints, code reviews, and continuous feedback, fostering active and iterative learning. Innovative methods such as peer review between groups, collaborative problem-solving, and the use of professional development tools (GitHub, Docker, CI/CD) are also introduced, bridging theory and practice while preparing students with both technical expertise and transversal skills aligned with real-world industry practices.
  • References

    References

    Coulouris, Dollimore & Kindberg, Distributed Systems: Concepts and Design, 5th Edition, Addison-Wiley, 2011, ISBN 0132143011.  
SINGLE REGISTRATION
Lisboa 2020 Portugal 2020 Small financiado eu 2024 prr 2024 republica portuguesa 2024 Logo UE Financed Provedor do Estudante Livro de reclamaões Elogios