Skip to content

GSD

Sections
Personal tools
You are here: Home » Teaching » Sistemas Operativos Distribuídos I » 5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007)

5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007)

Document Actions
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

António Luís Sousa


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.


  • Esmond Pitt, Kathleen McNiff, Java.rmi, The Remote Method Invocation Guide,Addison-Wesley, 2001.
  • 5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) Guiões
    Guiões para as aulas teórico-práticas
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) Slides
    Material de apoio às aulas teóricas.
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) Código
    Código fonte de exemplos
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) Trabalhos Práticos
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) 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.
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) Aula prática extra dia 20 de Dezembro às 15horas.
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) Notas
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) notas recurso
    5307N7 - Sistemas Operativos Distribuídos I (2006 - 2007) Entrega de trabalhos - época especial
    Created by gsd
    Last modified 2006-09-14 05:57 PM
    « August 2014 »
    Su Mo Tu We Th Fr Sa
              1 2
    3 4 5 6 7 8 9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    31            
     
     

    Powered by Plone

    This site conforms to the following standards: