| código no paco | 40814 |
| área científica | informática / arquitectura dos sistemas computacionais |
| créditos | 6 |
| escolaridade (t|tp|p) | 2|0|2 |
| responsável | antónio rui de oliveira e silva borges |
|
| objectivo(s) |
O seu objectivo principal é introduzir os alunos aos princípios e à prática subjacente ao projecto de sistemas distribuídos, apresentando os conceitos mais importantes relativos à sua implementação. São particularmente explorados diferentes paradigmas de comunicação e de sincronização. Pretende-se especificamente promover - a compreensão dos problemas principais que envolvem o projecto de sistemas distribuídos;
- a capacidade de desenvolvimento de aplicações distribuídas simples;
- a familiarização com o ambiente de programação distribuída em Java.
|
|
| conteúdo(s) |
Introdução ao Java
Organização geral da linguagem
Sua caracterização em termos do paradigma orientado por objectos e do modelo de concorrência Sistemas Distribuídos Panorâmica geral Modelos de Sistema
Modelos arquitecturais
Modelos fundamentais - Comunicação e sincronização entre processos
Comunicação por passagem de mensagens
Invocação de métodos sobre objectos remostos Modelos cliente-servidor
Sua caracterização
O problema da migração de código Modelos de comunicação em grupo
Sincronização e exclusão mútua distribuídas
Algoritmos electivos Transacções distribuídas - Consistência e replicação
Modelos de consistência centrados nos dados
Modelos de consistência centrados nos clientes
Protocolos - Segurança
Conceitos introdutórios
Canais seguros
Controlo de acesso
Gestão da segurança
|
|
| avaliação |
A classificação final da disciplina é determinada pela média pesada das notas obtidas em dois tipos de avaliação avaliação teórica: 50% avaliação prática: 50%. A avaliação teórica é constituída pelo exame escrito final. A avaliação prática é formada por três provas obrigatórias e uma optativa trabalho 1: 33% trabalho 2: 33% trabalho 3: 33% trabalho 4: valorização para av. prática > 16. O processo de avaliação dos trabalhos práticos supõe uma análise do código submetido para verificação do cumprimento das especificações e um interrogatório aos elementos do grupo sobre questões relativas à sua implementação. A aprovação na disciplina supõe a satisfação em simultâneo das condições seguintes - avaliação prática >= 9 - avaliação teórica >= 9
- média pesada das notas das duas avaliações >= 10.
|
|
| requisito(s) |
Tem os pré-requisitos seguintes conhecimentos gerais sobre sistemas de operação e ambientes multiprogramados; noções sobre a aplicação do paradigma orientado por objectos à decomposição de soluções; domínio da programação sequencial e algumas noções de programação concorrente.
|
|
| metodologia |
| O objectivo das aulas teóricas é a apresentação de tópicos específicos da matéria da disciplina. A abordagem seguida pressupõe quase sempre uma metodologia de participação directa dos alunos na discussão, procurando desenvolver competências de raciocínio crítico e de aprendizagem de técnicas gerais de resolução de problemas. As aulas práticas implementam uma filosofia do saber fazer e estão organizadas em duas partes. Na primeira, constituída pelas quatro primeiras aulas e destinada à familiarização dos alunos com o Java, é proposto um conjunto de problemas cuja resolução é analisada e discutida nas aulas teóricas à medida que os conceitos base da linguagem são introduzidos. Na segunda, constituída pelas aulas restantes, é proposto um problema geral e são efectuadas diferentes implementações que irão constituir os trabalhos sujeitos a avaliação. Os grupos são formados por dois alunos. Tema geral do trabalho 1: Implementação puramente concorrente por variáveis partilhadas (executada num único sistema computacional). Tema geral do trabalho 2: Implementação distribuída comunicando por passagem de mensagens (executada numa rede com pelo menos dois sistemas computacionais). Tema geral do trabalho 3: Implementação distribuída comunicando por variáveis partilhadas (executada numa rede com pelo menos dois sistemas computacionais). |
|
| bibliografia base |
| Distributed Systems Principles and Paradigms, Tanenbaum A.S. e Steen M.v., Pearson Education Int. / Prentice Hall
Distributed Systems Concepts and Design, Coulouris G., Dollimore J. e Kindberg T., Addison Wesley / Pearson Education Ltd
The Java Language Specification, Gosling J., Joy B., Steele G. e Bracha G., Addison Wesley, 3rd Editon |
|
| bibliografia recomendada |
Principal
Distributed Systems - Principles and Paradigms, Tanenbaum A.S. e Steen M.v., Pearson Education International / Prentice Hall, 2002 Distributed Systems - Concepts and Design, Coulouris G., Dollimore J. e Kindberg T., Addison Wesley / Pearson Education Ltd, 2001 The Java Language Specification, Gosling J., Joy B., Steele G. e Bracha G., Addison Wesley, 3rd Editon, 2005 Apoio
Java - How to Program, Deitel H.M. e Deitel P.J., Pearson Education International / Prentice Hall, 6th Editon, 2005 Documentação on-line de apoio ao ambiente de desenvolvimento de programas em Java fornecida pela Sun Microsystems Inc (Java 2 JDK Standard Edition 6) |
|
| competência(s) |
promover uma boa compreensão dos problemas principais que envolvem a concepção de sistemas distribuídos; desenvolver a capacidade de projecto de aplicações distribuídas simples; familiarizar os alunos com a funcionalidade do ambiente de programação distribuída em Java.
|