Computação Distribuída

Unidade Curricular / Curricular Unit
Computação Distribuída / Distributed Computing

Ciclo de Estudos / Study Cycle
1º Ciclo

Nome do Docente Responsável
Paulo Guedes

Nome do Docente Adicional
José Faísca

Objectivos de aprendizagem (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
A presente unidade curricular tem por objectivo abordar os principais modelos de Computação Distribuída, começando pelos seus aspectos fundamentais, apresentando de seguida as tecnologias associadas à Invocação Remota de Objectos e Arquitecturas Orientadas aos Serviços que estão na base da computação na Web.

Learning outcomes of the curricular unit
The objectives of this curricular unit are to address the main Distributed Computing models, starting with the fundamentals concepts, followed by the presentation of the latest developments and technologies associated with Remote Invocation of Objects and, Service Oriented Architectures, which are the foundations of Web Computing.

Conteúdos programáticos
1. Introdução
Caracterização dos Sistemas Distribuídos
Requisitos e funcionalidades
2. Modelos de Comunicação Distribuída
Arquitecturas de Sistemas
Noção e papel do Middleware
Interfaces e objectos
Modelos de interacção, falhas e segurança
3. Comunicação entre Processos Distribuídos
Invocação e heterogeneidade de dados
Representação de dados e serialização
Comunicação cliente/servidor e multi-ponto
4. Modelos de Invocação Remota
Modelo RPC
Linguagem de definição de interfaces
Registo e descoberta de serviços
Plataforma de execução: Sun RPC
Modelo de Objectos Distribuídos
Serviços de Nomeação e de Directório
Plataformas de Execução: Java RMI
5. Sistemas de Ficheiros Distribuídos
Problemática e caracterização
Arquitecturas de SGF distribuídos
Caching: performance e consistência
Implementações: NFS e AFS
6. Arquitectura Orientada aos Serviços
Modelo SOA e Web Services
O protocolo SOAP
Linguagem de definição de Serviços (WSDL)
Integração com Java
WS e RMI

Syllabus
1. Introduction
Characterization of Distributed Systems
Requirements and Functionality
2. Models of Distributed Communication
Systems Architecture
Concept and role of Middleware
Interfaces and objects
Models of interaction, Failure and Security
3. Distributed Process Communication
Invocation and data heterogeneity
Data representation and serialization
Point-to-Point and Multi-Point Communication
4. Remote Invocation Models
RPC Model
Interface Definition Language
Registration and service discovery
Execution Platforms: Sun RPC
Distributed Object Model
Naming and Directory Services
Execution Platforms: Java RMI
5. Distributed File Systems
Issues and characterization
DFS distributed architectures
Caching: performance and consistency
Implementations: NFS and AFS
6. Service Oriented Architecture
SOA Model and Web Services
Simple Object Access Protocol (SOAP)
Web Services Definition Language (WSDL)
Integration with Java
WS and RMI

Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular
Na era actual, em que o paradigma de computação na Web adquire contornos de “comodity”, através da generalização do conceito de Cloud Computing, importa que os alunos adquiram sólidas noções de computação distribuída e conheçam em detalhe as principais tecnologias que permitem a invocação de funcionalidades remotas e serviços. Por outro lado, sem uma compreensão avançada dos problemas levantados pela distribuição, tais como as bases temporais distintas, a possibilidade de ocorrência de falhas, ou a segurança, não é possível conceber e implementar aplicações distribuídas reais e robustas. O conteúdo da presente Unidade Curricular, por proporcionar um conhecimento aprofundado dos principais paradigmas da distribuição, insere-se assim no objetivo enunciado de proporcionar uma compreensão detalhada do funcionamento das tecnologias necessárias ao desenvolvimento de aplicações distribuídas.

Demonstration of the syllabus coherence with the Curricular Unit’s objectives
In the current era, in which the Web computing paradigm acquires contours of “commodity”, with the generalization of the Cloud Computing concept, it is important that students acquire solid concepts of distributed computing and acquire a deep knowledge of the key technologies that enable the invocation of remote functionality and services. Moreover, without an advanced understanding of the problems raised by distribution, such as distinct temporal databases, the possible occurrence of failures and network security, it is impossible to design and implement real and robust distributed applications. The content of this Course, by providing a thorough understanding of the main distribution paradigms, is coherent with the stated outcomes of providing a detailed understanding of the technologies necessary for the development of distributed applications.

Metodologias de ensino (avaliação incluída)
A abordagem seguida permite que os alunos adquiram um conhecimento teórico dos principais modelos de Computação Distribuída e de invocação remota, e os ponham em prática através da realização de projectos baseados em plataformas distribuídas actuais. A aprendizagem tem uma forte componente de trabalho de pesquisa realizado individualmente pelos alunos, complementada pela apresentação e análise de exemplos extraídos de aplicações reais. Por outro lado a componente laboratorial fornece aos alunos a oportunidade de adquirir uma formação profissionalizante nas principais plataformas de computação distribuída existentes.

A avaliação é contínua e constituída por testes teóricos (50%) e entrega de trabalhos e projectos (50%) ao longo do semestre. A aprovação na cadeira é obtida com uma nota mínima de 10 valores da média das duas componentes teórica e prática.

Planned learning outcomes, teaching methods and assessment methods and criteria
The approach taken allows students to acquire theoretical knowledge on the main Distribution Computing and Remote Invocation models and apply them through the implementation of projects based on the latest distributed platforms. The learning process includes a strong component of research work carried out individually by students, complemented by the presentation and analysis of examples from real applications. Moreover, the laboratory classes offer to the candidates the opportunity of acquiring a professional training on the major distributed computing platforms available today.
Assessment is continuous and consists of written tests (50%) and several deliverables of exercises and projects (50%) throughout the semester. Approval is obtained with a minimum mean value of 10 between the theoretical and practical components.

Demonstração da coerência das metodologias de ensino com os objectivos de aprendizagem da unidade curricular
A metodologia seguida na componente teórica permite que os alunos adquiram um bom conhecimento dos conceitos de Computação Distribuída, e dos diversos modelos de invocação de serviços remotos, o que constitui um dos principais objectivos da UC. Na prática a metodologia demonstrativa utilizada permite que os alunos explicitem os conceitos teóricos em casos de uso práticos, através da realização de projectos baseados nas principais plataformas distribuídas, com especial enfoque no modelo de Serviços Web, completando assim os objectivos pretendidos. Desta forma, as metodologias de ensino utilizadas inserem-se de forma coerente nos objectivos enunciados para esta da Unidade Curricular.

Demonstration of the teaching methodologies coherence with the curricular unit’s objectives
The approach followed on the theoretical component allows students to acquire a good knowledge of Distributed Computing main concepts, and of the various models for the invocation of remote services, in accordance with the main goals stated. On the practical, component the demonstrative methodology applied allows them to explicit these concepts through the implementation of projects based on state of the art distributed platforms, with special focus on the Web Services model, which fulfills the other objectives announced. This way, the teaching methodologies used are consistent with the objectives listed for this curricular unit.

Bibliografia Principal / Main Bibliography
1. “Distributed Systems: Concepts and Design” (5th Edition), by Coulouris, Dollimore & Kindberg, Ed. Addison-Wiley, 2011; ISBN 0132143011.

Universidade Lusófona


ECATI Escola de Comunicação, Arquitetura, Artes e Tecnologias da Informação

Departamento de Engenharia Informática e Sistemas de Informação
Edifício F, sala F.1.3
Direção — 217 515 500 (ext: 683)
Serviço de Apoio Tecnico-Admistrativo (SATA) — 17 515 500 (ext: 764)


Lisboa
Avenida do Campo Grande,
376 1749-024 Lisboa, Portugal
Tel.: 217 515 500 | email: info.cul@ulusofona.pt
Porto
Rua Augusto Rosa,
Nº 24, 4000-098 Porto - Portugal
Tel.: 222 073 230 | email: info.cup@ulusofona.pt

Gestão de conteúdos por Lucio Studer Ferreira © 2022 COFAC.