Licenciatura | Engenharia de Redes e Segurança Informática

Sistemas Distribuídos

Área Científica

Ciências Informáticas

Duração

Semestral

ECTS

6

Horas de Contacto Teórico Práticas

48h

Objetivos de aprendizagem e a sua compatibilidade com o método de ensino

1. Conhecer e compreender a linguagem UML e modelos relacionais;
2. Aprender a realizar especificações com base em requisitos, funcionalidades, objetivos e resultados esperados;
3. Conhecer e compreender técnicas para produzir programas baseados em especificações estruturadas;
4. Conhecer e compreender interfaces de programação orientada por objetos (Java) de modo a criar pacotes (módulos) a partir das especificações;
5. Conhecer e compreender os serviços de comunicação (ODBC, RESTFul APIs, HTTP Requests, …);
6. Conhecer e compreender a utilização de repositórios resistente a falhas, base de dados, e interoperabilidade entre sistemas distintos (sistemas distribuídos);
7. Conhecer e compreender noções acerca de migração de dados, auditoria e segurança da informação.

Conteúdos programáticos

1. Introdução à Computação Distribuída.

1.1. Características de um sistema distribuído;
1.2. Exemplos de SD;
1.3. Desafios na implementação de SD.

2. Modelos de Programação distribuída.

2.1. Sistemas de memória partilhada versus sistemas de memória distribuída;
2.2. Modelos de comunicação por mensagens.

2.2.1. Comunicação síncrona;
2.2.2. Comunicação assíncrona;
2.2.3. Chamada de procedimento remoto;
2.2.4. Formas de criação e identificação de processos.

2.3. Modelos arquiteturais.

2.3.1. Modelo Cliente/servidor;
2.3.2. Múltiplos servidores;
2.3.3. Proxies;
2.3.4. Processos pares.

2.4. Modelos fundamentais.

2.4.1. Modelo de interação /sincronismo;
2.4.2. Modelo de falhas;
2.4.3. Segurança.

3. Comunicação entre processos.

3.1. Sockets TCP e UDP;
3.2. Serialização de estruturas de dados;
3.3. Comunicação cliente/servidor.

3.3.1. O protocolo pedido resposta;
3.3.2. Semântica perante falhas.

4. Sistema de objetos distribuídos.

4.1. O modelo de objetos;
4.2. In.

Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular.

Esta unidade curricular pretende formar os alunos de competências para integração e interoperabilidade de sistemas estruturados de diferentes naturezas, num ambiente onde a informação é partilhada segundo os requisitos e especificações desses mesmos sistemas, tendo em conta a disponibilidade e segurança da informação. Com estas competências, os alunos irão desenvolver programas/ sistemas/ interfaces e pontos de acesso (API) completamente universais e compatíveis que terão que ser interligados com outros programas/ sistemas/ interfaces para atingir um conjunto de tarefas e objetivos definidos. Estes mesmos programas, sistemas e/ou interfaces servirão como base central na troca, segurança e garantia da informação. No final desta unidade curricular, os alunos conseguirão desenvolver e interligar sistemas capazes de comunicar entre si, criando endpoints universais compatíveis com qualquer sistema de informação existente.

Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico.

Esta unidade curricular tem uma natureza teórico-prática. Estão previstas 48 horas de contacto. A componente teórica desenvolve-se através de apresentações feitas pelo docente em sala de aula, complementada quando apropriado com outros elementos pedagógicos, que estimulem o interesse e participação dos alunos e a interação docente/discentes. A componente prática concretiza-se através de exercícios de aplicação a desenvolver na aula com a supervisão do docente e utilização de métodos interativos que fomentem a discussão de uma solução base e de possíveis alternativas.

Os conteúdos programáticos foram divididos em sete grandes temáticas, sendo disponibilizado para cada tópico material pedagógico (documental, audiovisual, entre outros) suplementar à bibliografia obrigatória.

Existirá ainda o recurso a fóruns de discussão e de esclarecimento de dúvidas para promover o trabalho colaborativo e a comunicação. Serão, ainda, propostas atividades formativas de leitura, análise e produção de trabalhos.
Em suma, a metodologia de ensino e aprendizagem encontra-se consubstanciada nos princípios enumerados no modelo pedagógico de ensino do ISTEC Lisboa (Aprendizagem Significativa, Motivação, Orientação, Interação, inclusão e Aprendizagem Centrada no Estudante).

Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da unidade curricular.

A metodologia centrar-se-á na interatividade entre os vários agentes educativos, começando pelo docente e estendendo-se a todos os estudantes, envolvendo os estudantes no processo de ensino aprendizagem de forma crítica e ativa através dos fóruns. Com uma abordagem de debate e utilizando os fóruns e documentos de apoio inerentes às temáticas abordadas, espera-se que exista uma forte motivação e participação por parte dos estudantes nas atividades a desenvolver. Assim, utilizando metodologias ativas em que o estudante controla a sua aprendizagem e participa diretamente nela, estamos em crer que poderemos atingir os objetivos propostos de uma forma mais eficiente e aprofundada.

Dada a especificidade da unidade curricular serão utilizados exemplos reais e atuais que contextualizem os conteúdos programáticos. Deste modo procura-se estimular o trabalho autónomo dos estudantes e desenvolver os seus sentidos e pensamentos críticos sobre as questões que o envolvem, direta ou indiretamente.

Com estas metodologias crê-se uma boa execução dos conteúdos programáticos e como consequência a consecução com sucesso dos objetivos da unidade curricular.

Bibliografia

Ramos, P. (2008). Desenhar Bases de Dados com UML. Lisbon: Edições Sílabo.
Coulouris, G. (2012). Distributed systems: concepts and design. Boston: Addison-Wesley.
Tanenbaum, A. & Steen, M. (2016). Distributed systems: principles and paradigms. Niederlande: aarten van Steen.
Kalin, M. (2013). Java Web services: up and running. Beijing: O’Reilly.
Masse?, M. (2012). REST API design rulebook. Sebastopol, CA: O’Reilly.
Richardson, L. & Amundsen, M. (2013). RESTful Web APIs. Sebastopol, Calif: O’Reilly.
Bartholomew, D. (2015). Getting started with MariaDB: explore the powerful features of MariaDB with practical examples. Birmingham, UK: Packt Publishing.

Chodorow, K. (2013). MongoDB, the definitive guide. Sebastopol, Calif: O’Reilly Media.

<strong>INTERNET:</strong>
Acesso a publicações da especialidade, gratuitamente, através da rede SPRINGER:
https://link.springer.com/