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/