5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007)
Up one level- Docente Responsável
- Paulo Sérgio Almeida
- Docente Responsável pelas aulas teóricas
- Paulo Sérgio Almeida
- Docente(s) das aulas teórico práticas
- Paulo Sérgio Almeida
Exame final: 50%, sendo a nota mínima de 8 valores, condição necessária para a aprovação.
Trabalhos práticos: 50%, sendo a nota mínima de 10 valores condição necessária para ser admitido a exame.
- Introdução aos sistemas distribuídos.
- Introdução a paradigmas de programação distribuída.
- O paradigma cliente-servidor.
- Resolução da heterogeneidade.
- Programação concorrente em orientação por objectos.
- Sistemas de objectos distribuídos.
- Middleware para objectos distribuídos: Java RMI e CORBA.
- Sistemas de notificação / message oriented middleware.
- Padrões e estilos arquitecturais em sistemas distribuídos.
- Introdução aos sistemas distribuídos
- Evolução dos sistemas distribuídos.
- Caracterização de um sistema distribuído.
- Requisitos e aspectos de concepção.
- Sistemas operativos distribuídos.
- Paradigmas de programação distribuída
- Partilha versus passagem de mensagens.
- Memória partilhada distribuída (DSM).
- O modelo cliente-servidor.
- Invocação remota de procedimentos.
- Linguagens de definição de interfaces (IDL).
- Sistemas de objectos distribuídos.
- Sistemas de notificação de eventos.
- Comunicação em grupo.
- Algoritmos distribuídos.
-
O paradigma cliente-servidor
- Os papeis de cliente e servidor.
- O protocolo de pedido-resposta.
- A serialização de estruturas de dados.
- O despacho de pedidos: servidores sequenciais, thread-por-cliente, thread-por-pedido, pool de threads.
- A gestão da conexão: conexão por pedido, conexão por cliente, suporte a clientes multi-threaded.
- Servidores com ou sem estado conversacional; pedidos idempotentes.
- Semânticas perante faltas: maybe, at-least-once, at-most-once.
- Cliente-servidor em linguagens procedimentais: a noção de RPC, IDL, compilador de IDL; estudo de caso ONC RPC.
- Resolução da heterogeneidade
- Heterogeneidade de hardware, middleware e linguagens.
- Formatos binários versus baseados em texto.
- Formatos auto-descritivos, informação dinâmica e/ou estática de tipos.
- Estudo de casos: XDR, IIOP, XML, SOAP, YAML.
- Programação concorrente em OO
- Suporte nas linguagens para concorrência e distribuição.
- Objectos e actividades: objectos activos e passivos.
- Controlo de concorrência intra-objecto: objectos atómicos, quase-concorrentes e concorrentes.
- Controlo de concorrência inter-objecto.
- Exploração da imutabilidade.
- Programação concorrente em Java: threads, monitores implícitos, locking recursivo, monitores aninhados.
- Sistemas de objectos distribuídos
- Objectos e invocação remota apropriados para SD.
- Identidade de objectos.
- Passagem de parâmetros.
- Estado transitivo.
- Modificações na semântica das invocações.
- Semântica perante faltas.
- Cópia e migração de objectos.
- Reciclagem distribuída de objectos, persistência, e replicação.
- Java RMI
- Diferenças para o modelo de objectos tradicional de Java.
- Passagem de parâmetros.
- A interface Serializable.
- Interfaces Remotas.
- Excepções.
- Implementação de objectos remotos.
- Modelo de threading.
- Serviço de nomes.
- Reciclagem de objectos remotos.
- Mobilidade de Código.
- CORBA
- Arquitectura CORBA.
- O IDL do OMG.
- Interface do ORB.
- O Portable Object Adapter. Politicas de associação entre OIDs e servants e de activação de objectos.
- Interfaces dinâmicas (DII e DSI).
- Repositório de interfaces.
- Serviços CORBA: serviço de nomes, eventos.
- Sistemas de notificação / message oriented middleware
- O paradigma publish-subscribe.
- Características dos sistemas de notificação.
- Modelos de subscrição.
- Algoritmos de encaminhamento baseados em conteúdo.
- Padrões e estilos arquitecturais em sistemas distribuídos
- Factories, ciclo de vida e reciclagem de objectos distribuídos.
- Objectos transientes e persistentes.
- Componentes: sessão, serviço, entidade e processo.
- WWW: a arquitectura REST.
- Web-services, SOAP e REST.
- Wolfgang Emmerich, Engineering Distributed Objects,Willey, 2000.
- Fintan Bolton, Pure CORBA,SAMS, 2001.
-
Guiões
- Guiões para as aulas teórico-práticas
-
Slides
- Material de apoio às aulas teóricas.
-
Código
- Código fonte de exemplos
-
Trabalho prático 2
- Já está disponível o enunciado do trabalho prático 2. A data de entrega é a 7 de Janeiro de 2007.